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

4.3. Состояния

Конечные точки DCCP проходят различные состояний в течение срока существования соединения; эти состояния можно разделить на три фазы — организация соединения, обмен данными и завершение соединения. На рисунке показан типовой пример смены состояний для клиента и сервера.

Client                                             Server
------                                             ------
                  (0) No connection
CLOSED                                             LISTEN

                  (1) Initiation
REQUEST      DCCP-Request -->
                             <-- DCCP-Response     RESPOND
PARTOPEN     DCCP-Ack or DCCP-DataAck -->

                  (2) Data transfer
OPEN          <-- DCCP-Data, Ack, DataAck -->      OPEN

                  (3) Termination
                             <-- DCCP-CloseReq     CLOSEREQ
CLOSING      DCCP-Close -->
                                <-- DCCP-Reset     CLOSED
TIMEWAIT
CLOSED

Всего возможно девять состояний, которые перечислены ниже в порядке возрастания. Следовательно, запись state >= CLOSEREQ означает, что соединение находится в состоянии state = CLOSEREQ, state = CLOSING или state = TIMEWAIT. В главе 8 приводится более детальное описание всех состояний.

  • CLOSED
  • Нет соединения.
  • LISTEN
  • Сокеты сервера находятся в пассивном состоянии прослушивания. Состояния LISTEN и CLOSED не связываются с каким-либо конкретным соединением DCCP.
  • REQUEST
  • Сокет клиента переходит в это состояние из состояния CLOSED после передачи пакета DCCP-Request с целью организации соединения.
  • RESPOND
  • Сокет сервера переходит в это состояние из состояния LISTEN после получения от клиента пакета DCCP-Request.
  • PARTOPEN
  • Сокет клиента переходит в это состояние из состояния REQUEST после получения от сервера пакета DCCP-Response. Это состояние является третьим шагом трехэтапного согласования. Клиент может передавать данные приложений из этого состояния, но он должен включать во все такие пакеты номер подтверждения Acknowledgement Number.
  • OPEN
  • Это состояние является центральной частью соединения DCCP. Сокеты клиента и сервера переходят в это состояние из состояний PARTOPEN и RESPOND, соответственно. Иногда мы будет говорить о состояниях SERVER-OPEN и CLIENTOPEN, указывающих на состояние OPEN для клиента и сервера, соответственно.
  • CLOSEREQ
  • Сокет сервера переходит в это состояние из состояния SERVER-OPEN для того, чтобы запросить у клиента завершение соединения и переход в состояние TIMEWAIT.
  • CLOSING
  • Сокеты клиента и сервера переходят в это состояние для завершения соединения.
  • TIMEWAIT
  • Сокет клиента или сервера остается в этом состоянии в течение времени 2MSL (4 минуты) после того, как соединение было разорвано для того, чтобы предотвратить ошибки, связанные с доставкой старых пакетов. Состояние TIMEWAIT устанавливается только на одной стороне (другая сразу же переходит в состояние CLOSED) и сервер может запросить переход клиента в состояние TIMEWAIT, используя для этого пакет типа DCCP-CloseReq.
2007 - 2017 © Русские переводы RFC, IETF, ISOC.