RFC: 4340
Оригинал: Datagram Congestion Control Protocol (DCCP)
Категория: Предложенный стандарт
Дата публикации:
Авторы: , ,
Перевод: Николай Малых

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
  • Служат для ресинхронизации порядковых номеров после потери большого числа пакетов.
2007 - 2017 © Русские переводы RFC, IETF, ISOC.