Ethereal-users: Re: [Ethereal-users] Help Analysing Transaction

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Jack Jackson <jack@xxxxxxxxxxxxxxx>
Date: Mon, 24 Oct 2005 18:03:24 -0700
At 05:43 PM 10/24/2005, ronnie sahlberg wrote:


On 10/25/05, Jack Jackson <jack@xxxxxxxxxxxxxxx> wrote:

Likewise I have never seen data sent
with SYN, which is also legal.


No this is not legal.   TTCP tried to experiment long time ago with this in order to  reduce the cost of latency for small shortlived transactions but issues were found with this approach (data inside the syn segment) which essentially killed TTCP off.

In TCP it is not legal to transfer data in the SYN segment.

Perhaps it has changed, but RFC 793 clearly allows data in SYN segments.

From Section 3.3

"For sequence number purposes, the SYN is considered to occur before the first actual data octet of the segment in which it occurs, while the FIN is considered  to occur after the last actual data octet in a segment in which it occurs.  The segment length (SEG.LEN) includes both data and sequence space occupying controls."

From Section 3.4

"Several examples of connection initiation follow.  Although these examples do not show connection synchronization using data-carrying segments, this is perfectly legitimate, so long as the receiving TCP doesn't deliver the data to the user until it is clear the data is valid (i.e., the data must be buffered at the receiver until the connection reaches the ESTABLISHED state)."

It is also discussed as legal in Douglas E. Comer's "Internetworking with TCP/IP Vol 1" (13.24)