- •7. Управление внешними коммуникациями в ос
- •7.1. Протоколы тср/ip
- •7.1.1. Определение и достоинства протокола tcp/ip
- •7.1.2. Архитектура tcp/ip
- •7.1.3. Соответствие между моделями tcp/ip и iso osi
- •7.2. Протокол ip
- •7.2.1. Структура заголовка ip-пакета
- •7.3. Протокол udp
- •7.4. Протокол tcp
- •7.4.1. Структура tcp-сегмента
- •7.4.2. Этапы tcp-сеанса
- •7.5. Программные средства поддержки сетей
- •7.5.1. Состав программных средств поддержки сетей
- •1. Почтовые ящики Windows
- •2. Именованные каналы Windows
- •3. Удаленные вызовы процедур - rpc
- •7.5.2. Программные средства работы с сокетами
- •7.6. Сетевое программное обеспечение уровня приложений
- •7.6.1. Протокол ftp
- •7.6.2. Протокол smtp
- •Раздел 7
7.3. Протокол udp
Этот протокол обеспечивает логический коммуникационный канал между источником и получателем без предварительного установления связи. Протокол не обеспечивает надежной связи, поэтому приложения сами должны позаботиться об этом.
Из-за минимальной функциональности протокол требует меньших накладных расходов по сравнению с TCP.
Структура заголовка UDP представлена ниже.
0 - 15 |
16 - 31 |
Source port |
Destination Port |
Length |
Checksum |
Data |
Длина дейтаграммы не может быть меньше 8 байтов.
Если контрольная сумма используется, то она вычисляется по следующим полям IP-заголовка:
Protocol;
Source address;
Destination address
Примеры использования протокола UDP:
Синхронизация времени;
Удаленное копирование;
Удаленный вызов процедур.
Протокол используется для обмена данными в тех случаях, когда потеря отдельного сообщения не слишком сильно влияет на работу системы в целом.
7.4. Протокол tcp
7.4.1. Структура tcp-сегмента
ТСР – протокол, поддерживающий надежную передачу данных с предварительным установлением связи между источником и получателем.
ТСР характеризуется следующими особенностями:
Перед фактической передачей данных необходимо установление связи, т. е. запрос и подтверждение на возможность передачи данных. После обмена данными сеанс должен быть явно завершен;
Доставка информации является надежной, т. е. нет дублирования, пропадания и нарушения очередности пакетов.
TCP-канал - это двунаправленный поток данных между соответствующими объектами обмена – источником и получателем. Данные передаются в виде пакетов различной длины, называемых сегментами.
Формат ТСР сегмента представлен ниже.
0 – 3 |
4 - 7 |
8 - 11 |
12 - 15 |
16 - 19 |
20 - 23 |
24 - 27 |
28 – 31 |
Source port |
Destination port |
||||||
Sequence number |
|||||||
Acknowledgement number |
|||||||
Offset |
Reserved |
Flags |
Window |
||||
Checksum |
Urgent pointer |
||||||
Options |
Padding |
||||||
Data |
Формат TCP-сегмента
Положение каждого сегмента в потоке фиксируется порядковым номером (Sequence number). Сегмент также содержит номер подтверждения (Acknowledgement number), определяющий номер первого неподтвержденного байта в потоке.
Поле Window определяет количество байтов, которые получатель готов принять, начиная с байта, номер которого определен как Acknowledgement number.
Поле Offset указывает на начало данных в сегменте. Поле необходимо т.к. заголовок может иметь переменную длину.
Поле Flags содержит 6 управляющих битов:
URG – экстренные данные
ACK – в заголовке есть подтверждение
PSH – немедленная передача данных
RST – уничтожение канала
SYN – управляющее сообщение
FIN – прекращение передачи
Поле Checksum – контрольная сумма
Поле Urgent pointer – указатель на экстренные данные (при установленном флаге URG).
Поле Options – дополнительные параметры.
Поле Padding – выравнивающее до 32 бит поле.