4.1. Типы пакетов
Для реализации своих функций протокол DCCP использует 10 типов пакетов. Например, каждая попытка организации нового соединения начинается с передачи клиентом пакета DCCP-Request. Пакет DCCP-Request напоминает пакеты TCP SYN, по, поскольку DCCP-Request является специальным типом пакетов, не существует возможности передачи неожиданной комбинации флагов типа SYN+FIN+ACK+RST в TCP.
Обычно в течение срока жизни соединения используется восемь типов пакетов, как показано на рисунке. Отметим, что трехэтапное согласование происходит как при организации, так и при разрыве соединения.
Client Server ------ ------ (1) Initiation DCCP-Request --> <-- DCCP-Response DCCP-Ack --> (2) Data transfer DCCP-Data, DCCP-Ack, DCCP-DataAck --> <-- DCCP-Data, DCCP-Ack, DCCP-DataAck (3) Termination <-- DCCP-CloseReq DCCP-Close --> <-- DCCP-Reset
Два оставшихся типа пакетов применяются для ресинхронизации после случаев потери большого числа пакетов.
Каждый пакет DCCP начинается с базового заголовка фиксированного размера. Отдельные типы пакетов включают дополнительные поля заголовка с фиксированными размерами. Например, пакеты DCCP-Acks включают номер подтверждения. Опции DCCP и данные приложения следуют после заголовка фиксированного размера.
Ниже перечислены типы пакетов:
- DCCP-Request
- Передается клиентом для организации соединения (первый шаг трехэтапного согласования).
- DCCP-Response
- Передается сервером в ответ на пакет DCCP-Request (второй шаг трехэтапного согласования).
- DCCP-Data
- Служит для передачи данных приложения.
- DCCP-Ack
- Используется для передачи только подтверждения (без данных).
- DCCP-DataAck
- используется для передачи данных приложения вместе с прицепленным подтверждением.
- DCCP-CloseReq
- Передается сервером в качестве запроса к клиенту на разрыв соединения.
- DCCP-Close
- Используется клиентом для завершения соединения; в ответ передается пакет DCCP-Reset.
- DCCP-Reset
- Используется для завершения соединения (нормального или аварийного).
- DCCP-Sync, DCCP-SyncAck
- Служат для ресинхронизации порядковых номеров после потери большого числа пакетов.