[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dccp] A question about CCID 3
Hi,
I encountered a situation where CCID 3 behaves in a strange way as far
as I understood how it should work. The situation is here:
There is a single half connection between DCCP sender and DCCP receiver
using CCID 3. ECN is not used. Packets are sent in the following way
during the connection:
DCCP sender DCCP receiver
----------- -------------
1. DCCP-Data (seqnum n) ---> lost
2. DCCP-Data (seqnum n+1) --->
3. DCCP-Data (seqnum n+2) --->
4. <--- DCCP_Ack (seqnum p)
5. DCCP-Ack (seqnum n+3) --->
6. <--- DCCP_Ack (seqnum p+1)
1. DCCP sender sends a data packet which is lost.
2. and 3. DCCP receiver receives a packet
(DCCP-Data, DCCP-DataAck or DCCP-Ack)
4. DCCP receiver sends an ACK to the DCCP sender
5. DCCP receiver receives a DCCP-Ack.
* now DCCP receiver detects a new loss event as three packets with
a higher sequence number have reached the destination after the
lost packet (seqnum n).
(RFC 3448 states that:
"The loss of a packet is detected by the arrival of at least three
packets with a higher sequence number than the lost packet.")
6. DCCP receiver sends a DCCP-Ack to the DCCP sender, because a new
loss event was detected.
(RFC 3448 states that:
"A feedback packet should also be sent whenever a
new loss event is detected without waiting for the end of an RTT")
Profile for DCCP Congestion Control ID 3 states about Receive Rate
Option that:
"This option MUST be sent by the data receiver on all required
acknowledgements. Its four data bytes indicate the rate at which
the receiver has received data since it last sent an
acknowledgement, in bytes per second."
and
"The feedback packets from the receiver contain a Receive Rate
option specifying the rate at which data packets arrived at the
receiver since the last feedback packet."
In the example no data packets have been received by the DCCP
receiver since the last sent acknowledgement (seqnum p).
My question is that should the value of Receive Rate Option really
be 0 in the DCCP-Ack (seqnum p+1)? This means practically that
the DCCP sender must stop sending data as a result of a single packet
loss. Or have I misunderstood something?
My second question is that what is included in the packet size in TCP
throughput equation? Is it only the size of user data segment of
DCCP-Data packet or are DCCP and IP packet headers also included in?
And the same question about receive rate calculation in the DCCP
receiver. Are DCCP and IP packet headers included in when calculating
receive rate?
Sampo Luukkainen