On 01/09/16 at 12:51am, Sangwook Bae wrote:
> First of all, the above figure is pcap file which is captured in the sender
> side. That means (or I think), the sender should send the packet for the
> retransmission. However, according to the pcap file, it seems that the
> sender sends retransmission packet later (or after sending the other data
> packet).
Read down... anyway, for later: the right answer is "or after sending
the other data packet" (which, in TCP notations, are segments)
> That's why I was asking about the existence of queuing structure
> (TcpTxBuffer). If there is a queuing structure, the retransmitted packet
> should takes first places in the buffer for the fast retransmission.
Ah! Wait. TcpTxBuffer queues data from application. When TCP sends data,
it is queued in the traffic control layer.
> Here is an example what I think.
> The Tcp-socket-base decides to retransmit the dropped packet when it gets 3
> dupack. Then, it calls SendDataPacket() function. However, the TCPTxBuffer
> already has (or contains) other packets to be sent. In that case, the
> retransmission packet will be queued at the end of the bufffer. Therefore,
> the retransmitted packet will wait to be sent.
s/TcpTxBuffer/[some qdisc in traffic control layer]/g , for the rest
that's ok, and that's how any operating system works, UNLESS it
implements some scheduling technique (retransmission packets have an
higher precedence)
> By the way, what I am trying to do was that, just implement the TCP sender
> and receiver, with limited bandwidth and link delay. Therefore, I limit the
> queue size (specifically, PfifoFastQueueDisc). However, It looks to slow to
> receive the data. So, I am checking the TcpSocket::SndBufSize, RcvBufsize
> as well, but it was not helpful. (I am currently using TCPNewReno as the
> congestion control algorithm)
Who is slow to receive data? Application ? If so, please consider the
retransmissions (as you're already doing), and the time that they need
to arrive correctly to the receiver (we currently don't support SACK,
but it can help a lot in your situation).
Nat