- •Глава 1
- •БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ
- •1.1. Упрощенная архитектура сети Интернет
- •1.2. Модель OSI. Понятие об интерфейсах и протоколах.
- •Рекомендация ITU-T X.200
- •1.3. Стек протоколов Интернет
- •1.4. Протоколы доступа в Интернет
- •1.5. Адресация в Интернет
- •1.5.2. IP-адресация версии 4
- •1.6. Физический уровень
- •1.7.1. Технология Ethernet
- •1.7.2. Технология Token Ring
- •1.7.3. Технология FDDI
- •1.8.1. Протокол Интернет версии 4
- •1.8.2. Протокол преобразования адресов
- •1.8.3. Протокол маршрутизации выбора кратчайшего пути первым
- •1.8.4. Протокол межсетевых управляющих сообщений
- •1.8.5. Протокол управления группами в Интернет
- •1.8.6. Протокол Интернет версии 6
- •1.9.1. Протокол управления передачей
- •1.9.2. Протокол дейтаграмм пользователя
- •1.10.1. Ин формационный протокол маршрутизации
- •1.10.2. Протокол динамической конфигурации оконечных устройств
- •1.10.3. Протокол разрешения доменных имен
- •1.12.1. Протокол Telnet
- •1.12.2. Протокол пересылки файлов. Простейший протокол пересылки файлов
- •1.12.3. Простой протокол передачи почты
- •1.12.4. Протокол передачи гипертекста
- •1.12.5. Простой протокол управления сетью
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
Адрес источника (Source Address) – определяет сетевой адрес (IP-адрес) отправителя IGMP-пакета, длина 32 бита.
Адрес назначения (Destination Address) – определяет групповой адрес получателя, длина 32 бита.
Версия (Version) – принимает значение 1.
Тип операции (Type) – в это поле помещается код операции (1 – запрос о наличии участников группы, 2 – отчет о наличии участников в группе).
Неиспользуемое поле (Unused) – длина 1 байт, все “0”.
Контрольная сумма сообщения IGMP (Checksum) – используется для обнаружения ошибок при передаче IGMP-пакета, длина 16 бит. Сумма всех 1-байтных слов сообщения полей IGMP совместно с контрольной суммой дает результат “все 0”.
Групповой адрес (Group Address) – это поле заполняется групповым адресом при передаче отчета, устанавливается в “0” при передаче запроса.
Свое намерение о вхождении во временную группу хост инициирует рассылкой IGMP-отчета (Type=2) маршрутизатору, который ретранслирует его по предопределенному интерфейсу к серверу услуг. Сервер услуг начинает передавать пакеты с групповым IP-адресом. Каждый маршрутизатор на пути следования IGMPпакета периодически (не чаще 1 раза в минуту) проверяет существование групп рассылкой по предопределенному интерфейсу IGMP-запроса (Type=1) о наличии участников в группе. Узлы, принадлежащие какой либо группе, в ответ на запрос высылают отчет (Type=2) о своем участии в группе с указанием адреса этой группы. Для избегания одновременной передачи отчетов каждый участник группы высылает IGMP-отчет в случайном диапазоне времени от 0 до 10 секунд после получения запроса. Адрес назначения принимает значение группового адреса. При отсоединении от группы всех участников оконечные устройства перестают отвечать на запросы, на основании чего маршрутизаторы узнают о распаде временной группы и перестают рассылать запросы и ретранслировать поступающие IP-пакеты с групповым адресом.
1.8.6. Протокол Интернет версии 6
Изменения IPv4 на IPv6 преследовало следующие цели.
•Расширение адресного пространства. Адресное поле протокола расширено с 32 бит до 128 бит. Необходимость расширения в большой степени вызвано общим увеличением числа пользователей, а также потребностью иметь несколько адресов. Например, мобильные пользователи используют два IP-адреса: один – домашний и другой – временный, по месту текущего месторасположения. Когда устанавливается соединение с мобильным пользователем, то сначала устанавливается соединение на его домашний IP-адрес, откуда оно переадресовывается на текущее местоположение и с него поступает ответ с временным IP-адресом.
•Упрощение формата заголовка.
•Упрощение опциональных полей.
•Возможности разделения потоков.
•Аутентификация и защита данных.
Местоположение и наименование полей протокола Интернет версии 6 (Internet Protocol, IPv6) [RFC 2460, DS] изображено на рис. 1.38. Порядок передачи бит кадра: слева направо/снизу вверх. Назначение полей пакета следующее.
Версия (Version) – определяет формат заголовка, длина 4 бита, для версии 4 Version=6 (двоичный код 0110).
Класс трафика (Traffic Class) – используется узлами (оконечными устройствами и маршрутизаторами) для идентификации видов трафика и приоритета их обслуживания, длина 8 бит. Заменяет поле Тип услуги (Type of Service) в версии IPv4.
56
Глава 1 |
БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ |
______________________________________________________________________________
К настоящему времени назначение бит полностью не определено. Узлы вправе игнорировать заданный класс обслуживания, если они его не поддерживают.
Расширенный заголовок (Extension headers)
Адрес назначения (Destination Address)
Адрес источника (Source Address)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Длина поля данных (Payload Length) |
Следующий заголовок |
|
Предел переходов |
||
|
|
|
(Next Header) |
|
(Hop Limit) |
Версия |
Класс трафика |
|
Метка потока |
|
|
(Version) |
(Traffic Class) |
|
(Flow Label) |
|
|
2 уровень
1 уровень
Рис. 1.38. Местоположение в стеке протоколов и формат IPv6
Метка потока (Flow Label) – позволяет исходящему узлу помечать потоки для специального обслуживания, длина 20 бит. Все проходящие узлы должны обслуживать помеченный поток одинаковым образом. Узлы, не поддерживающие эти возможности, должны установить значения всех бит в “0”.
Длина поля данных (Payload Length) – определяет длину октетов, следующих за заголовком, длина 16 бит.
Следующий заголовок (Next Header) – содержит указатель на протокол вышележащего уровня (TCP, UDP, …), либо на наличие опции, расположенной в поле
Расширенный заголовок (Extension headers), длина 8 бит.
Предел переходов (Hop Limit) – определяет предельный срок перемещения пакета по сети, длина 8 бит. Устанавливается на передаче, каждый маршрутизатор вычитает из текущего значения единицу, при значении 0 пакет уничтожается.
Адрес источника (Source Address) – определяет сетевой адрес (IP-адрес) отправителя пакета, длина 128 бит.
Адрес назначения (Destination Address) – определяет сетевой адрес получателя, длина 128 бит.
Расширенный заголовок (Extension headers) – содержит опции для использования проходящими узлами и данные вышележащему уровню. Поле Расширенный заголовок обрабатывает только тот узел, адрес которого указан в поле Адрес назначения. Исключение составляет опция заголовка От узла к узлу, расположенная сразу же после основного заголовка, которую должны обрабатывать все проходящие узлы. Наличие этой опции идентифицируется “нулевым значением” поля Следующий заголовок (Next Header) основного заголовка. Такая процедура обработки заголовка позволяет существенно снизить время обработки пакета и ускорить доставку пакета до потребителя за минимальное время. Обработка полей ведется в строгом порядке их расположения.
Полный стек IPv6 иллюстрируется таблицей табл. 1.14.
57
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
Табл. 1.14
Заголовок и данные вышележащему уровню (TCP, UDP, RSVP,…)
Опция Конечный адрес назначения
Опция Защита данных
Опция Аутентификация
Опция Фрагментация
Опция Маршрутизация
Опция Промежуточный адрес назначения
Опция От узла к узлу
Основной заголовок IPv6 (40 байт)
Использование полей Расширенный заголовок состоит в следующем.
Наличие опции От узла к узлу идентифицируется значением 0 поля Следующий заголовок в основном заголовке IPv6. Последовательно включает в себя поля:
Следующий заголовок, Длина опции, Опции.
Наличие опции Промежуточный адрес назначения идентифицируется значением 60 поля Следующий заголовок предыдущей опции. Используется только узлом, адрес которого указан в поле Адрес назначения (Destination Address) для реализации процедур
свободная маршрутизация (Loose Source and Record Route – LSRR).
Наличие опции Маршрутизация идентифицируется значением 43 поля Следующий заголовок предыдущей опции. Используется для реализации процедур
запись части выбранного маршрута (Loose Source and Record Route – LSRR).
Последовательно включает в себя поля: Следующий заголовок, Длина опции, Данные маршрута.
Наличие опции Фрагментация идентифицируется значением 44 поля Следующий заголовок предыдущей опции. Используется для сборки фрагментированной информации на приеме. Последовательно включает в себя поля: Следующий заголовок,
Смещение фрагмента (Fragment Offset), Флаги (сегмент промежуточный или последний). Фрагментацию осуществляет только исходящий узел, проходящие узлы этим не занимаются. Протокол требует передачу пакетов длиной не менее 1280 байт. Это означает, что минимальная длина поля полезной нагрузки равна 1232 байта (1280 байт минус 40 байт основного заголовка минус 8 байт заголовка опции). Фрагментации на более мелкие части при необходимости осуществляют другие уровни.
Наличие опции Шифрование по протоколу ESP идентифицируется значением 50 поля Следующий заголовок предыдущей опции.
Наличие опции Аутентификация по протоколу AH идентифицируется значением 51 поля Следующий заголовок предыдущей опции.
Наличие опции Конечный адрес назначения идентифицируется значением 60 поля Следующий заголовок предыдущей опции. Используется только узлом, адрес которого указан в поле Адрес назначения (Destination Address). Отсутствие следующей опции идентифицируется значением 59 поля Следующий заголовок предыдущей опции.
ВОПРОСЫ К РАЗДЕЛУ 1.8
1. Какие протоколы сетевого уровня используют протокол IP?
Ответ. ICMP с номером протокола 0х0001, IGMP с номером протокола 0х0002, OSPF с номером протокола 0х0059.
2. Какие протоколы используются на транспортном уровне?
Ответ. UDP с номером протокола 0х0011, TCP с номером протокола 0х0006.
58
Глава 1 БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ
______________________________________________________________________________
3. В каком случае модуль IP осуществляет фрагментацию?
Ответ. В случае, если поступивший пакет имеет большую длину (MTU), чем она разрешена на адресуемом интерфейсе.
4. Какую информацию рассылает граничный маршрутизатор зоны во внешнюю
сеть?
Ответ. Только состав сетей и метрики их достижения.
5.Каким образом OSPF-маршрутизатор узнает об установлении связи с соседним маршрутизатором?
Ответ. Обнаружением своего IP-адреса в списке сообщения Hello, полученного от соседнего маршрутизатора.
6.Обеспечивается ли надежная доставка сообщений ICMP?
Ответ. Нет.
7.Что делает узел, входящий в групповую рассылку, при приеме IGMP отчета от другого участника группы?
Ответ. Перезапускает таймер отсылки отчета.
8.Каковы основные преимущества протокола IPv6 перед IPv4?
Ответ. Расширение адресного пространства и упрощение процедуры обработки полей протокола.
1.9.Транспортный уровень
1.9.1.Протокол управления передачей
Протокол управления передачей (Transmission Control Protocol, TCP) [RFC 793, STD 7] обеспечивает надежный канал обмена данными между прикладными процессами в составной сети, т.е. “из конца в конец”. Протокол ориентирован на установление логических соединений между узлами, обеспечивая следующие возможности.
Надежную доставку сегментов. TCP предохраняет данные от повреждений, утери, дублирования и доставляет пакеты в порядке их формирования на передаче. Это достигается присвоением каждому передаваемому сегменту порядкового номера
(Sequence Number) и получение номера подтверждения (Acknowledgement Number) от принимаемой стороны на каждый правильно принятый сегмент. Когда модуль TCP передает очередной сегмент, то он помещает его копию в очередь и запускает таймер. Если подтверждение на переданный сегмент принято, то сегмент удаляется из очереди. Отсутствие подтверждения означает либо искажение переданного сегмента, либо его утерю, либо потерю подтверждения. Если в течение заданного времени подтверждение не поступает, то не подтвержденный сегмент передается повторно.
Приемник использует порядковые номера для правильной сборки сегментов, которые из сети могут приходить в произвольном порядке. Повреждение передаваемых данных обнаруживается при несовпадении контрольной суммы.
Контроль потока. Это достигается применением механизма “окна” (Window). Принимающий модуль TCP отправляет значение окна передающему модулю. Значение окна задает количество байтов (размер свободного места в приемном буфере), которое принимающий модуль TCP готов принять. В случае правильного приема сегмента, он изымается из буфера и передается вышележащему уровню, размер окна увеличивается на размер изъятого сегмента, передающему модулю передается подтверждение о принятой порции данных и новое значение окна. Нулевой размер окна означает, что приемник не успевает обрабатывать поступающие данные, поэтому отправитель должен приостановить передачу.
59
Ю.Ф.Кожанов, Колбанев М.О ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ СЕТЕЙ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
______________________________________________________________________________
Мультиплексирование данных. TCP одновременно может обслуживать несколько прикладных процессов. Каждый прикладной процесс идентифицируется своим уникальным номером порта.
Создание независимых соединений. Когда два хоста хотят связаться друг с другом, то они устанавливают соединение. Каждое соединение однозначно специфицируется парой сокетов. При окончании связи соединение разрушается.
Приоритетное обслуживание. TCP опционально может обеспечивать приоритетное обслуживание. По умолчанию оно не используется. Функции приоритетного обслуживания и шифрования данных обычно осуществляется модулем IP или вышележащими уровнями с заранее оговоренными параметрами.
Установление связи между прикладными процессами начинается с того, что один из них вызывает модуль TCP и высылает свои данные в буфер. TCP разбивает поток данных на сегменты, дополняет каждый сегмент управляющей информацией и извещает модуль IP, в какой удаленный модуль TCP следует отправлять эти сегменты. Приемный модуль TCP после обработки управляющей информации помещает сегменты в приемный буфер и извещает соответствующий вышележащий уровень.
Передающий модуль IP упаковывает сегменты в пакеты локальной сети и в зависимости от адреса назначения маршрутизирует их в локальный IP модуль или в исходящий шлюз. Входящий шлюз следующей локальной сети анализирует, следует ли пакет направить конечному узлу или следующему шлюзу. Для передачи по локальной сети входящий модуль IP может разбить принятый пакет на более мелкие части, если локальная сеть использует меньшее значение MTU.
Передающий модуль TCP может накапливать данные и отсылать их, когда это ему удобно, пока от приложения не поступает указание о немедленной отправке (PUSH). В этом случае все неотправленные данные должны быть отправлены немедленно, а при поступлении этого указания приемному модулю TCP, он должен немедленно вывести все принятые наколенные сегменты.
Местоположение и наименование полей TCP изображено на рис. 1.39. Порядок передачи бит кадра: слева направо/снизу вверх.
Данные (Data)
Опции и Заполнение (Option + Padding)
Контрольная сумма (Checksum) |
Указатель важности (Urgent pointer) |
||||||||
Смещение |
Резерв |
|
U |
A |
P |
R |
S |
F |
Окно |
(Offset) |
(Reserved) |
|
|
|
|
|
|
( Window) |
|
|
Номер |
подтверждения |
(Acknowledgement Number) |
||||||
|
|
Порядковый номер (Sequence Number) |
|||||||
Номер порта источника (Source Port) |
Номер порта назначения (Destination Port) |
||||||||
|
|
|
|
|
|
|
3 уровень |
||
2 уровень
1 уровень
Рис. 1.39. Местоположение в стеке протоколов и формат TCP
Номер порта источника (Source Port) – определяет номер приложения, от которого поступил сегмент, длина 16 бит.
Номер порта назначения (Destination Port) – определяет номер приложения, к которому следует доставить сегмент, длина 16 бит.
Порядковый номер (Sequence Number) – условный номер первого байта в передаваемом сегменте, длина 32 бита.
60
Глава 1 |
БАЗОВЫЕ ПРОТОКОЛЫ ИНТЕРНЕТ |
______________________________________________________________________________
Номер подтверждения (Acknowledgement Number) – условный номер первого байта в ожидаемом следующем сегменте, длина 32 бита.
Смещение данных (Data Offset) – определяет длину заголовка в 32-х битных словах, длина 4 бита.
Резерв (Reserved) – резервные шесть бит (все “0”).
Биты управления (Control Bits) – содержат управляющую информацию, длина 6 бит. Первый бит U (Urgent) – признак срочности, второй бит A (Acknowledgement) – флаг подтверждения полученного сегмента, бит P (Push) – признак немедленной отправки, бит R (Reset) – указание на сброс соединения, бит S (Synchronize) – информация об установлении условных номеров первого байта при инициализации соединения, F (Final) – флаг окончания соединения.
Окно (Window) – содержит количество байтов, которое может принять передающая сторона, считая от последнего подтвержденного байта, указанного в поле
Номер подтверждения, длина 16 бит.
Контрольная сумма (Checksum) – используется для обнаружения ошибок при передаче пакета, длина 16 бит. Вычисляется как сумма всех 2-байтных слов сегмента ТСР и 96-битового псевдо заголовка IP (Адрес источника + Адрес назначения + 00000000 + Протокол + Общая длина пакета).
Указатель важности (Urgent Pointer) – принимается во внимание при установленном флаге U, показывает смещение в байтах относительно начала текущего сегмента, где расположены важные данные.
Опции и Заполнение (Options & Padding) – необязательная часть кратная 8 байтам, может содержать длину опциональных параметров.
В поле данных (Data) размещаются протоколы верхних уровней, которые идентифицируются полем Номером порта.
Для понимания механизма передачи сегментов ниже на рис. 1.40 приведена диаграмма обмена сообщениями между двумя узлами А и Б. Приняты обозначения: F –
установленные Флаги, Sec – Порядковый номер, Ack – Номер подтверждения , L – длина Данных.
Текущий |
Длина |
Следующий |
|
Содержание TCP |
|
Текущий |
Длина |
Следующий |
номер, |
данных, |
номер, |
|
|
|
номер, |
данных, |
Номер, |
Sec |
L |
Sec |
|
|
|
Sec |
L |
Sec |
9053 |
0 |
9054 |
F=S, |
Sec=9053, Ack= 0, |
L=0 |
|
|
|
|
|
|
F=A/S, Sec=9186, Ack=9054, L=0 |
9186 |
0 |
9187 |
||
9054 |
0 |
9054 |
F=A, |
Sec=9054, Ack=9187, |
L=0 |
9187 |
0 |
9187 |
9054 |
241 |
9295 |
F=P/A, Sec=9054, Ack=9187, L=241 |
9187 |
0 |
9187 |
||
9295 |
0 |
9295 |
F=A, |
Sec=9187, Ack=9295, |
L=0 |
9187 |
0 |
9187 |
9295 |
0 |
9295 |
F=P/A, Sec=9187, Ack=9295, L=51 |
9187 |
51 |
9238 |
||
9295 |
0 |
9295 |
F=A, |
Sec=9295, Ack=9238, L=0 |
9238 |
0 |
9238 |
|
9295 |
0 |
9295 |
F=A/F, Sec=9238, Ack=9295, L=0 |
9238 |
0 |
9238 |
||
9295 |
0 |
9295 |
F=A, |
Sec=9295, Ack=9239, L=0 |
9239 |
0 |
9239 |
|
9295 |
0 |
|
F=A/R, Sec=9295, Ack=9239, L=0 |
|
|
|
||
|
|
|
|
|
|
|
|
|
Рис. 1.40. Использование механизма порядковых номеров в TCP
61
