The transport layer is the key to understanding layered
protocols. It provides various services, the most important of which is an
end-to-end, reliable, connection-oriented byte stream from sender to receiver.
It is accessed through service primitives that permit the establishment, use,
and release of connections. A common transport layer interface is the one
provided by Berkeley sockets.
Transport protocols must be able to do connection management
over unreliable networks. Connection establishment is complicated by the
existence of delayed duplicate packets that can reappear at inopportune moments.
To deal with them, three-way handshakes are needed to establish connections.
Releasing a connection is easier than establishing one but is still far from
trivial due to the two-army problem.
Even when the network layer is completely reliable, the
transport layer has plenty of work to do. It must handle all the service
primitives, manage connections and timers, and allocate and utilize credits.
The Internet has two main transport protocols: UDP and TCP. UDP
is a connectionless protocol that is mainly a wrapper for IP packets with the
additional feature of multiplexing and demultiplexing multiple processes using a
single IP address. UDP can be used for client-server interactions, for example,
using RPC. It can also be used for building real-time protocols such as RTP.
The main Internet transport protocol is TCP. It provides a
reliable bidirectional byte stream. It uses a 20-byte header on all segments.
Segments can be fragmented by routers within the Internet, so hosts must be
prepared to do reassembly. A great deal of work has gone into optimizing TCP
performance, using algorithms from Nagle, Clark, Jacobson, Karn, and others.
Wireless links add a variety of complications to TCP. Transactional TCP is an
extension to TCP that handles client-server interactions with a reduced number
of packets.
Network performance is typically dominated by protocol and TPDU
processing overhead, and this situation gets worse at higher speeds. Protocols
should be designed to minimize the number of TPDUs, context switches, and times
each TPDU is copied. For gigabit networks, simple protocols are called for.
No comments:
Post a Comment
silahkan membaca dan berkomentar