Similar presentations:
Стек протоколов Tcp/ip. Тема № 2
1. Стек протоколов Tcp/ip,
Тема № 21
2.
• Межсетевой протокол IP и форматпакета
• Протокол управления передачей TCPи
формат пакета
• Алгоритм работы Tcp протокола
• Udp протокол и формат пакета
• Arp протокол. Формат пакета и алгоритм
функционирования
2
3. Межсетевой протокол IP
• реализует обмен информации пакетами(IP-сегментами, максимальный размер 65535 байт);
• является протоколом взаимодействия без
установления логического соединения;
• для адресации узлов сети используется
адрес длиной 4 байта;
• обеспечивает в случае необходимости
фрагментацию IP-сегментов;
3
4. Межсетевой протокол IP
• IP-сегменты имеют конечное времяжизни в сети;
• не гарантирует надежность доставки IPсегментов адресату;
• не имеет средств управления
интенсивностью передачи IP-сегментов
посылающей стороной
• не гарантирует правильную
последовательность IP-сегментов на
принимающей стороне.
4
5. Заголовок IP сегмента
03
7
Версия Длина
заг-ка
15
18
Тип
обслуживания
31
Длина сегмента
DM
Идентификатор
23
Смещение фрагмента
F F
Время
жизни
Транспорт
Контрольная сумма
заголовка
Адрес источника
Адрес приемника
Дополнительные
данные заголовка
Данные
выравнивания
5
6. Поля ip-заголовка
• Версия - 4-хбитовое поле, содержащееномер версии протокола IP (номер
текущей версии равен 4);
• Длина заголовка - 4-хбитовое поле,
содержащее длину заголовка IP-сегмента
в 32-битных словах. Минимальная (и
типичная) длина заголовка - пять слов.
6
7. Поля ip-заголовка
• Тип обслуживания - байт, содержащий наборкритериев, определяющих тип обслуживания IPсегментов:
– биты 0...2 - приоритет данного IP-сегмента;
– бит 3 - требование ко времени задержки передачи
(0 - нормальная, 1 - низкая задержка);
– бит 4 - требование к пропускной способности
маршрута (0 - низкая, 1 - высокая пропускная
способность);
– бит 5 - требование к надежности передачи
(0 -нормальная, 1 - высокая надежность);
– биты 6...7 - зарезервированы.
7
8. Поля ip-заголовка
• Длина сегмента - двухбайтовое поле, содержащеедлину (в байтах) всего IP-сегмента, включая длину
заголовка.
- Максимальная длина IP-сегмента (включая
заголовок) - 65535 байт.
- Минимальная длинна 576 байт (512 байт данных).
Допустимая длина IP-сегмента связана с максимальной
длиной кадра нижележащего сетевого уровня
8
9. Поля ip-заголовка
• Идентификатор - двухбайтовое поле,содержащее уникальный идентификатор IPсегмента, присваиваемый ему источником. Это
поле используется для распознавания
фрагментов одного IP-сегмента.
• DF, MF - биты, используемые при обработке
фрагментированных IP-сегментов.
– Если DF установлен в 1, то это означает, что IPсегмент не может быть разбит на фрагменты ни при
каких условиях.
– Бит MF указывает, является (MF=0) или нет (MF=1)
данный IP-"подсегмент" последним в цепочке IP"подсегментов".
9
10. Поля ip-заголовка
• Смещение фрагмента - 13-битное поле,используемое только в IP-сегменте, являющемся
фрагментом. Это поле содержит смещение
данных в IP-фрагменте, по отношению к началу
данных исходного IP-сегмента. Смещение
измеряется в восьмибайтных единицах.
10
11. Поля ip-заголовка
• Время жизни (TTL - Time To Live) однобайтовое поле, заполняемое создающимIP-сегмент узлом сети количеством единиц
времени жизни IP-сегмента в сети. Каждый
транзитный узел сети, через который проходит
IP-сегмент, уменьшает содержимое этого поля
по крайней мере на 1. На практике, время
жизни - это максимальное количество узлов,
которое может пройти до своего уничтожения
IP-сегмент.
11
12. Поля ip-заголовка
• Транспорт - поле размером в байт, содержащееидентификатор протокола более высокого (обычно,
транспортного) уровня, для которого предназначены
данные IP-сегмента.
– 1 ICMP Межсетевой протокол управляющих сообщений
– 2 IGMP Межсетевой протокол группового управления
– 6 TCP Протокол управления передачи
– 8 EGP Протокол "внешних" шлюзов
– 17 UDP Протокол дейтаграмм пользователя
– 89 OSPF Протокол "кратчайший путь первым"
12
13. Поля ip-заголовка
• Контрольная сумма заголовка - двухбайтовоеполе, содержащее контрольную сумму
заголовка IP-сегмента (не данных)
Пересчитывается на каждом узле, потому что
изменяется поле TTL
Во всех протоколах, входящих в архитектуру
TCP/IP, используется так называемая Internetконтрольная сумма, которая представляет
собой дополнение 16-битной суммы всех 16битных слов контролируемой информации
13
14. Поля ip-заголовка
• Адрес источника и адрес приемника четырехбайтовые IP-адреса узлов сети.• Дополнительные данные заголовка последовательность полей произвольной
длины, описывающих необязательные
данные заголовка.
• Данные выравнивания - не имеющие
смысла данные, включаемые в заголовок
только для выравнивания его длины до
границы четырехбайтового слова.
14
15. Дополнительные данные IP-заголовка
Дополнительные данные IPзаголовка• Предписываемый маршрут
• Пройденный маршрут
• Временные метки
• Секретность
• Флаг окончания
• Определение максимального MTU
15
16. Протокол управления передачей TCP
• реализует взаимодействие в режиме сустановлением логического
(виртуального) соединения;
• обеспечивает двунаправленную
дуплексную связь;
• организует потоковый (с точки зрения
пользователя) тип передачи данных;
• дает возможность пересылки части
данных, как "экстренных";
16
17. Протокол управления передачей TCP
• для идентификации партнеров повзаимодействию на транспортном уровне
использует 16-битовые "номера портов";
• реализует принцип "скользящего окна"
для повышения скорости передачи;
• поддерживает ряд механизмов для
обеспечения надежной передачи данных.
17
18. Заголовок TCP пакета
03
9
15
Порт
источника
23
31
Порт
приемника
Номер
в последовательности
Номер
подтверждения
Смещение
данных
Зарезер- U A P R S F
вированно R C S S Y I
Размер окна
G KH TN N
Контрольная сумма
Дополнительные
данные заголовка
Указатель
Данные
выравнивания
18
19. Поля tcp-заголовка
• Порт источника и порт приемника - 6-битовыеполя, содержащие номера портов,
соответственно, источника и адресата TCPпакета.
• Номер в последовательности - 32-битовое поле,
содержимое которого определяет (косвенно)
положение данных TCP-пакета внутри
исходящего потока данных, существующего в
рамках текущего логического соединения
19
20. Поля tcp-заголовка
• Номер подтверждения - 32-битовое поле,содержимое которого определяет (косвенно)
количество принятых данных из входящего
потока;
• Смещение данных - четырехбитовое поле,
содержащее длину заголовка TCP-пакета в 32битовых словах и используемое для
определения начала расположения данных в
TCP-пакете.
20
21. Поля tcp-заголовка
• Флаг URG - TCP-пакет содержит важные(urgent) данные;
• Флаг ACK - TCP-пакет содержит в поле "номер
подтверждения" верные данные.
• Флаг PSH - данные содержащиеся в TCPпакете должны быть немедленно переданы
прикладной программе, для которой они
адресованы. Подтверждение для TCP-пакета,
содержащего единичное значение во флаге
PSH, означает, что и все предыдущие TCPпакеты достигли адресата.
21
22. Поля tcp-заголовка
• Флаг RST - ответ на получение неверногоTCP-пакета. Также может означать запрос на
переустановление логического соединения.
• Флаг SYN - TCP-пакет представляет собой
запрос на установление логического
соединения. Получение пакета с
установленным флагом SYN должно быть
подтверждено принимающей стороной.
• Флаг FIN - TCP-пакет представляет собой
запрос на закрытие логического соединения и
является признаком конца потока данных,
передаваемых в этом направлении.
22
23. Поля tcp-заголовка
• Размер окна - 16-битовое поле,содержащее количество байт
информации, которое может принять в
свои внутренние буфера TCP-модуль,
отправляющий партнеру данный TCPпакет:
– 0 - полностью остановит передачу данных;
– Максимальный размер окна зависит от
реализации (типичное значение
максимального размера окна - 4096 байт).
23
24. Поля tcp-заголовка
• Контрольная сумма – 16-битовое поле,содержащее Internet-контрольную сумму,
подсчитанную для TCP-заголовка, данных
пакета и псевдозаголовка. Псевдозаголовок
включает в себя ряд полей IP-заголовка:
– IP-адрес источника;
– IP-адрес приемника;
– Транспорт;
– Длина IP-сегмента.
24
25. Поля tcp-заголовка
• Указатель - 16-битовое поле, содержащееуказатель (в виде смещения) на первый байт в
теле TCP-пакета, начинающий
последовательность важных (urgent) данных;
• Дополнительные данные заголовка последовательность полей произвольной
длины, описывающих необязательные данные
заголовка.
25
26. Номер порта
Номера портов играют роль адресовтранспортного уровня, идентифицируя на
конкретных узлах сети потребителей
транспортных услуг, предоставляемых как
протоколом TCP, так и протоколом UDP.
При этом протоколы TCP и UDP имеют свои
собственные адресные пространства
26
27. Идентификация сервиса
Взаимодействие прикладных программ,использующих транспортные услуги
протокола TCP (или UDP), строится согласно
модели клиент-сервер. Связь программыклиента и сервера идентифицируется пятеркой:
– используемый транспортный протокол (TCP или
UDP);
– IP-адрес сервера;
– номер порта сервера;
– IP-адрес клиента;
– номер порта клиент
27
28. Номера портов некоторых сервисов
– ftp-data 20– ftp
21
– telnet 23
– Smtp 25
– Time 37
– Time 37
– Finger 79
– Who
513
– Talk
517
– Route 520
– Xserver 6000
TCP
TCP
TCP
TCP
TCP
UDP
TCP
UDP
UDP
UDP
TCP
28
29. Этапы TCP-взаимодействия
Взаимодействие партнеров сиспользованием протокола TCP строится
в три этапа:
– установление логического соединения;
– обмен данными;
– закрытие соединения.
29
30. Установление логического соединения
№впоследовательности
1000
№
подтверждения
Флаги
SYN
Длина данных
0
5000
1001
SYN, ACK
0
А
1001
5001
В
ACK
0
30
31. Обмен данными
№впоследовательности
1001
№
подтверждения
5001
Флаги
ACK
Длина данных
50
5001
1051
ACK
150
А
1051
В
5151
ACK
0
31
32. Закрытие соединения
№впоследовательности
1051
5201
5201
№
подтверждения
ACK, FIN
1052
Флаги
0
ACK
Длина данных
5201
0
1052
ACK
1052
40
5241
А
ACK
В
0
5241
1052
ACK, FIN
0
1052
5242
ACK
0
32
33. Управление скоростью передачи
Необходимо, когда приемник не успеваетпринимать и обрабатывать поступающие
данные.
При заполнении входного буфера приемник
отправляет пакет, с установленным полем
window =0
При освобождении буфера на половину,
отправляется новое значение window.
33
34. Протокол дейтаграмм пользователя UDP
• реализует взаимодействие в режиме безустановлением логического (виртуального)
соединения;
• организует поблочный (дейтаграммный,
пакетный) тип передачи данных;
• для идентификации партнеров по
взаимодействию на транспортном уровне
использует 16-битовые "номера портов";
• не гарантирует надежной передачи данных
(возможна как потеря UDP-пакетов, так и их
дублирование);
34
35. Протокол дейтаграмм пользователя UDP
• не имеет средств уведомления источника UDPпакета о правильности/ошибочности в егоприеме адресатом;
• не обеспечивает правильный порядок доставки
UDP-пакетов от источника к приемнику;
• может гарантировать целостность данных в
UDP-пакете за счет использования
контрольной суммы;
• очень прост (особенно, по сравнению с
протоколом TCP).
35
36. Формат заголовка UDP-пакета
015
31
Порт источника
Порт приемника
Длина
Контрольная сумма
36
37. Поля udp-заголовка
• Порт источника и порт приемника - 16-битовыеполя, содержащие номера портов, соответственно,
источника и адресата UDP-пакета;
• Длина - 16-битовое поле, содержащее длину (в
байтах) всего UDP-пакета, включая заголовок и
данные;
• Контрольная сумма - 16-битовое поле,
содержащее Internet-контрольную сумму,
подсчитанную для UDP-заголовка, данных пакета
и псевдозаголовка.
37
38. Структура ARP заголовка
07
15
Hardware
Длина
HW-адреса
Длина
адреса
31
Идентификатор
протокола
Операция
Ethernet-адрес источника
(байты 0...3)
Ethernet-адрес источника
(байты 4...5)
IP-адрес источника
(байты 2...3)
IP-адрес источника
(байты 0...1)
Ethernet-адрес приемника
(байты 0...1)
Ethernet-адрес приемника (байты 2...5)
IP-адрес приемника (байты 0...3)
38
39. Поля ARP заголовка
• Hardware - содержит идентификатор типаадреса на сетевом уровне (в нашем случае Ethernet).
• Идентификатор протокола - определяет
протокол межсетевого уровня (в нашем случае
- IP).
• Длина HW-адреса – длинна поля аппаратного
адреса ( в случае Ethernet – 6);
• Длина адреса – длинна межсетевого адреса (в
случае ip - 4).
• Операция - содержит идентификатор типа
ARP-сегмента (запрос или ответ).
39
40. Алгоритм функционирования ARP
МАС источникаMACA
Ip источника
Запрос на
передачу
пакета до IPB
IPA
MAC
приемника
FF.FF.FF
Ip приемника
IPB
MACA
IPA
MACB
IPB
А
Пакет от
источника A,
к приемнику
B
В
40