6.5. Примеры согласования признаков
На рисунке показаны три примера согласования признаков, связанных с сервером. Два первых примера используются для согласования признака Congestion Control ID, а последний используется для согласования признака Ack Ratio.
Client Server ------ ------ 1. Change R(CCID, 2 3 1) --> ("2 3 1" is client's preference list) 2. <-- Confirm L(CCID, 3, 3 2 1) (3 is the negotiated value; "3 2 1" is server's pref list) * agreement that CCID/Server = 3 * 1. XXX <-- Change L(CCID, 3 2 1) 2. Retransmission: <-- Change L(CCID, 3 2 1) 3. Confirm R(CCID, 3, 2 3 1) --> * agreement that CCID/Server = 3 * 1. <-- Change L(Ack Ratio, 3) 2. Confirm R(Ack Ratio, 3) --> * agreement that Ack Ratio/Server = 3 *
Следующий пример (см. рисунок) показывает одновременное согласование признаков.
Client Server ------ ------ 1a. Change R(CCID, 2 3 1) --> b. <-- Change L(CCID, 3 2 1) 2a. <-- Confirm L(CCID, 3, 3 2 1) b. Confirm R(CCID, 3, 2 3 1) --> * agreement that CCID/Server = 3 *
Ниже описано кодирование байтов для некоторых опций Change и Confirm. Все представленные опции передаются конечной точкой DCCP A.
- Change L(CCID, 2 3) = 32,5,1,2,3
- DCCP B следует изменить значение CCID/A (признак 1, правило приоритета сервера); предпочитаемые DCCP A значения признака — 2 и 3, в указанном порядке.
- Change L(Sequence Window, 1024) = 32,9,3,0,0,0,0,4,0
- DCCP B следует изменить значение Sequence Window/A (признак 3, без согласования), установив для него 6-байтовую строку 0,0,0,0,4,0 (1024).
- Confirm L(CCID, 2, 2 3) = 33,6,1,2,2,3
- DCCP A меняет значение CCID/A на 2; предпочтительными значениями являются 2 и 3 в указанном порядке.
- Empty Confirm L(126) = 33,3,126
- DCCP A не поддерживает признак с номером 126 или DCCP B предлагает некорректное значение для признака 126/A.
- Change R(CCID, 3 2) = 34,5,1,3,2
- DCCP B следует изменить значение CCID/B; предпочитаемые DCCP A значения — 3 и 2 в указанном порядке.
- Confirm R(CCID, 2, 3 2) = 35,6,1,2,3,2
- DCCP A меняет значение CCID/B на 2; предпочтительными значениями являются 3 и 2 в указанном порядке.
- Confirm R(Sequence Window, 1024) = 35,9,3,0,0,0,0,4,0
- DCCP A меняет значение Sequence Window/B на 6-байтовую строку 0,0,0,0,4,0 (1024).
- Empty Confirm R(126) = 35,3,126
- DCCP A не поддерживает признак с номером 126 или предложенное DCCP B значение признака 126/B некорректно.