Navigation bar
  Start Previous page  32 of 35  Next page End Home  22 23 24 25 26 27 28 29 30 31 32 33 34 35  

Embedded Web Server for the CR16
National Semiconductor
Jeff Wright
32
TCP requires that all queued data be processed before sending an ACK.  Furthermore, if
aggregate acknowledgement is implemented, the ACK interval may not exceed 0.5 seconds.  
Since segments are not queued, segments are individually acknowledged.  Maximum ACK delay is
less than 0.5 seconds.
·
Support for Urgent Data 
Although the Urgent mechanism may be used in any application, it was originally used to send
interrupt - type commands to a Telnet program.  We ignore the Urgent flag and never set it in
outgoing segments. 
·
TCP Options
All TCP’s are required to be capable of receiving TCP options attached to any segment.  In
addition, all TCP’s MUST ignore without error any TCP option it does not implement, and it
MUST be prepared to handle an illegal option length (e.g., zero) without crashing or other
undesirable activity.  TCP mandates a default MSS value of 536 bytes in the event one side
does not advertise to the contrary.  Support for the Maximum Segment Size option is important
because it permits limited RAM applications (i.e. most low-cost embedded apps) to limit the size
of the incoming segments to one commensurate with its smaller buffers.  If a MSS option is not
received at connection setup, TCP MUST assume a default send MSS of 536 (576-40).  
We recognize and apply the peer’s MSS.  All other TCP options, though received, are ignored. 
Our MSS is determined at compile time and is typically set to the default value.  Although
unnecessary, we still advertise this option during synchronization.
·
TCP Checksums
TCP requires that the sender compute a checksum for every segment sent, and requires that
the receiver confirm the checksum on all incoming segments.  Some implementations ignore the
checksum on received segments since PPP provides ample protection via its CRC.  However, since
TCP may not always run over PPP (it may run over SLIP, for instance), support for the checksum
must be included even if it can be optionally omitted.  
Our implementation complies by allowing the user to optionally include the TCP checksum.  Any
received segments failing the checksum test are silently discarded.  In the event a segment
does fail the checksum, no acknowledgement is sent.  The sending peer is expected to
retransmit the segment after an appropriate timeout.
·
Use clock-driven Initial Sequence Number (ISN) selection
Microcontroller.com White Papers Previous page Top Next page