<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>

<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>Re: [e2e] A simple scenario. (Basically the reason for the sliding window thread ; -))</TITLE>
</HEAD>
<BODY>
<DIV id=idOWAReplyText22137 dir=ltr>
<DIV dir=ltr><FONT face="Courier New" size=2>Joe Touch wrote -<BR>&gt;&gt; Are 
you describing a scenario where a TCP-Splitter buffers up 2^32 bytes<BR>&gt;&gt; 
of sender<BR>&gt;&gt; data without delivering any to the receive end-point, then 
goes down, and<BR>&gt;&gt; the end-points continue the connection using the 
wrapped<BR>&gt;&gt; sequence number, which in this case match up just right, so 
that the<BR>&gt;&gt; intervening<BR>&gt;&gt; 2^32 bytes disappear down a black 
hole, without the sender or receive<BR>&gt;&gt; being any 
wiser?<BR>&gt;&gt;<BR>&gt; Yes. The system can wrap without things matching up 
_exactly_, depending<BR>&gt; on how big the CWND is, though, so this isn't as 
absurdly specific as it<BR>&gt; appears at first glance.<BR><BR>I think, this 
scenario will occur if </FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>&nbsp; the TCP-splitters buffer x 
bytes of </FONT><FONT face="Courier New" size=2>undelivered data,</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>&nbsp; the sender cwnd is 
y,</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>&nbsp;&nbsp;x &lt; 2^32 
and&nbsp;</FONT><FONT face="Courier New" size=2>x+y &gt;= 2^32,</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>&nbsp; the splitters go 
down&nbsp;and </FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>&nbsp; packets flow </FONT><FONT 
face="Courier New" size=2>between the sender and receiver over an alternate 
path.</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>In this case, </FONT><FONT 
face="Courier New"><FONT size=2>the receiver rcv.nxt </FONT><FONT size=2>value 
is within the </FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>sender [snd.nxt , snd.nxt + 
cwnd) range </FONT></FONT><FONT face="Courier New" size=2>and hence 
</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>the receiver will acknowledge 
sequence number rcv.nxt and </FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>accept data beyond </FONT><FONT 
face="Courier New" size=2>it; </FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>the sender will gladly accept the 
acknowledgement and </FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>continue sending </FONT><FONT 
face="Courier New" size=2>data.</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>Now, we 
know&nbsp;</FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>&nbsp; y &lt; 
2^30</FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>a constraint required and 
imposed&nbsp;by TCP (rfc 1323</FONT><FONT size=2>).</FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>We can claim </FONT><FONT 
size=2>that a </FONT><FONT size=2>(good) TCP splitter ensures 
that</FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>&nbsp;&nbsp;x &lt; 
2^31</FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>Detlef - this is not 
</FONT></FONT><FONT face="Courier New" size=2>as easy as it might&nbsp;first 
appear, especially</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>since data </FONT><FONT 
face="Courier New" size=2>can get buffered at the </FONT><FONT 
face="Courier New" size=2>sending or </FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>receiving TCP-splitter in a 
two-splitter case,</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>but it can be (is) 
done.</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New"><FONT size=2>Hence, x + y &lt; 2^32 and 
the above </FONT><FONT size=2>scenario will not occur.</FONT></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>The above also requires that 
TCP-splitters use</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>the same </FONT><FONT 
face="Courier New" size=2>ISS (Inital Sequence&nbsp;</FONT><FONT 
face="Courier New" size=2>Number) with the receiver</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>as the one used by the sender. 
</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>A good TCP-splitter </FONT><FONT 
face="Courier New" size=2>should (does).</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>Anil</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>-----------</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>Anil Agarwal</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>ViaSat Inc.</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" 
size=2></FONT>&nbsp;</DIV></DIV>

</BODY>
</HTML>