Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация Вычислительных Систем / Computer System Organization - Part2-Computer Networks.doc
Скачиваний:
51
Добавлен:
01.05.2014
Размер:
3.45 Mб
Скачать

Уровень IV стека tcp/ip

Это уровень сетевых интерфейсов, который по своим функциям соответствует физическому и канальному уровням модели OSI.

В стеке протоколов TCP/IP этот уровень не регламентируется. Он отвечает за прием дейтаграмм и их передачу по конкретной сети. Для каждого типа сетей должны быть разработаны соответствующие интерфейсные средства. Например, к таким средствам относится протокол инкапсуляции IP-пакетов в кадры Ethernet (по документу RFC 1042).

Аналогичные средства предусматриваются для сетей Token Ring, FDDI, 100VG-AnyLAN, а также для работы с глобальными сетями, поддерживающими протоколы SLIP, PPP, X.25, Frame Relay, ATM и т.д. К примеру, процедура инкапсуляции IP-кадров в ячейки ATM изложена в документе RFC 1577.

Каждый коммуникационный протокол оперирует с некоторой единицей передаваемых данных. В TCP/IP сложилась определенная (традиционная) терминология в этой области (см. рис.).

Потокомназывают данные, поступающие на вход протоколов транспортного уровня TCP и UDP.

Протокол TCP нарезает из потока данных сегменты.

Единицу данных протокола UDP часто называют дейтаграммой. Дейтаграмма – это общее название для единиц данных, которыми оперируют протоколы без установления соединения. К таким протоколам относится и протокол IP.

Дейтаграмму протокола IP называют также пакетом.

Единицы данных протоколов, на основе которых IP-пакеты переносятся по сети, называют кадрами(фреймами).

Протокол ip

Является базовым протоколом стека TCP/IP.

Формат дейтаграммы

Дейтаграмма (пакет) протокола имеет формат, показанный на рисунке.

Поле «номер версии» (4 бита) указывает сейчас почти повсеместно версию IPv4, однако некоторые домены уже переходят на версию IPv6.

Поле «длина заголовка»(4 бита) указывает длину в 32-разрядных словах. Обычная длина – 5 слов, однако за счет поля опций (options) она может быть увеличена до 15 слов (60 байт).

Поле «тип сервиса»(8 бит) содержит:

  • Три бита PR, указывающие приоритет пакета (0 – нормальный; 7 – самый высокий). Значение этого поля может приниматься во внимание маршрутизаторами.

  • Биты D, T и R используются протоколами маршрутизации. Они задают критерий выбора маршрута. D=1 – указывает на необходимость минимизации задержки при доставке данного пакета. T=1 – показывает на желательность максимизации пропускной способности. R=1 – указывает на необходимость обеспечения максимальной надежности доставки.

  • Два последних бита в этом поле зарезервированы.

Поле «общая длина»(2 байта) — это общая длина в байтах заголовка и поля данных. Максимальная длина составляет 65535 байт. При передаче по разным сетям длина пакета выбирается исходя из размера внутренней области кадра. На рисунке показано такое размещение для сети Ethernet. По стандарту все устройства сети Интернет должны быть готовы принимать дейтаграммы длиной 576 байт.

Передача дейтаграммы в кадре называетсяинкапсуляцией. Длина пакета выбирается с учетом максимальной длины кадра протокола нижнего уровня, несущего IP-пакеты. Для сети Ethernet – это 1500 байт, для FDDI – 4096 байт.

При необходимости протокол IP выполняет функции фрагментации и сборки. Это разделение дейтаграммы на части и их последующее объединение. Фрагментация осуществляется с учетом максимальной длины единицы передачи MTU(Maximum Transmission Unit) конкретной сети. Формируемые маршрутизатором фрагменты идентифицируются смещением относительно начала исходной дейтаграммы.

Поле «идентификатор пакета»(2 байта) используется для распознавания пакетов, образованных в результате фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.

Поле «флаги»(3 бита) содержит:

  • Бит DF (Do not Fragment) = 1 запрещает маршрутизатору фрагментировать данный пакет.

  • Бит MF (More Fragments) = 1 указывает на то, что данный пакет является промежуточным (не последним) фрагментом.

  • Третий бит зарезервирован.

Поле «смещение фрагмента»(13 бит) задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Это смещение должно быть кратно 8.

Поле «время жизни»(1 байт) указывает предельный срок, в течении которого пакет может перемещаться по сети. Задается в секундах. Каждый маршрутизатор вычитает величину задержки (но не менее 1 сек.) из этой величины. Если параметр становится равным нулю — пакет уничтожается. (Этот параметр можно считать часовым механизмом самоуничтожения.) На практике каждый маршрутизатор просто вычитает 1 из значения этого поля «Time to live», т.к. скорости в сети высокие и время пересылки между узлами практически всегда не превышает 1 секунды.

Поле «протокол верхнего уровня»(1 байт) указывает, какому протоколу предназначается информация, размещенная в поле данных пакета. Например: 6 — для протокола TCP; 17 — протоколу UDP; 87 — протоколу OSPF и т.д.

Поле «контрольная сумма»(2 байта) применяется для защиты от ошибок заголовка пакета. Это сумма по mod 8 всех 16-битовых слов заголовка. При обнаружении маршрутизатором ошибки пакет отбрасывается.

Поля «адрес отправителя» и «адрес получателя» (по 32 бита).

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

Поле «выравнивание»– это дополнение (при необходимости) нулями до полного 32-битового слова.

Задачи протокола

Основная функция протокола– это передача дейтаграммы от отправителя до получателя через объединенную систему компьютерных сетей.

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

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

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

Фрагментация IP-пакетов

Вузле-отправителе задача фрагментации поступающих с прикладного уровня сообщений возлагается на протокол TCP.

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

В большинстве локальных и глобальных сетей значения MTU (максимальная единица передачи) значительно отличаются. Сеть Ethernet имеет MTU=1500 байт, для сети FDDI значение MTU=4096 байт, сети же Х.25 чаще всего работает с MTU=128 байт.

IP-пакет может быть помечен при передаче как нефрагментируемый (бит DF=1). Это означает для маршрутизаторов запрет этой операции. Если такой пакет поступает в сеть с меньшим MTU, то он просто уничтожается, а узлу-отправителю отправляется ICMP-сообщение.

Фрагментирование может выполняться и средствами самой сети. Так поступает, например, сеть ATM, которая с помощью уровня AAL (ATM Adaptation Layer) делит поступающие IP-пакеты на 48-байтовые фрагменты (в ATM размер ячейки равен 53 байтам), а затем вновь их собирает.

Поле «идентификатор пакета» (2 байта) используется получателем для сборки фрагментов, относящихся к определенному пакету. Поле «смещение фрагмента» (13 бит) сообщает получателю положение фрагмента во исходном пакете. Флаг MF=0 указывает на то, что данный фрагмент является последним.

При фрагментации модуль IP на маршрутизаторе создает несколько новых пакетов и копирует заголовок в каждый из них (меняя признаки фрагментации). Соответствующая часть данных помещается в информационное поле нового фрагмента (см. рис.). Размер этой части должен быть кратен 8 байтам (кроме последнего пакета).

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

Классы IP-адресов

IP-адрес имеет длину 32 бита и обычно записывается в виде 4-х чисел, представляющих значение каждого байта в десятичной форме и разделенных точками. Например:

128.10.2.5 = 10000000000010100000001000000101

Адрес состоит из двух логических частей — номера сети и номера узла в сети.

В зависимости от того, сколько цифр в адресе используются для задания номера сети, выделяют IP-адреса пяти классов: от A до E (см. рис.).

Сети класса А имеют адреса от 1 до 126 (0 – не используется, а 127 – зарезервирован для специальных целей). Число узлов — 224или 16777216.

В сети класса В может быть до 216узлов или 65536.

Сеть класса С может иметь до 28или 256 узлов.

Для сетей класса D задается групповой адрес multicast. Пакет будут получать все члены группы, которым присвоен такой адрес.

Адреса класса Е зарезервированы для будущих применений.

Особые IP-адреса.

  • Если весь адрес – одни нули, то он обозначает адрес того узла, который сгенерировал этот пакет.

  • Если в поле номера сети стоят одни нули – считается, что узел назначения принадлежит той же сети, что и узел-отправитель.

  • Если все разряды IP-адреса равны 1, то пакет с таким адресом рассылается всем узлам, находящимся в той же сети, что и узел-источник. Этот режим называется ограниченной широковещательной рассылкой(limited broadcast).

  • Если в поле номера узла назначения стоят только единицы, то такой пакет рассылается всем узлам сети с заданным номером. Такой режим определяется как широковещательное сообщение(broadcast). Например: 192.190.21.255 — сообщение рассылается всем узлам сети 192.190.21.

  • Адрес с первым байтом равным 127 используется для тестирования взаимодействия процессов внутри одной машины. Образуется «петля» внутри одного узла-отправителя — данные считаются только что принятыми. Этот адрес обозначается как loopback.

Маски в IP-адресации

Применяются для установления более гибкой границы между номером сети и номером узла.

Маска– это число, которое используется в паре с IP-адресом. Двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. (Эти единицы должны представлять непрерывную последовательность).

Например, для класса С маска имеет вид: 255.255.255.0.

Может использоваться и другая запись. Например: 185.23.44.206/16 указывает на то, что для адреса сети используется 16 разрядов.

Маска может иметь произвольное число разрядов, например:

IP-адрес: 129.64.134.5

Маска: 255.255.128.0, т.е. /17

Здесь маска указывает на то, что для адреса сети используются не 15 бит (как в сети класса В), а 17 бит. Наложив маску на номер получим:

Номер сети: 129.64.128.0

Номер узла: 0.0.6.5

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