Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Do not bother to preserve segment boundaries in the tcp readahead queues. * Avoid wasting the tail IOB space for each segments. Instead, pack the newly received data into the tail space of the last IOB. Also, advertise the tail space as a part of the window. * Use IOB chain directly. Eliminate IOB queue overhead. * Allow to accept only a part of a segment. * This change improves the memory efficiency. And probably more importantly, allows less-confusing recv window advertisement behavior. Previously, even when we sdvertise N bytes window, we often couldn't actually accept N bytes. Depending on the segment size, IOB configurations, and the peer tcp, it was causing the poor behavior. Also, the previous code was moving the right edge of the window back and forth too often, even when nothing in the system was competing on the IOBs. Shrinking the window that way is a kinda well known recipe to confuse the peer stack.
- Loading branch information
Showing
7 changed files
with
90 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters