Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_ССПО_2013.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
825.41 Кб
Скачать

27. Протокол ip (iPv4, iPv6). Формы записи, форматы пакетов. Протоколы tcp, udp. Форматы сегментов, сравнение

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

IPv4 - основная часть стека TCP/IP, в нем каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта), разделяемые точками, что даёт чуть больше 4 миллиардов различных адресов. Удобной формой записи IP-адреса (IPv4) является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками, например, 192.168.0.1. (или128.10.2.30 — традиционная десятичная форма представления адреса). Формат:Пакет IP содержит 14 полей, из которых 13 являются обязательными. Четырнадцатое поле предназначено для необязательных опций. Поля используют порядок байтов от старшего к младшему, старшие биты идут первыми. Первый бит имеет номер 0, а поле с версией находится в четырёх старших битах первого байта.

Смещение в битах

0-3

4-7

8-13

14-15

16-18

19-31

0

Версия

Размер заголовка

Differentiated Services Code Point

Explicit Congestion Notification

Размер пакета

32

Идентификатор

Флаги

Смещение фрагмента

64

Время жизни

Протокол

Контрольная сумма заголовка

96

Адрес источника

128

Адрес назначения

160

Опции (если размер заголовка > 5)

160 или 192+

Данные

В отличии от IPv4, IPv6 состоит из большего кол-ва бит, используемых при адресации. Вместо 32-битного десятичного представления с разделительными точками IPv6 использует 16-ричный формат записи 128-битных адресов. Формат записи адресов:

- перечисление восьми 16-битных шестнадцатеричных секций, разделенных двоеточиями. Например, IPv6 адрес для интерфейса будет выглядеть как: ABCD:EF12:3456:7890:ABCD:EF12:3456:7890  Любое поле, содержащее начальные нули не нуждается в отображении этих начальных нулей, хотя поле не может быть пустым. Например: 1234:0:0:0:ABCD:123:45:6

- форма отображения адресов допускает использовать "::" для представления части адреса содержащей нулевые биты.  Комбинация "::"используется для представления более чем одной секции нулевых битов, но не может быть использована несколько раз в адресе. Например: адрес 1234:0:0:0:ABCD:0:0:123 может быть представлен в виде 1234::ABCD:0:0:123 или 1234:0:0:0:ABCD::123, но не может быть 1234::ABCD::123.

- используется в смешанном окружении, состоящем из узлов IPv4 и IPv6. В этой нотации шесть высших разрядов 16-битных секций отображаются в 16-ричном формате, а оставшаяся часть адреса отображается в привычном десятичном представлении с разделительными точками. Например:  0:0:0:0:0:0:131.107.6.100 или ::131.107.6.100 (сжатый формат), 0:0:0:0:0:FFFF:131.107.4.99 или ::FFFF:131.107.4.99 (сжатый формат), ABCD:EF:12:34:0:0:131.107.2.98 или ABCD:EF:12:34::131.107.2.98 (сжатый формат).

Протокол IPv6 решает потенциальную проблему нехватки IP- адресов посредством использования 128- разрядных адресов вместо 32- разрядных адресов IPv4, благодаря чему адресное пространство расширяется в 296 раз. Формат заголовка:

Версия (4 бита)-Значением этого поля равно 6.

Приоритет(4 бита).Позволяет отправителю назначать дейтаграмме определенный уровень приоритета по отношению к другим отправляемым пакетам.

Метка потока(24 бита).Используется отправителем, чтобы помечать пакеты, которые требуют специальной обработки сетевыми модулями IPv6.

Длина данных(16 бит). Это длина данных пакета (в байтах), которые следуют за заголовком.

Поле следующего заголовка(8 бит).содержит информацию типа заголовка, который следует за заголовком IPv6.

 Поле ограничения пересылок(8 бит). Величина этого поля уменьшается на 1 при прохождении дейтаграммой шлюза или хоста. Если величина этого поля равна 0, дейтаграмма уничтожается.

 Адрес отправителя. (128 бит).

Адрес получателя(128 бит). Если в заголовке присутствует вложенный заголовок маршрутизации (Routing header), это поле может и не быть адресом назначения.

Протоколы TCP, UDP. Форматы сегментов, сравнение

Протокол TCP (transmission control protocol, RFC-793, -1323) в отличии от udp осуществляет доставку дейтограмм, называемых сегментами, в виде байтовых потоков с установлением соединения. Протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений. Он использует контрольные суммы пакетов для проверки их целостности и освобождает прикладные процессы от необходимости таймаутов и повторных передач для обеспечения надежности. Для отслеживания подтверждения доставки в TCP реализуется алгоритм "скользящего" окна. 

Единицей данных протокола TCP является сегмент, который состоит из заголовка и блока данных. Заголовок сегмента имеет следующие поля:

Порт источника  занимает 2 байта, идентифицирует процесс-отправитель;

Порт назначения  занимает 2 байта, идентифицирует процесс-получатель;

Последовательный номер  занимает 4 байта, указывает номер байта, который определяет смещение сегмента относительно потока отправляемых данных;

Подтвержденный номер занимает 4 байта, содержит максимальный номер байта в полученном сегменте, увеличенный на единицу; именно это значение используется в качестве квитанции;

Длина заголовка  занимает 4 бита, указывает длину заголовка сегмента TCP, измеренную в 32-битовых словах;

Резерв  занимает 6 битов, поле зарезервировано для последующего использования;

Кодовые биты  занимают 6 битов, содержат служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующих бит этого поля:

Протокол UDP обеспечивает доставку дейтограмм, но не требует подтверждения их получения. Протокол UDP не требует соединения с удаленным модулем UDP ("бессвязный" протокол). К заголовку IP-пакета UDP добавляет поляпорт отправителя и порт получателя, которые обеспечивают мультиплексирование информации между различными прикладными процессами, а также поля длинаUDP-дейтограммы и контрольная сумма, позволяющие поддерживать целостность данных. Таким образом, если на уровне IP для определения места доставки пакета используется адрес, на уровне UDP - номер порта.

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