Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.BERKELEY.EDU Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!tcp-ip From: Haas@UTAH-20.ARPA (Walt) Newsgroups: mod.protocols.tcp-ip Subject: SYN with a window size of zero Message-ID: <12175783367.9.HAAS@UTAH-20.ARPA> Date: Thu, 16-Jan-86 17:15:37 EST Article-I.D.: UTAH-20.12175783367.9.HAAS Posted: Thu Jan 16 17:15:37 1986 Date-Received: Sat, 18-Jan-86 00:57:06 EST Sender: dlw@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 23 Approved: tcp-ip@sri-nic.arpa One of our TCP implementations (TOPS-20) opens a TCP connection with a segment that contains the usual SYN and a window size of zero. According to one interpretation of the spec there should be no legal response to such a segment since the normal response is SYN+ACK and the SYN in the response would take up sequence number space, which does not exist according to the sender of the first segment. According to another intepretation, the window size refers to data octets only, and the sequence number space taken by SYNs and FINs shouldn't count. Various implementations handle this in various ways - some apparantly assume that it's silly to send SYN with a window size of zero, and just go ahead and reply with SYN+ACK. One implementation appears to go into a tight loop in this situation. Does anybody have any references that would resolve the apparent ambiguity? It isn't clear to me how to apply the robustness principle to this case - one could imagine that an implementation could have an unusual situation where it needed to open a connection but didn't at the moment have any place to put a reply. Thanks in advance for any helpful comments -- Walt -------