Для чего необходим межсетевой протокол

Обновлено: 25.06.2024

Модуль IP является базовым элементом технологии internet, а центральной частью IP является его таблица маршрутов. Протокол IP использует эту таблицу при принятии всех решений о маршрутизации IP-пакетов. Содержание таблицы маршрутов определяется администратором сети. Ошибки при установке маршрутов могут заблокировать передачи.

Чтобы понять технику межсетевого взаимодействия, нужно понять то, как используется таблица маршрутов. Это понимание необходимо для успешного администрирования и сопровождения IP-сетей.

Прямая маршрутизация

На рисунке показана небольшая IP-сеть, состоящая из 3 машин: A, B и C. Каждая машина имеет такой же стек протоколов TCP/IP как на рис.1. Каждый сетевой адаптер этих машин имеет свой Ethernet-адрес. Менеджер сети должен присвоить машинам уникальные IP-адреса.

Когда A посылает IP-пакет B, то заголовок IP-пакета содержит в поле отправителя IP-адрес узла A, а заголовок Ethernet-кадра содержит в поле отправителя Ethernet-адрес A. Кроме этого, IP-заголовок содержит в поле получателя IP-адрес узла B, а Ethernet-заголовок содержит в поле получателя Ethernet-адрес B.

В этом простом примере протокол IP является излишеством, которое мало что добавляет к услугам, предоставляемым сетью Ethernet. Однако протокол IP требует дополнительных расходов на создание, передачу и обработку IP-заголовка. Когда в машине B модуль IP получает IP-пакет от машины A, он сопоставляет IP-адрес места назначения со своим и, если адреса совпадают, то передает датаграмму протоколу верхнего уровня.

В данном случае при взаимодействии A с B используется прямая маршрутизация.

Косвенная маршрутизация

На рисунке представлена более реалистичная картина сети internet. В данном случае сеть internet состоит из трех сетей Ethernet, на базе которых работают три IP-сети, объединенные шлюзом D. Каждая IP-сеть включает четыре машины; каждая машина имеет свои собственные IP- и Ethernet адреса.

За исключением D все машины имеют стек протоколов, аналогичный показанному на рисунке. Шлюз D соединяет все три сети и, следовательно, имеет три IP-адреса и три Ethernet-адреса. Машина D имеет стек протоколов TCP/IP, похожий на тот, что показан на рис.3, но вместо двух модулей ARP и двух драйверов, он содержит три модуля ARP и три драйвера Ethernet. Обратим внимание на то, что машина D имеет только один модуль IP.

Менеджер сети присваивает каждой сети Ethernet уникальный номер, называемый IP-номером сети. На рис.7 IP-номера не показаны, вместо них используются имена сетей.

Когда машина A посылает IP-пакет машине B, то процесс передачи идет в пределах одной сети. При всех взаимодействиях между машинами, подключенными к одной IP-сети, используется прямая маршрутизация, обсуждавшаяся в предыдущем примере.

Когда машина D взаимодействует с машиной A, то это прямое взаимодействие. Когда машина D взаимодействует с машиной E, то это прямое взаимодействие. Когда машина D взаимодействует с машиной H, то это прямое взаимодействие. Это так, поскольку каждая пара этих машин принадлежит одной IP-сети.

Однако, когда машина A взаимодействует с машинами, включенными в другую IP-сеть, то взаимодействие уже не будет прямым. Машина A должена использовать шлюз D для ретрансляции IP-пакетов в другую IP-сеть. Такое взаимодействие называется "косвенным".

Маршрутизация IP-пакетов выполняется модулями IP и является прозрачной для модулей TCP, UDP и прикладных процессов.

Если машина A посылает машине E IP-пакет, то IP-адрес и Ethernet-адрес отправителя соответствуют адресам A. IP-адрес места назначения является адресом E, но поскольку модуль IP в A посылает IP-пакет через D, Ethernet-адрес места назначения является адресом D.

Модуль IP в машине D получает IP-пакет и проверяет IP-адрес места назначения. Определив, что это не его IP-адрес, шлюз D посылает этот IP-пакет прямо к E.

Итак, при прямой маршрутизации IP- и Ethernet-адреса отправителя соответствуют адресам того узла, который послал IP-пакет, а IP- и Ethernet-адреса места назначения соответствуют адресам получателя. При косвенной маршрутизации IP- и Ethernet-адреса не образуют таких пар.

В данном примере сеть internet является очень простой. Реальные сети могут быть гораздо сложнее, так как могут содержать несколько шлюзов и несколько типов физических сред передачи. В приведенном примере несколько сетей Ethernet объединяются шлюзом для того, чтобы локализовать широковещательный трафик в каждой сети.

Правила маршрутизации в модуле IP

Для отправляемых IP-пакетов, поступающих от модулей верхнего уровня, модуль IP должен определить способ доставки - прямой или косвенный - и выбрать сетевой интерфейс. Этот выбор делается на основании результатов поиска в таблице маршрутов.

Для принимаемых IP-пакетов, поступающих от сетевых драйверов, модуль IP должен решить, нужно ли ретранслировать IP-пакет по другой сети или передать его на верхний уровень. Если модуль IP решит, что IP-пакет должен быть ретранслирован, то дальнейшая работа с ним осуществляется также, как с отправляемыми IP-пакетами.

Решение о маршрутизации принимается до того, как IP-пакет передается сетевому драйверу, и до того, как происходит обращение к ARP-таблице.

IP-адрес

Менеджер сети присваивает IP-адреса машинам в соответствии с тем, к каким IP-сетям они подключены. Старшие биты 4-х байтного IP-адреса определяют номер IP-сети. Оставшаяся часть IP-адреса - номер узла (хостномер). Для машины из табл.1 с IP-адресом 223.1.2.1 сетевой номер равен 223.1.2, а хост-номер - 1. Напомним, что IP-адрес узла идентифицирует точку доступа модуля IP к сетевому интерфейсу, а не всю машину.

Существуют 5 классов IP-адресов, отличающиеся количеством бит в сетевом номере и хост-номере. Класс адреса определяется значением его первого октета.

В табл.8 приведено соответствие классов адресов значениям первого октета и указано количество возможных IP-адресов каждого класса.

Адреса класса A предназначены для использования в больших сетях общего пользования. Они допускают большое количество номеров узлов. Адреса класса B используются в сетях среднего размера, например, сетях университетов и крупных компаний. Адреса класса C используются в сетях с небольшим числом компьютеров. Адреса класса D используются при обращениях к группам машин, а адреса класса E зарезервированы на будущее.

Некоторые IP-адреса являются выделенными и трактуются по-особому.

Как показано на рис.9, в выделенных IP-адресах все нули соответствуют либо данному узлу, либо данной IP-сети, а IP-адреса, состоящие из всех единиц, используются при широковещательных передачах. Для ссылок на всю IP-сеть в целом используется IP-адрес с нулевым номером узла. Особый смысл имеет IP-адрес, первый октет которого равен 127. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы "петля". Данные не передаются по сети, а возвращаются модулям верхнего уровня, как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127.

Выбор адреса

Прежде чем вы начнете использовать сеть с TCP/IP, вы должны получить один или несколько официальных сетевых номеров. Выделением номеров (как и многими другими вопросами) занимается DDN Network Information Center (NIC)

SRI International, Room EJ210, 333 Ravenswood Avenue, Menlo Park, California 94025, USA. Тел. 1-800-235-3155. E-mail: NIC@NIC.DDN.MIL

Выделение номеров производится бесплатно и занимает около недели. Вы можете получить сетевой номер вне зависимости от того, для чего предназначена ваша сеть. Даже если ваша сеть не имеет связи с объединенной сетью Internet, получение уникального номера желательно, так как в этом случае есть гарантия, что в будущем при включении в Internet или при подключении к сети другой организации не возникнет конфликта адресов.

Одно из важнейших решений, которое необходимо принять при установке сети, заключается в выборе способа присвоения IP-адресов вашим машинам. Этот выбор должен учитывать перспективу роста сети. Иначе в дальнейшем вам придется менять адреса. Когда к сети подключено несколько сотен машин, изменение адресов становится почти невозможным.

Организации, имеющие небольшие сети с числом узлов до 126, должны запрашивать сетевые номера класса C. Организации с большим числом машин могут получить несколько номеров класса C или номер класса B. Удобным средством структуризации сетей в рамках одной организации являются подсети.

Подсети

Адресное пространство сети internet может быть разделено на непересекающиеся подпространства - "подсети", с каждой из которых можно работать как с обычной сетью TCP/IP. Таким образом единая IP-сеть организации может строиться как объединение подсетей. Как правило, подсеть соответствует одной физической сети, например, одной сети Ethernet.

Конечно, использование подсетей необязательно. Можно просто назначить для каждой физической сети свой сетевой номер, например, номер класса C. Однако такое решение имеет два недостатока. Первый, и менее существенный, заключается в пустой трате сетевых номеров. Более серьезный недостаток состоит в том, что если ваша организация имеет несколько сетевых номеров, то машины вне ее должны поддерживать записи о маршрутах доступа к каждой из этих IP-сетей. Таким образом, структура IP-сети организации становится видимой для всего мира. При каких-либо изменениях в IP-сети информация о них должна быть учтена в каждой из машин, поддерживающих маршруты доступа к данной IP-сети.

Подсети позволяют избежать этих недостатков. Ваша организация должна получить один сетевой номер, например, номер класса B. Стандарты TCP/IP определяют структуру IP-адресов. Для IP-адресов класса B первые два октета являются номером сети. Оставшаяся часть IP-адреса может использоваться как угодно. Например, вы можете решить, что третий октет будет определять номер подсети, а четверый октет - номер узла в ней. Вы должны описать конфигурацию подсетей в файлах, определяющих маршрутизацию IP-пакетов. Это описание является локальным для вашей организации и не видно вне ее. Все машины вне вашей организации видят одну большую IPсеть. Следовательно, они должны поддерживать только маршруты доступа к шлюзам, соединяющим вашу IP-сеть с остальным миром. Изменения, происходящие в IP-сети организации, не видны вне ее. Вы легко можете добавить новую подсеть, новый шлюз и т.п.

Как назначать номера сетей и подсетей

После того, как решено использовать подсети или множество IP-сетей, вы должны решить, как назначать им номера. Обычно это довольно просто. Каждой физической сети, например, Ethernet или Token Ring, назначается отдельный номер подсети или номер сети. В некоторых случаях имеет смысл назначать одной физической сети несколько подсетевых номеров. Например, предположим, что имеется сеть Ethernet, охватывающая три здания. Ясно, что при увеличении числа машин, подключенных к этой сети, придется ее разделить на несколько отдельных сетей Ethernet. Для того, чтобы избежать необходимости менять IP-адреса, когда это произойдет, можно заранее выделить для этой сети три подсетевых номера - по одному на здание. (Это полезно и в том случае, когда не планируется физическое деление сети. Просто такая адресация позволяет сразу определить, где находится та или иная машина.) Однако прежде, чем выделять три различных подсетевых номера одной физической сети, тщательно проверьте, что все ваши программы способны работать в такой среде.

Вы также должны выбрать "маску подсети". Она используется сетевым программным обеспечением для выделения номера подсети из IP-адресов. Биты IP-адреса, определяющие номер IP-сети, в маске подсети должны быть равны 1, а биты, определяющие номер узла, в маске подсети должны быть равны 0. Как уже отмечалось, стандарты TCP/IP определяют количество октетов, задающих номер сети. Часто в IP-адресах класса B третий октет используется для задания номера подсети. Это позволяет иметь 256 подсетей, в каждой из которых может быть до 254 узлов. Маска подсети в такой системе равна 255.255.255.0. Но, если в вашей сети должно быть больше подсетей, а в каждой подсети не будет при этом более 60 узлов, то можно использовать маску 255.255.255.192. Это позволяет иметь 1024 подсети и до 62 узлов в каждой. (Напомним, что номера узлов 0 и "все единицы" используются особым образом.)

Обычно маска подсети указывается в файле стартовой конфигурации сетевого программного обеспечения. Протоколы TCP/IP позволяют также запрашивать эту информацию по сети.

Имена

Людям удобнее называть машины по именам, а не числами. Например, у машины по имени alpha может быть IP-адрес 223.1.2.1. В маленьких сетях информация о соответствии имен IP-адресам хранится в файлах "hosts" на каждом узле. Конечно, название файла зависит от конкретной реализации. В больших сетях эта информация хранится на сервере и доступна по сети. Несколько строк из файла "hosts" могут выглядеть примерно так:

В первом столбце - IP-адрес, во втором - название машины.

В большинстве случаев файлы "hosts" могут быть одинаковы на всех узлах. Заметим, что о узле delta в этом файле есть всего одна запись, хотя он имеет три IP-адреса (рис.11). Узел delta доступен по любому из этих IP-адресов. Какой из них используется, не имеет значения. Когда узел delta получает IP-пакет и проверяет IP-адрес места назначения, то он опознает любой из трех своих IP-адресов.

IP-сети также могут иметь имена. Если у вас есть три IP-сети, то файл "networks" может выглядеть примерно так:

В первой колонке - сетевой номер, во второй - имя сети.

В данном примере alpha является узлом номер 1 в сети development, beta является узлом номер 2 в сети development и т.д.

Показанный выше файл hosts удовлетворяет потребности пользователей, но для управления сетью internet удобнее иметь названия всех сетевых интерфейсов. Менеджер сети, возможно, заменит строку, относящуюся к delta:

Эти три строки файла hosts задают каждому IP-адресу узла delta символьные имена. Фактически, первый IP-адрес имеет два имени: "devnetrouter" и "delta", которые являются синонимами. На практике имя "delta" используется как общеупотребительное имя машины, а остальные три имени - для администрирования сети.

Файлы hosts и networks используются командами администрирования и прикладными программами. Они не нужны собственно для работы сети internet, но облегчают ее использование.

IP-таблица маршрутов

Как модуль IP узнает, какой именно сетевой интерфейс нужно использовать для отправления IP-пакета? Модуль IP осуществляет поиск в таблице маршрутов. Ключом поиска служит номер IP-сети, выделенный из IP-адреса места назначения IP-пакета.

Таблица маршрутов содержит по одной строке для каждого маршрута. Основными столбцами таблицы маршрутов являются номер сети, флаг прямой или косвенной маршрутизации, IP-адрес шлюза и номер сетевого интерфейса. Эта таблица используется модулем IP при обработке каждого отправляемого IP-пакета.

В большинстве систем таблица маршрутов может быть изменена с помощью команды "route". Содержание таблицы маршрутов определяется менеджером сети, поскольку менеджер сети присваивает машинам IP-адреса.

Подробности прямой маршрутизации

Рассмотрим более подробно, как происходит маршрутизация в одной физической сети.

Таблица маршрутов в узле alpha выглядит так:

В данном простом примере все узлы сети имеют одинаковые таблицы маршрутов.

Для сравнения ниже представлена та же таблица, но вместо названия сети указан ее номер.

Порядок прямой маршрутизации

Узел alpha посылает IP-пакет узлу beta. Этот пакет находится в модуле IP узла alpha, и IP-адрес места назначения равен IP-адресу beta (223.1.2.2). Модуль IP с помощью маски подсети выделяет номер сети из IP-адреса и ищет соответствующую ему строку в таблице маршрутов. В данном случае подходит первая строка.

Остальная информация в найденной строке указывает на то, что машины этой сети доступны напрямую через интерфейс номер 1. С помощью ARP-таблицы выполняется преобразование IP-адреса в соответствующий Ethernet-адрес, и через интерфейс 1 Ethernet-кадр посылается узлу beta.

Подробности косвенной маршрутизации

Теперь рассмотрим более сложный порядок маршрутизации в IP-сети, изображенной на рис.11.

Таблица маршрутов в узле alpha выглядит так:

Та же таблица с IP-адресами вместо названий.

В столбце "шлюз" таблицы маршрутов узла alpha указывается IP-адрес точки соединения узла delta с сетью development.

Порядок косвенной маршрутизации

Узел alpha посылает IP-пакет узлу epsilon. Этот пакет находится в модуле IP узла alpha, и IP-адрес места назначения равен IP-адресу узла epsilon (223.1.3.2). Модуль IP выделяет сетевой номер из IP-адреса (223.1.3) и ищет соответствующую ему строку в таблице маршрутов. Соответствие находится во второй строке.

Запись в этой строке указывает на то, что машины требуемой сети доступны через шлюз devnetrouter. Модуль IP в узле alpha осуществляет поиск в ARP-таблице, с помощью которого определяет Ethernet-адрес, соответствующий IP-адресу devnetrouter. Затем IP-пакет, содержащий IP-адрес места назначения epsilon, посылается через интерфейс 1 шлюзу devnetrouter.

IP-пакет принимается сетевым интерфейсом в узле delta и передается модулю IP. Проверяется IP-адрес места назначения, и, поскольку он не соответствует ни одному из собственных IP-адресов delta, шлюз решает ретранслировать IP-пакет.

Модуль IP в узле delta выделяет сетевой номер из IP-адреса места назначения IP-пакета (223.1.3) и ищет соответствующую запись в таблице маршрутов. Таблица маршрутов в узле delta выглядит так:

Та же таблица с IP-адресами вместо названий.

Соответствие находится во второй строке. Теперь модуль IP напрямую посылает IP-пакет узлу epsilon через интерфейс номер 3. Пакет содержит IP- и Ethernet-адреса места назначения равные epsilon.

Internet Protocol — Межсетевой протокол адресации и маршрутизации, объединяет отдельные компьютерные сети в единую сеть Интернет, обеспечивая доставку пакетов данных между любыми узлами сети через произвольное число промежуточных узлов (маршрутизаторов).

Свойства:

  • Протокол не гарантирует доставки пакета до адресата (пакеты могут прийти в порядке отличном от отправки, прийти несколько раз, прийти повреждёнными или не прийти вовсе). Гарантию безошибочной доставки пакетов дают протоколы более высокого (транспортного) уровня использующие IP адресацию и маршрутизацию в качестве транспорта, например - TCP.
  • Протокол предусматривает дробление (фрагментацию) пакета данных в процессе доставки по причинам разнородных по возможностям каналов связей, такие фрагменты пакетов собираются воедино на стороне получателя. В версии 6 маршрутизаторы более не обязаны делать фрагментацию, в связи с этим в сетях IPv6 отправитель должен отправлять пакеты размером не превышающим минимального MTU назначенного пути или использовать минимальное значение MTU для сетей IPv6 равное 1280 байт.
  • В протоколе предусмотрена возможность запрета фрагментации (в версии 6 включена по умолчанию) конкретного пакета. Если такой пакет нельзя передать через сегмент связи целиком, то он уничтожается а отправителю направляется уведомление о проблеме по протоколу ICMP.

На текущий момент сеть Интернет объединена двумя версиями данного протокола адресации (IPv4, IPv6) вследствие нехватки количества адресов предоставляемого 4 версией протокола для растущего количества узлов которым необходимо единое адресное пространство.

Изменения 6 версии:

  • размер адреса увеличен с 4 байт до 16 байт;
  • размер заголовка пакета увеличился с 20 до 40 байт;
  • максимальный размер пакета увеличен с 65 Кб до 4 Гб;
  • исчезла излишняя контрольная сумма и необходимость её пересчёта на каждом узле маршрутизации;
  • появились метки потоков и классы траффика;
  • добавлена многоадресная маршрутизация;
  • включена поддержка шифрования по протоколу IPsec;

Пакет версии 4 включает:

  • 4 бита — версия протокола, содержит значение “4”
  • 4 бита — IHL, длина заголовка пакета в 32-битных словах
  • 1 байт— ToS, тип обслуживания, на практике в большинстве реализаций протокола поле почти всегда равно “0"
  • 2 байта— длина пакета от 20 до 65535 байт
  • 2 байта— идентификатор пакета, все фрагменты одного пакета имеют один идентификатор
  • 1 бит — значение “0”
  • 1 бит — флаг разрешения фрагментации
  • 1 бит — флаг указывающий последний фрагмент пакета (если значение равно “0”)
  • 13 бит — смещение текущего фрагмента в 64-битных словах
  • 1 байт — TTL, оставшееся число маршрутизаторов которое может пройти пакет, уменьшается на каждом маршрутизаторе на 1, при достижении значения “0" пакет удаляется и отправителю направляется уведомление ICMP “Time Exceeded”
  • 1 байт— идентификатор протокола транспортируемого вложенного пакета (ICMP=1, TCP=6, UDP=17, …)
  • 2 байта — контрольная сумма заголовка
  • 4 байта— адрес отправителя
  • 4 байта— адрес получателя
  • 0–40 байт — дополнительные параметры
  • 0–65515 байт — область данных

Пакет версии 6 включает:

  • 4 бита — версия протокола, содержит значение “6"
  • 1 байт — класс трафика определяющий его приоритет
  • 20 бит — метка потока идентифицирующая канал однотипных пакетов между адресатами
  • 2 байта — длина области данных в байтах
  • 1 байт — тип первого расширенного заголовка IPv6
  • 1 байт — TTL, оставшееся число маршрутизаторов которое может пройти пакет, уменьшается на каждом маршрутизаторе на 1, при достижении значения “0” пакет удаляется и отправителю направляется уведомление ICMP “Time Exceeded”
  • 16 байт — адрес отправителя
  • 16 байт — адрес получателя
  • расширенные заголовки
  • 0–64 Кбайт — область данных (с помощью опции jumbo payload в расширенном заголовке Hop-By-Hop Options возможно увеличение области данных до 4 Гбайт минус 1 байт)

Расширенные заголовки содержат дополнительную информацию и размещены между фиксированным заголовком и заголовком протокола более высокого уровня в области данных. Каждый расширенный заголовок имеет поле в котором хранится тип следующего расширенного заголовка, последний расширенный заголовок содержит в этом поле тип протокола более высокого уровня, находящегося в области данных. Каждый расширенный заголовок должен иметь размер в байтах, кратный 8. Некоторые заголовки необходимо расширить до нужного размера. Все расширенные заголовки являются необязательными.

Расширенные заголовки должны быть обработаны только конечным узлом, за исключением заголовка Hop-By-Hop Options, который должен быть обработан каждым промежуточным узлом на пути пакета, включая отправителя и получателя. Расширенные заголовки не должны повторяться в пакете более одного раза, за исключением заголовка Destination Options, который может появиться дважды.

Если расширенных заголовков в пакете несколько, то необходимо отсортировать их в порядке списка указанного ниже:

  • “0” Hop-by-Hop Options — параметры, которые должны быть обработаны каждым транзитным узлом
  • “60” Destination Options — параметры которые должны быть обработаны только получателем
  • “43” Routing — позволяет отправителю определять список узлов, которые пакет должен пройти
  • “44” Fragment — содержит информацию по фрагментации пакета
  • “51” Authentication Header — используется для аутентификации большей части пакета (IPsec)
  • “50” Encapsulating Security Payload— используется для шифрования данных (IPsec)

IP в модели OSI и стеке TCP/IP.

IP (Internet Protocol) - протокол сетевого уровня стека TCP/IP. Протокол был создан в 1981 году и описан в RFC 791. Основной задачей протокола является доставка датаграмм между хостами сетей TCP/IP через произвольное число промежуточных узлов (маршрутизаторов).

Функции, реализуемые IP:

  • Основа передачи данных.
  • Адресация.
  • Маршрутизация.
  • Фрагментация датаграмм.

Протокол IP не гарантирует надежной доставки пакета: пакеты могут прийти в неправильном порядке, пакет может быть утерян, пакет может продублироваться или оказаться поврежденным. За надежность доставки пакетов отвечают протоколы транспортного уровня.

На данный момент наиболее распространена четвертая версия протокола (IPv4), однако ведутся активные работы по внедрению более совершенного IPv6.

Содержание

IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Описан в IETF в статье RFC 791 (сентябрь 1981 года). Это один из самых используемых интернет протоколов. Был введен в использование в ARPANET в 1983 году.

Функция протокола — передавать дейтаграммы по множеству соединенных сетей.

Рассмотрим формат IPv4-дейтаграмм.

Дейтаграмма состоит из заголовка и основной части (данных). Биты передаются слева направо и сверху вниз (big-endian порядок). В настоящее время ясно, что лучше было бы использовать обратный (little-endian) порядок, но во время создания протокола это не было очевидно. Так на Intel x86 требуется программное преобразование, как при передаче, так и при приеме.

Рассмотрим структуру заголовка:

IPv4 и его расположение внутри кадра.

IPv4 example.

IPv6 (англ. Internet Protocol version 6) — новая версия интернет протокола (IP), являющаяся результатом развития IPv4. Протокол был создан IETF в 1996 году. Описан в спецификации RFC 2460.

Основной причиной для создания новой версии протокола послужил факт скорого исчерпания пула IPv4 адресов (по разным оценкам последние выделенные IANA адреса будут заняты в период с 2016 по 2020 года).

Основные отличия IPv6 от IPv4:

  • В IPv6 заголовок имеет фиксированную длину 40 октетов.
  • Поле общей длины заменено полем длины области данных.
  • В IPv6 предусмотрена передача пакетов, длины которых превышают 64 кбайт.
  • Заголовки надстроек.
  • Поле времени жизни заменено полем ограничения количества переходов.
  • Многие дополнения IPv4 были оформлены как отдельные протоколы.

IPv4 использует 32-битные адреса, ограничивающие адресное пространство 4 294 967 296 (2 32 ) возможными уникальными адресами. У каждого хоста и маршрутизатора в Интеренете есть IP-адрес. IP-адрес не имеет отношения к хосту. Он имеет отношение к сетевому интерфейсу, поэтому иногда хост или маршрутизатор могут иметь несколько IP-адресов.

IP-адреса имеют иерархическую организацию. Первая часть имеет переменную длину и задает сеть, а последняя указывает на хост.

Обычно IP-адреса записываются в виде 4 десятичных чисел, каждое в диапозоне от 0 до 255, разделенными точками (dot-decimal notation). Каждая часть представляет один байт адреса. Например, шестнадцатиричный адрес 80D00297 записывается как 128.208.2.151.


Префикс задается наименьшим IP-адресом в блоке и размером блока. Размер определяется числом битов в сетевой части, оставшиеся биты в части хоста могут варьироваться. Таким образом, размер является степенью двойки. Он записывается после префикса IP-адреса в виде слэша и длины сетевой части в битах. В предыдущем примере префикс содержит 2 8 адресов и поэтому для сетевой части отводится 24 бита. Записывается так: 128.208.2.0/24.

IP адрес может означать одно из трех:

  • Адрес IP сети (группа IP устройств, имеющих доступ к общей среде передаче - например, все устройства в сегменте Ethernet). Сетевой адрес всегда имеет биты интерфейса (хоста) адресного пространства установленными в 0 (если сеть не разбита на подсети);
  • Широковещательный адрес IP сети (адрес для 'разговора' со всеми устройствами в IP сети). Широковещательные адреса для сети всегда имеют интерфейсные (хостовые) биты адресного пространства установленными в 1 (если сеть не разбита на подсети).
  • Адрес интерфейса (например Ethernet-адаптер или PPP интерфейс хоста, маршрутизатора, сервера печать итд). Эти адреса могут иметь любые значения хостовых битов, исключая все нули или все единицы - чтобы не путать с адресами сетей и широковещательными адресами.

Адрес в IPv6 представляется как восемь групп из четырех шестнадцатеричных чисел, разделенных двоеточиями. При записи адреса используются следующие правила:

  • Если одна и более групп, идущих подряд, равны 0000, то они опускаются и заменяются на двойное двоеточие.
  • Незначащие старшие нули в группах опускаются.
  • Для записи встроенного или отображенного IPv4 адреса последние две группы цифр заменяются на IPv4 адрес.
  • При использовании IPv6 адреса в URL он помещается в квадратные скобки.
  • Порт в URL пишется после закрывающей квадратной скобки.
  • Одноадресный (Unicast) - для отправки пакет на конкретный адрес устройства.
    • Global unicast - глобальные адреса. Могут находиться в любом не занятом диапазоне.
    • Link loсal - локальный адрес канала. Позволяет обменивать данными по одному и тому же каналу (подсети). Пакеты с локальным адресом канала не могут быть отправлены за пределы этого канала.
    • Unique local - уникальный локальные адреса. Используются для локальной адресации в пределах узла или между ограниченным количеством узлов.
    • Assigned - назначенные адреса. Зарезервированные для определённых групп устройств Multicast адреса.
    • Solicited - запрошенные адреса. Остальные адреса, которые устройства могут использовать для прикладных задач.

    Большинство каналов передачи данных устанавливают максимальную длину пакета (MTU). В случае, когда длина пакета превышает это значение, происходит фрагментация.

    Протокол IP требует, чтобы в маршрутизации участвовали все узлы (компьютеры). Длина маршрута, по которому будет передан пакет, может меняться в зависимости от того, какие узлы будут участвовать в доставке пакета. Каждый узел принимает решение о том, куда ему отправлять пакет на основании таблицы маршрутизации (routing tables).

    Длина префикса не выводится из IP-адреса, поэтому протоколу маршрутизации вынуждены передавать префиксы на маршрутизаторы. Иногда префиксы задаются с помощью указания длины.


    То есть маска подсети определяет как будут локально интерпретироваться IP адреса в сегменте IP сети, что для нас весьма важно, поскольку определяет процесс разбивки на подсети.

    Стандартная маска подсети - все сетевые биты в адресе установлены в '1' и все хостовые биты установлены в '0'. Выполненение операции И между маской и IP-адресом позволяет выделить сетевую часть.

    О маске подсети нужно помнить три вещи:

    • Маска подсети предназначена только для локальной интерпретации локальных IP адресов (где локальный значит - в том же сетевом сегменте);
    • Маска подсети - не IP адрес - она используется для локальной модификации интерпретации IP адреса.

    Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.

    Таблицы маршрутизации со временем сильно растут, и с этим нужно что-то делать. Маршрутизатор может узнавать о расположении IP-адресов по префиксам различной длины. Но вместо того чтобы разделять сеть на подсети, мы объединим несколько коротких префиксов в один длинный. Этот процесс называется агрегацией маршрута (route aggregation). Длинный префикс, полученный в результате, иногда называют суперсетью (supernet), в противоположность подсетям с разделением блоков адресов.

    Пример агрегации маршрута.

    При агрегации IP-адреса содержатся в префиксах различной длины. Один и тот же IP-адрес может рассматриваться одним маршрутизатором как часть блока /22 (содержащего 2 10 адресов), а другим — как часть более крупного блока /20 (содержащего 2 12 адресов). Это зависит от того, какой информацией обладает маршрутизатор. Такой метод называется CIDR (Classless InterDomain Routing — бесклассовая междоменная маршрутизация).

    Также префиксы могут пересекаться. Согласно правилу, пакеты передаются в направлении самого специализированного блока, или самого длинного совпадающего префикса (longest matching prefix), в котором находится меньше всего IP-адресов.

    По сути CIDR работает так:

    • Когда прибывает пакет, необходимо определить, относится ли данный адрес к данному префиксу; для этого просматривается таблица маршрутизации. Может оказаться, что по значению подойдет несколько записей. В этом случае используется самый длинный префикс. То есть если найдено совпадение для маски /20 и /24, то для выбора исходящей линии будет использоваться запись, соответствующая /24.
    • Однако этот процесс был бы трудоемким, если бы таблица маршрутизации просматривалась запись за записью. Вместо этого был разработан сложный алгоритм для ускорения процесса поиска адреса в таблице (Ruiz-Sanchez и др., 2001).
    • В маршрутизаторах, предполагающих коммерческое использование, применяются специальные чипы VLSI, в которые данные алгоритмы встроены аппаратно.

    Классы IP.

    Раньше использовали классовую адресацию.

    Сколько бит используется сетевым ID и сколько бит доступно для идентификации хостов (интерфейсов) в этой сети, определяется сетевыми классами.

    Всего 5 классов IP-адресов: A, B, C, D, E.

    Их структура и диапазоны указаны на рисунке.

    Существует также специальные адреса, которые зарезервированы для 'несвязанных' сетей - это сети, которые используют IP, но не подключены к Internet. Вот эти адреса:

    Internet Protocol ( IP ) является сетевым уровнем протокола связи в наборе протоколов Internet для ретрансляции дейтаграмм через границу сети. Его функция маршрутизации обеспечивает межсетевое взаимодействие и, по сути, устанавливает Интернет .

    Задача IP - доставлять пакеты от хоста- источника к хосту -получателю исключительно на основе IP-адресов в заголовках пакетов . Для этого IP определяет структуры пакетов, которые инкапсулируют данные, которые необходимо доставить. Он также определяет методы адресации, которые используются для маркировки дейтаграммы информацией об источнике и получателе.

    Исторически IP был службой дейтаграмм без установления соединения в исходной программе управления передачей, представленной Винтом Серфом и Бобом Каном в 1974 году, которая была дополнена службой, ориентированной на соединение, которая стала основой для протокола управления передачей (TCP). Поэтому набор Интернет-протоколов часто называют TCP / IP .

    Первая основная версия IP, Интернет-протокол версии 4 (IPv4), является доминирующим протоколом в Интернете. Его преемник Internet Protocol Version 6 (IPv6), который был в расширении развертывания в общедоступном Интернете , так как с. 2006 г.

    СОДЕРЖАНИЕ

    Функция

    Интернет-протокол отвечает за адресацию интерфейсов узлов , инкапсуляцию данных в дейтаграммы (включая фрагментацию и повторную сборку ) и маршрутизацию дейтаграмм от интерфейса исходного узла к интерфейсу узла назначения через одну или несколько IP-сетей. Для этих целей Интернет-протокол определяет формат пакетов и предоставляет систему адресации.

    Каждая дейтаграмма состоит из двух компонентов: заголовка и полезной нагрузки . Заголовок IP включает в себя исходный IP - адрес, IP - адрес назначения, а также другие метаданные , необходимый для маршрутизации и доставки дейтаграммы. Полезная нагрузка - это передаваемые данные. Этот метод вложения полезной нагрузки данных в пакет с заголовком называется инкапсуляцией.

    IP-адресация влечет за собой присвоение IP-адресов и связанных параметров интерфейсам хоста. Адресное пространство разделено на подсети , включая обозначение сетевых префиксов. IP-маршрутизация выполняется всеми хостами, а также маршрутизаторами , основная функция которых заключается в транспортировке пакетов через границы сети. Маршрутизаторы взаимодействуют друг с другом через специально разработанные протоколы маршрутизации , либо внутренние протоколы шлюзов или внешние протоколы шлюза , как это необходимо для топологии сети.

    История версий


    Версии IP с 1 по 3 были экспериментальными версиями, разработанными между 1973 и 1978 годами. Следующие документы Internet Experiment Note (IEN) описывают версию 3 протокола Internet, предшествовавшую современной версии IPv4:

    • В IEN 2 ( Комментарии к Интернет-протоколу и TCP ) от августа 1977 года описывается необходимость разделения функций TCP и Интернет-протокола (которые ранее были объединены). В нем предлагается первая версия заголовка IP с использованием 0 для поля версии.
    • IEN 26 ( Предлагаемый новый формат заголовка Интернета ) от февраля 1978 г. описывает версию заголовка IP, в которой используется 1-битное поле версии.
    • IEN 28 ( Проект описания межсетевого протокола версии 2 ) от февраля 1978 г. описывает IPv2.
    • IEN 41 ( версия 4 спецификации межсетевого протокола ) от июня 1978 г. описывает первый протокол, который будет называться IPv4. Заголовок IP отличается от современного заголовка IPv4.
    • IEN 44 ( Последние форматы заголовков ) от июня 1978 года описывает другую версию IPv4, также с заголовком, отличным от современного заголовка IPv4.
    • IEN 54 ( спецификация межсетевого протокола версии 4 ) от сентября 1978 г. является первым описанием IPv4 с использованием заголовка, который будет стандартизирован в RFC760 .

    Доминирующим протоколом межсетевого взаимодействия на уровне Интернета является IPv4 ; число 4 определяет версию протокола, содержащуюся в каждой IP-дейтаграмме. IPv4 описан в RFC 791 (1981).

    Версия 5 использовалась протоколом Internet Stream Protocol , экспериментальным протоколом потоковой передачи, который не был принят.

    Надежность

    Конструкция набора интернет-протоколов придерживается принципа сквозного соединения , концепции, адаптированной из проекта CYCLADES . В соответствии с принципом непрерывности, сетевая инфраструктура считается ненадежной по своей природе на любом отдельном сетевом элементе или среде передачи и является динамичной с точки зрения доступности каналов и узлов. Не существует централизованного мониторинга или средства измерения производительности, отслеживающего или поддерживающего состояние сети. В целях уменьшения сложности сети интеллектуальные данные в сети намеренно размещаются в конечных узлах .

    Вследствие такой конструкции Интернет-протокол обеспечивает доставку только с максимальной эффективностью, а его услуги характеризуются как ненадежные . На языке сетевой архитектуры это протокол без установления соединения , в отличие от связи с установлением соединения . Могут возникнуть различные неисправности, такие как повреждение данных , потеря пакетов и дублирование. Поскольку маршрутизация является динамической, что означает, что каждый пакет обрабатывается независимо, и поскольку сеть не поддерживает состояние на основе пути предыдущих пакетов, разные пакеты могут направляться в один и тот же пункт назначения по разным путям, что приводит к неупорядоченной доставке в адрес. получатель.

    Все неисправности в сети должны обнаруживаться и компенсироваться участвующими конечными узлами. Протоколы верхнего уровня набора Интернет-протоколов отвечают за решение проблем надежности. Например, хост может буферизовать сетевые данные, чтобы гарантировать правильный порядок, прежде чем данные будут доставлены в приложение.

    Емкость и возможности канала

    Динамический характер Интернета и разнообразие его компонентов не гарантируют, что какой-либо конкретный путь действительно способен или подходит для выполнения запрошенной передачи данных. Одним из технических ограничений является размер пакетов данных, возможных на данном канале. Существуют средства для проверки максимального размера единицы передачи (MTU) локального канала, и обнаружение MTU пути может использоваться для всего предполагаемого пути к месту назначения.

    Уровень межсетевого взаимодействия IPv4 автоматически фрагментирует дейтаграмму на более мелкие блоки для передачи при превышении MTU канала. IP обеспечивает переупорядочивание фрагментов, полученных не по порядку. Сеть IPv6 не выполняет фрагментацию сетевых элементов, но требует конечных хостов и протоколов более высокого уровня, чтобы избежать превышения MTU пути.

    Протокол управления передачей (TCP) является примером протокола , который регулирует его размер сегмента будет меньше , чем MTU. Протокол пользовательских дейтаграмм (UDP) и ICMP игнорируют размер MTU, тем самым вынуждая IP фрагментировать дейтаграммы слишком большого размера.

    Безопасность

    На этапе проектирования ARPANET и раннего Интернета аспекты безопасности и потребности общедоступной международной сети невозможно было должным образом предвидеть. Следовательно, многие интернет-протоколы обнаруживают уязвимости, выявленные при сетевых атаках и последующих оценках безопасности. В 2008 году была опубликована тщательная оценка безопасности и предложенные меры по устранению проблем. IETF продолжает исследования.

    Читайте также: