Date: Tue, 30 Jul 2002 15:15:55 -0500 (CDT) From: Mike Silbersack <silby@silby.com> To: freebsd-net@freebsd.org Subject: RFC: Updated window update algorithm Message-ID: <20020730141732.J3793-200000@patrocles.silby.com>
next in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-934478144-1028056781=:3793 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <20020730150959.D6367@patrocles.silby.com> I'd appreciate if the tcp inclined could take a quick look over the attached patch. What it does is implement a simpler algorithm used to determine whether or not to accept window updates. Our existing algorithm (the one in RFC793/1122) had a weakness in that it will ignore window updates piggybacked on retransmitted packets. In a unidirectional transfer situation, this is not a problem. However, in the case of a bidirectional transfer, this could cause retransmission in one direction to stall transmission in the other direction. For more info on this case, see the thread at: http://tcp-impl.grc.nasa.gov/tcp-impl/list/archive/2184.html The algorithm I used in the attached patch is the one created by Alexey Kuznetsov, currently used in Linux 2.4. Any comments (on the algorithm or implementation) would be appreciated. Thanks, Mike "Silby" Silbersack --0-934478144-1028056781=:3793 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="tcpwindowupdate3.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20020730141941.N3793@patrocles.silby.com> Content-Description: Content-Disposition: ATTACHMENT; FILENAME="tcpwindowupdate3.patch" LS0tIC91c3Ivc3JjL3N5cy5vbGQvbmV0aW5ldC90Y3BfaW5wdXQuYwlUdWUg SnVsIDMwIDAwOjQxOjM4IDIwMDINCisrKyB0Y3BfaW5wdXQuYwlUdWUgSnVs IDMwIDE0OjE1OjQwIDIwMDINCkBAIC0xOTM5LDExICsxOTM5LDE1IEBADQog CS8qDQogCSAqIFVwZGF0ZSB3aW5kb3cgaW5mb3JtYXRpb24uDQogCSAqIERv bid0IGxvb2sgYXQgd2luZG93IGlmIG5vIEFDSzogVEFDJ3Mgc2VuZCBnYXJi YWdlIG9uIGZpcnN0IFNZTi4NCisJICogVXBkYXRlIHdpbmRvdyBpZjoNCisJ ICogLSBOZXcgZGF0YSBhY2tlZA0KKwkgKiAtIE5ldyBkYXRhIHNlbnQgdG8g dXMNCisJICogLSBEYXRhIGhhcyBub3QgYWR2YW5jZWQsIGJ1dCBsYXJnZXIg d2luZG93IGlzIHJlcG9ydGVkDQogCSAqLw0KIAlpZiAoKHRoZmxhZ3MgJiBU SF9BQ0spICYmDQogCSAgICAoU0VRX0xUKHRwLT5zbmRfd2wxLCB0aC0+dGhf c2VxKSB8fA0KLQkgICAgKHRwLT5zbmRfd2wxID09IHRoLT50aF9zZXEgJiYg KFNFUV9MVCh0cC0+c25kX3dsMiwgdGgtPnRoX2FjaykgfHwNCi0JICAgICAo dHAtPnNuZF93bDIgPT0gdGgtPnRoX2FjayAmJiB0aXdpbiA+IHRwLT5zbmRf d25kKSkpKSkgew0KKwkgICAgIFNFUV9MVCh0cC0+c25kX3VuYSwgdGgtPnRo X2FjaykgfHwNCisJICAgICAoKHRoLT50aF9zZXEgPT0gdHAtPnNuZF93bDEp ICYmICh0aXdpbiA+IHRwLT5zbmRfd25kKSkpKSB7DQogCQkvKiBrZWVwIHRy YWNrIG9mIHB1cmUgd2luZG93IHVwZGF0ZXMgKi8NCiAJCWlmICh0bGVuID09 IDAgJiYNCiAJCSAgICB0cC0+c25kX3dsMiA9PSB0aC0+dGhfYWNrICYmIHRp d2luID4gdHAtPnNuZF93bmQpDQo= --0-934478144-1028056781=:3793-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020730141732.J3793-200000>