Книга: UNIX: разработка сетевых приложений
2.3. UDP: протокол пользовательских дейтаграмм
2.3. UDP: протокол пользовательских дейтаграмм
UDP — это простой протокол транспортного уровня. Он описывается в документе RFC 768 [93]. Приложение записывает в сокет UDP дейтаграмму (datagram), которая инкапсулируется (encapsulate) или, иначе говоря, упаковывается либо в дейтаграмму IPv4, либо в дейтаграмму IPv6, и затем посылается к пункту назначения. При этом не гарантируется, что дейтаграмма UDP когда-нибудь дойдет до указанного пункта назначения.
Проблема, с которой мы сталкиваемся в процессе сетевого программирования с использованием UDP, заключается в его недостаточной надежности. Если мы хотим быть уверены в том, что дейтаграмма дошла до места назначения, мы должны встроить в наше приложение множество функций: подтверждение приема, тайм-ауты, повторные передачи и т.п.
Каждая дейтаграмма UDP имеет конкретную длину, и мы можем рассматривать дейтаграмму как запись (record). Если дейтаграмма корректно доходит до места назначения (то есть пакет приходит без ошибки контрольной суммы), длина дейтаграммы передается принимающему приложению. Мы уже отмечали, что TCP является потоковым (byte-stream) протоколом, без каких бы то ни было границ записей (см. раздел 1.2), что отличает его от UDP.
Мы также отметили, что UDP предоставляет сервис, не ориентированный на установление соединения (connectionless), поскольку нет необходимости в установлении долгосрочной связи между клиентом и сервером UDP. Например, клиент UDP может создать сокет и послать дейтаграмму данному серверу, а затем срезу же послать через тот же сокет дейтаграмму другому серверу. Аналогично, сервер UDP может получить пять дейтаграмм подряд через один и тот же сокет UDP от пяти различных клиентов.
- 2.1. Введение
- 2.2. Обзор протоколов TCP/IP
- 2.3. UDP: протокол пользовательских дейтаграмм
- 2.4. TCP: протокол контроля передачи
- 2.5. SCRIPT: протокол управления передачей потоков
- 2.6. Установление и завершение соединения TCP
- 2.7. Состояние TIME_WAIT
- 2.8. Установление и завершение ассоциации SCRIPT
- 2.9. Номера портов
- 2.10. Номера портов TCP и параллельные серверы
- 2.11. Размеры буфера и ограничения
- 2.12. Стандартные службы Интернета
- 2.13. Использование протоколов типичными приложениями Интернета
- 2.14. Резюме
- Упражнения
- Расширенные возможности указания пользовательских планов
- Улучшенный протокол локальных соединений (XNET)
- UDP characteristics
- UDP headers
- UDP connections
- UDP matches
- 3.5 Проблемы доступа при использовании нескольких протоколов
- 4.6 Протокол Fibre Channel
- 5.8 Протокол NDMP
- Еще о создании пользовательских меню
- Протоколы модемной связи
- 5 Текстовое представление данных: ясные протоколы лежат в основе хорошей практики