3.2. Участники соединения
Каждое соединение DCCP организуется между двумя хостами, которые мы будем обычно называть DCCP A и DCCP B. Каждое соединение инициируется одним из хостов, мы будем называть этот хост клиентом. Другая сторона на начальном этапе находится в пассивном состоянии и называется сервером. Термин «конечная точка DCCP будет использоваться применительно к любой из двух сторон соединения (клиент и сервер). Термин «процессор DCCP в общем случае обозначает любой хост, от которого может потребоваться обработка заголовков DCCP, т. е. включает конечные точки соединения и промежуточные узлы (middlebox) типа МСЭ или систем трансляции адресов.
Соединения DCCP являются двухсторонними — данные могут передаваться от любой из конечных точек другой точке. Это означает, что данные и подтверждения могут передаваться одновременно в обоих направлениях. Логически, однако, соединение DCCP состоит из двух раздельных «односторонних» соединений, называемых «полусоединениями». Каждое полусоединение включает данные приложения, передаваемые одной конечной точкой и встречный поток подтверждений от другой конечной точки, как показано на рисунке.
+--------+ A-to-B half-connection: +--------+ | | --> application data --> | | | | <-- acknowledgements <-- | | | DCCP A | | DCCP B | | | B-to-A half-connection: | | | | <-- application data <-- | | +--------+ --> acknowledgements --> +--------+
Хотя логически полусоединения различаются, на практике они перекрываются — пакет DCCP-DataAck, например, содержит данные приложения, относящиеся к одному полусоединению, и подтверждение, относящееся к другому.
В контексте одного полусоединения термины "HC-Sender" и "HC-Receiver" обозначают конечные точки, передающие прикладные данные и подтверждения, соответственно. Например, DCCP A будет HC-Sender, а DCCP B — HC-Receiver для полусоединения от A к B.