Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стандартные стеки протоколов.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
281.6 Кб
Скачать

Протоколы транспортного уровня

User Datagram Protocol (UDP)

UDP - один из двух протоколов транспортного уровня, используемых в стеке протоколов TCP/IP. UDP позволяет прикладной программе передавать свои сообщения по сети с минимальными издержками, связанными с преобразованием протоколов уровня приложения в протокол IP. Однако при этом прикладная программа сама должна обеспечивать подтверждение того, что сообщение доставлено по месту назначения. Заголовок UDP-дейтаграммы (сообщения) имеет вид, показанный на рис. 4.

Рис. 4. Структура заголовка UDP-сообщения

Порты в заголовке определяют протокол UDP как мультиплексор, который позволяет собирать сообщения от приложений и отправлять из на уровень протоколов. При этом приложение использует определенный порт .Взаимодействующие через сеть приложения могут использовать разные порты, что и отражает заголовок пакета. Всего можно определить 216 разных портов. Первые 256 портов закреплены за так называемыми "well known services (WKS)". Частичный перечень этих портов и соответствующих им сервисов приведен в таблице 1.

Таблица 1. Стандартные сетевые сервисы и соответствующие им порты

Протокол

Полное наименование протокола

Номер порта

IP

Internet Protocol

0

ICMP

Internet Control Message Protocol

1

IGMP

Internet Group Management

2

GGP

Gateway-Gateway Protocol

3

IP-ENCAP

IP Encapsulated in IP

4

ST

ST Datagram Mode

5

TCP

Transmission Control Protocol

6

EGP

Exteriot Gateway Protocol

8

UDP

User Datagram Protocol

17

HMP

Host Monitoring Protocol

20

XNS-IDP

Xerox NS IDP

22

RDP

Reliable Datagram Protocol

27

ISO-TP4

ISO Transport Protocol class 4

29

XTP

eXpress Transfer Protocol

36

IDPR-CMTP

IDPR Control Message Transport

39

RSVP

Resource ReSerVation Protocol

46

VMTP

Versatile Message Transport

81

OSPFIGP

Open Shortest Path First IGP

89

ENCAP

Yet Another IP Encapsulation

98

Поле Length определяет общую длину сообщения. Поле Checksum служит для контроля целостности данных. Приложение, которое использует протокол UDP, должно поддерживать целостность данных, анализируя поля Checksum и Length. Кроме этого, при обмене данными по UDP прикладная программа сама должна заботиться о контроле получения данных адресатом. Обычно это достигается обменом подтверждениями о доставке между прикладными программами.

Наиболее известными сервисами, основанными на UDP, являются служба доменных имен BIND и распределенная файловая система NFS.

Transfer Control Protocol (TCP)

В том случае, когда контроль качества передачи данных по сети имеет особое значение для приложения, используется протокол TCP. Этот протокол также называют надежным, ориентированным на соединение, потокоориентированным протоколом. Рассмотрим формат передаваемой по сети дейтаграммы (рис. 5).

Рис. 5. Структура пакета TCP

Согласно этой структуре в TCP, как и в UDP, используются порты. В поле Sequence Number определен номер пакета в последовательности пакетов, которая составляет сообщение, затем идет поле подтверждения Asknowledgment Number и другая управляющая информация.

Надежность TCP обеспечивается тем, что источник данных повторяет их передачу, если только не получит в определенный промежуток времени от адресата подтверждение об их успешном получении. Этот механизм называется Positive Asknowledgement with Re-transmission (PAR). В заголовке TCP предусмотрено поле контрольной суммы. Если при пересылке данные повреждены, то по контрольной сумме модуль, вычленяющий TCP-сегме7ты из пакетов IP, уничтожает поврежденный пакет (сообщение источнику не передается). Если же данные не были повреждены, то они пропускаются на сборку сообщения приложения, а в адрес источника отправляется подтверждение.

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

  • источник устанавливает соединение с получателем, посылая ему пакет с флагом "синхронизации последовательности номеров" (Synchronize Sequence Numbers - SYN). Номер в последовательности определяет номер пакета в сообщении приложения. Это не обязательно должен быть 0 или 1, но все остальные номера будут использовать его в качестве базы, что позволит собрать пакеты в правильном порядке;

  • получатель отвечает номером в поле подтверждения получения SYN, который соответствует установленному источником номеру. Кроме того, в поле "Номер в последовательности" может также сообщаться номер, который запрашивался источником;

  • источник подтверждает, что принял сегмент получателя и отправляет первую порцию данных.

После установки соединения источник посылает данные получателю и ждет от него подтверждений об из получении, затем снова посылает данные и т.д., пока сообщение не закончится. Заканчивается сообщение, когда в поле флагов выставляется бит FIN, что означает "больше нет данных".

Потоковый характер протокола определяется тем, что SYN определяет стартовый номер для отсчета переданных байтов, а не пакетов. Это значит, что если SYN был установлен в 0 и было передано 200 байтов, то номер, установленный в следующем пакете, будет равен 201, а не 2.

Потоковый характер протокола и требование подтверждения получения данных порождают проблему скорости передачи данных. Для ее решения используется поле Window (окно). Идея применения "окна" достаточно проста: передавать данные, не дожидаясь подтверждения об их получении. Это значит, что источник передает некоторое количество данных, равное Window, без ожидания подтверждения об их приеме, и только после этого останавливает передачу и ждет подтверждения. Если он получит подтверждение только на часть переданных данных, то начнет передачу новой порции с номера, следующего за подтвержденным.

В заключение приведем таблицу, содержащую сведения о соответствии прикладных протоколов и назначаемым им портам. В таблице отмечается также, какой из транспортных протоколов при этом используется.

Таблица 2. Прикладные протоколы и соответствующие им порты

Протокол

Порт

Транспорт

Комментарий

tcpmux

1

tcp

TCP port service multiplexer

ftp

21

tcp

File Transfer Protocol

22

Unassigned (номер не занят)

telnet

23

tcp

Протокол удаленного терминала

24

Private (номер зарезервирован)

smtp

25

tcp

Simple Mail Transfer Protocol (электронная почта)

26

Unassigned

time

37

tcp

Timeserver

37

udp

rip

39

udp

Routing Information Protocol (протокол маршрутизации)

whois

43

tcp

Nicname (определение соответствия сетевого имени определенному IP-адресу)

domain

53

tcp

Domain Name Server (сервер доменных имен)

53

udp

bootps

67

tcp

BOOTP server

67

udp

gopher

70

tcp

сеть Gopher

70

udp

finger

79

tcp

 

www или http

80

tcp

Протокол передачи гипертекстовых документов

80

udp