TCP supports the most popular
suite of applications on the Internet today, and it has been enhanced in recent
years to improve robustness and performance over networks of varying capacities
and quality. Nevertheless, it largely retains the behavior outlined in 1981 by
Internet pioneer Jon Postel in RFC 793,4 including properties that make it a less-than-ideal
trans transaction-based processing. TCP requires a strict order-oftransmission delivery
service for all data passed between two hosts. This is too confining for
applications that can accept per-stream sequential delivery (partial ordering)
or no sequential delivery (order-ofarrival delivery).
TCP also treats each data
transmission as an unstructured sequence of bytes. It forces applications that
process individual messages to insert and track message boundaries within the
TCP byte stream. Applications may also need to invoke the TCP push mechanism to
ensure timely data transport.
The TCP sockets-based
application-programming interface does not support multihoming. An application
can only bind a single IP address to a particular TCP
connection with another host. If
the interface associated with that IP address goes
down, the TCP connection is lost
and must be reestablished.
Finally, TCP hosts are
susceptible to denial-ofservice attacks characterized by TCP
SYN “storms” in which a burst of
TCP SYN packets arrives to signal an unsuspecting host that the sender wishes
to establish a TCP connection with it. The receiving host allocates memory and
responds with SYN ACK messages. When the attacker never returns ACK messages to
complete the three-way TCP connection setup handshake, the victimized host is
left with depleted resources and an inability to service legitimate TCP
connection setup requests.
0 comments