Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало пути.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
7.81 Mб
Скачать

Соотношение между tcp/ip и osi/iso

Распределение протоколов по уровням модели OSI

7

Прикладной

HTTP, SMTP, SNMP, RTP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP

6

Представительский

XDR, ASN.1, AFP, TLS, SSL

5

Сеансовый

ISO 8327 / CCITT X.225, RPC, ASP

4

Транспортный

TCP, UDP, SCTP, SPX, ATP, DCCP, GRE

3

Сетевой

IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP, RARP

2

Канальный

Ethernet, Token ring, PPP, HDLC, X.25, Frame relay, ISDN, ATM, MPLS, Wi-Fi

1

Физический

провода, радиосвязь, оптоволокно

Широко используемый стек протоколов TCP/IP, на базе которого была построена Internet, включает в себя протоколы четырёх уровней:

прикладного уровня (FTP, DNS, HTTP, HTTPS, IMAP, IRC, POP3, SMTP, Telnet); транспортного уровня (TCP, UDP); межсетевого (Internet) (IP, ICMP); сетевого (network access) (Ethernet, X.25, Token Ring, Wi-Fi).

В стеке TCP/IP верхние 3 уровня модели OSI(прикладной, представительский и сеансовый) объединяют в один – прикладной.

Распределение протоколов по уровням модели TCP/IP

5

Прикладной

HTTP, RTP, FTP, DNS

4

Транспортный

TCP, UDP, SCTP, DCCP

3

Сетевой

IP и вспомогательные протоколы ICMP и IGMP

2

Канальный

Ethernet, SLIP, Token Ring, ATM и MPLS

1

Физический

физическая среда и принципы кодирования

На стеке протоколов TCP/IP построено взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных. На каждом уровне стека протоколов TCP/IP обмен данными ведется блоками данных конечной длины. Названия блоков данных зависят от уровня стека протоколов: прикладной и транспортный – Пакет, межсетевой – Сегмент, сетевой – Кадр.

Межсетевой протокол iPv4

Протокол реализует обмен информации IP-сегментами размером до 65535 байт. Каждый сегмент содержит заголовок и данные. IP является протоколом взаимодействия без установления логического соединения. Для адресации узлов сети используется IP - адрес длиной 4 байта. Протокол не гарантирует надежность доставки сегментов адресату. IP-сегменты имеют конечное время жизни в сети. В Таблице приведен формат IPv4 заголовка IP-сегмента.

0

1

2

3

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

Версия

IHL

Тип обслуживания

Длина пакета

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

Флаги

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

Число переходов (TTL)

Протокол

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

IP-адрес отправителя (32 бита)

IP-адрес получателя (32 бита)

Параметры (до 320 бит)

Данные (до 65535 байт минус заголовок)

  • Версия – 4-х битовое поле содержит версию протокола=4

  • IHL – длина заголовка IP-пакета в 32-битных словах. Минимальное значение равно 5.

  • Длина сегмента: двухбайтовое поле, содержащее длину IP-сегмента, включая заголовок. Максимальная длина 65535 байт.

  • Идентификатор – значение, назначаемое отправителем пакета для корректной последовательности фрагментов при сборке пакета.

  • Число переходов – максимальное число маршрутизаторов.

  • Транспорт: содержит идентификатор протокола транспортного уровня. Например: 1 -ICMP, 6 – TCP, 17-UDP.

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

  • Время жизни (TTL – Time To Live): однобайтовое поле, содержащее количество единиц времени жизни сегмента в сети. Каждый транзитный узел сети, через который проходит IP-сегмент, уменьшает содержимое этого поля на 1 и обязан уничтожать IP-сегменты, для которых "время жизни" стало равным нулю.

  • Адрес источника и адрес приемника: четырехбайтовые IP-адреса узлов сети.

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

Формат пакета IPv6

Пакеты состоят из данных и управляющей информации, необходимой для доставки пакета адресату. Управляющая информация содержится в основном фиксированном заголовке, или в одном из необязательных дополнительных заголовков. Полезные данные – это дейтаграмма или фрагмент протокола более высокого транспортного уровня. IPv6-пакеты передаются с помощью протоколов канального уровня, таких как Ethernet, который инкапсулирует каждый пакет в кадр.

Заголовок IPv6

Рис. Формат заголовка пакета IPv6

Версия- 4-битный код версия Интернет протокола для IPv6= 6)

Приор.- 8-битный код приоритета

Метка потока- 24-битный код метки потока (для мультимедиа)

Размер поля данных- 16-битовое число представляет код длины поля данных в октетах, которое следует сразу после заголовка пакета.

Следующий заголовок- 8-битовый разделитель. Идентифицирует тип заголовка, который следует непосредственно за IPv6 заголовком. Использует те же значения, что и протокол IPv4.

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

Адрес отправителя-128-битовый адрес отправителя пакета.

Адрес получателя-128-битовый адрес получателя пакета

Заголовки расширения IPv6

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

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

IPv6 заголовок

Заголовок опций hop-by-hop

Заголовок опций места назначения (destination options header)

Заголовок маршрутизации

Заголовок фрагмента

Заголовок authentication

Заголовок безопасных вложений (encapsulating security payload)

Заголовок опций места назначения

Заголовок верхнего уровня

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

Маршрутный заголовок

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

Заголовок фрагмента

В отличие от IPv4, фрагментация в IPv6 выполняется только узлами-отправителями, а не маршрутизаторами вдоль пути доставки. Заголовок фрагмента используется отправителем IPv6. Заголовок фрагментации идентифицируется кодом поля, равным 44.

Нефрагментированная часть состоит из IPv6 заголовка плюс любые заголовки расширения, вплоть до заголовка маршрутизации, если таковой присутствует, или до заголовка опций hop-by-hop.

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

Приоритет

4-битовое поле приоритета в IPv6 заголовке позволяет отправителю идентифицировать приоритет доставки пакетов 0..15. Предполагается, что чем больше код, тем выше приоритет данных. Практически, уровни приоритета выше или равные 8 зарезервированы для передачи данных в реальном масштабе времени.

Контрольные суммы верхнего уровня

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

В отличие от IPv4, при формировании UDP-пакета IPv6 узел должен вычислить контрольную UDP сумму пакета и псевдо-заголовка и, если вычисление дает в качестве результата нуль, он должен быть заменен на FFFF для помещения в UDP заголовок.

IPv6 версия ICMP-пакетов включает псевдо-заголовок в вычисление контрольной суммы; это отличается от IPv4 версии ICMP, которая не включает псевдо-заголовок в контрольную сумму. Причина изменения связана с попыткой защитить ICMP от некорректной доставки или искажений важных полей в IPv6 заголовке, который в отличие от IPv4 не защищен контрольным суммированием на интернет-уровне. Поле следующий заголовок в псевдо-заголовке для ICMP содержит код 58, который идентифицирует IPv6 версию ICMP.

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

В отличие от IPv4, узлы IPv6 не требуют установки максимального времени жизни пакетов. По этой причине поле IPv4 "time to live" (TTL) переименовано в "hop limit" (предельное число шагов) для IPv6.

Максимальный размер поля данных

При вычислении максимального размера поля данных, доступного для протокола верхнего уровня, должен приниматься во внимание большой размер заголовка IPv6 относительно IPv4. При использовании TCP поверх IPv6, MSS должно быть вычислено как максимальная длина пакета минус 60 октетов, так как минимальная длина заголовка IPv6 равна 40 и на 20 октетов больше, чем для IPv4.

Протокол управляющих сообщений (ICMPv6)

IPv6 использует протокол управляющих сообщений (ICMP) с некоторым количеством изменений. Результирующий протокол называется ICMPv6, и имеет код следующего заголовка 58. ICMPv6 используется узлами IPv6 для сообщений об ошибках при обработке пакетов, и для выполнения других функций уровня Интернет, таких как диагностика.