|
From: | Oleg Tyshev |
Subject: | [lwip-devel] [bug #21428] Retransmit implementation |
Date: | Thu, 25 Oct 2007 14:36:42 +0000 |
User-agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8 |
URL: <http://savannah.nongnu.org/bugs/?21428> Summary: Retransmit implementation Project: lwIP - A Lightweight TCP/IP stack Submitted by: olegreen Submitted on: Thursday 10/25/2007 at 14:36 Category: TCP Severity: 3 - Normal Item Group: Change Request Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Planned Release: _______________________________________________________ Details: LWIP TCP stack has two send queues: unsent and unacked. At first segments inserted into unsent queue and after send they will be moved to unacked queue. There is two possibility to retransmit: 1) fast retransmit 2) timeout retransmit In case fast retransmit would be called function tcp_rexmit() and one segment from unacked queue will be moved to the head of the unsent queue. In case timeout retransmit would be called function tcp_rexmit_rto() and all segments from unacked queue will be moved to the head of the unsent queue. I try to illustrate problem: unacked unsent 1 2 3 4 5 6 1 2 3 4 5 6 packet 1 lost fast retransmit 2 3 4 1 5 6 2 3 4 1 5 6 packet 1 lost again fast retransmit instead of packet 1 will be sent packet 2 3 4 1 2 5 6 3 4 1 2 5 6 To solve this problem unacked queue should be kept always sorted. _______________________________________________________ Reply to this item at: <http://savannah.nongnu.org/bugs/?21428> _______________________________________________ Message sent via/by Savannah http://savannah.nongnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |