lwIP - A Lightweight TCP/IP stack - Bugs: bug #27315, zero window probe and FIN
You are not allowed to post comments on this tracker with your current authentication level.
bug #27315: zero window probe and FIN
Submitter: | Oleg Tyshev <olegreen> | ||
Submitted: | Tue 25 Aug 2009 11:48:03 AM UTC | ||
Category: | TCP | Severity: | 3 - Normal |
Item Group: | Faulty Behaviour | Status: | Fixed |
Privacy: | Public | Assigned to: | goldsimon |
Open/Closed: | Closed | Planned Release: | None |
lwIP version: | CVS Head |
Jump to the original submission
Wed 21 Oct 2009 03:16:11 PM UTC, comment #7: |
Simon Goldschmidt <goldsimon> |
Wed 21 Oct 2009 11:41:09 AM UTC, comment #6: I think the fix is nearly right, but if the packet at the head of unacked that we steal a byte from has both data and the FIN, we should send the data byte as that comes before the FIN in sequence space. i.e. is_fin should test if there's any data bytes too, rather than just looking at the FIN flag. |
Kieran Mansley <kieranm> |
Fri 16 Oct 2009 09:08:36 PM UTC, comment #5: Fixed by correctly sending FIN segment.
|
Simon Goldschmidt <goldsimon> |
Fri 16 Oct 2009 08:43:17 PM UTC, comment #4: I don't really know the implementation of the zero-window-probe mechanism in lwIP (it's pretty new after all), but what happens if the remote side accepts the FIN we sent? As we still have it in the unsent queue, we would possibly send it again if later the remote side happens to send a window update. I guess that doesn't hurt since it's a retransmission? |
Simon Goldschmidt <goldsimon> |
Fri 16 Oct 2009 05:06:28 PM UTC, comment #3: I suppose that in this case we should send
|
Oleg Tyshev <olegreen> |
Fri 16 Oct 2009 02:42:25 PM UTC, comment #2: What do you suggest, not sending a probe or sending the probe with the FIN flag included?
|
Simon Goldschmidt <goldsimon> |
Tue 25 Aug 2009 12:05:55 PM UTC, comment #1: Thanks for reporting, makes sense and should be easy to fix. |
Kieran Mansley <kieranm> |
Tue 25 Aug 2009 11:48:03 AM UTC, original submission:
In function tcp_zero_window_probe()will be always taken one segment from unacked or unsent queue.
|
Oleg Tyshev <olegreen> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 10 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2009-10-21 | goldsimon | Open/Closed | Open | Closed | |
Status | In Progress | Fixed | |||
2009-10-21 | kieranm | Status | Fixed | In Progress | |
Open/Closed | Closed | Open | |||
2009-10-16 | goldsimon | Open/Closed | Open | Closed | |
Status | In Progress | Fixed | |||
2009-10-16 | goldsimon | Status | None | In Progress | |
Assigned to | None | goldsimon | |||
2009-10-15 | kieranm | Planned Release | 1.4.0 | 1.3.2 | |
2009-08-25 | kieranm | Planned Release | 1.4.0 |
Powered by Savane 3.13-02a9.
Corresponding source code
Yep, I didn't think of that, thanks. Checked in:
is_fin = ((TCPH_FLAGS(seg->tcphdr) & TCP_FIN) != 0) && (seg->len == 0);