Стек протоколов Tcp/ip,
Межсетевой протокол IP
Межсетевой протокол IP
Заголовок IP сегмента
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Поля ip-заголовка
Дополнительные данные IP-заголовка
Протокол управления передачей TCP
Протокол управления передачей TCP
Заголовок TCP пакета
Поля tcp-заголовка
Поля tcp-заголовка
Поля tcp-заголовка
Поля tcp-заголовка
Поля tcp-заголовка
Поля tcp-заголовка
Поля tcp-заголовка
Номер порта
Идентификация сервиса
Номера портов некоторых сервисов
Этапы TCP-взаимодействия
Установление логического соединения
Обмен данными
Закрытие соединения
Управление скоростью передачи
Протокол дейтаграмм пользователя UDP
Протокол дейтаграмм пользователя UDP
Формат заголовка UDP-пакета
Поля udp-заголовка
Структура ARP заголовка
Поля ARP заголовка
Алгоритм функционирования ARP
1.29M
Category: internetinternet

Стек протоколов Tcp/ip. Тема № 2

1. Стек протоколов Tcp/ip,

Тема № 2
1

2.

• Межсетевой протокол IP и формат
пакета
• Протокол управления передачей TCPи
формат пакета
• Алгоритм работы Tcp протокола
• Udp протокол и формат пакета
• Arp протокол. Формат пакета и алгоритм
функционирования
2

3. Межсетевой протокол IP

• реализует обмен информации пакетами
(IP-сегментами, максимальный размер 65535 байт);
• является протоколом взаимодействия без
установления логического соединения;
• для адресации узлов сети используется
адрес длиной 4 байта;
• обеспечивает в случае необходимости
фрагментацию IP-сегментов;
3

4. Межсетевой протокол IP

• IP-сегменты имеют конечное время
жизни в сети;
• не гарантирует надежность доставки IPсегментов адресату;
• не имеет средств управления
интенсивностью передачи IP-сегментов
посылающей стороной
• не гарантирует правильную
последовательность IP-сегментов на
принимающей стороне.
4

5. Заголовок IP сегмента

0
3
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 пакета

0
3
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-пакета

0
15
31
Порт источника
Порт приемника
Длина
Контрольная сумма
36

37. Поля udp-заголовка

• Порт источника и порт приемника - 16-битовые
поля, содержащие номера портов, соответственно,
источника и адресата UDP-пакета;
• Длина - 16-битовое поле, содержащее длину (в
байтах) всего UDP-пакета, включая заголовок и
данные;
• Контрольная сумма - 16-битовое поле,
содержащее Internet-контрольную сумму,
подсчитанную для UDP-заголовка, данных пакета
и псевдозаголовка.
37

38. Структура ARP заголовка

0
7
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
English     Русский Rules