This is a bug in RFC793 that has been fixed in more recent rfcs.
One reason why one can not send data in the SYN segment is that
at this stage the window is not yet defined.
Since we do not have a window (yet) we are not allowed to send data.
This is one of the reasons why TTCP did not and could not work but this was not known to be a problem when rfc793 was written.
On 10/25/05, Jack Jackson <jack@xxxxxxxxxxxxxxx> wrote:
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)
_______________________________________________
Ethereal-users mailing list
Ethereal-users@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-users