TCP Connections & UDP Connectionless Transport.

Internet is an extremely complicated system.

To provide structure to the design of the network, and it's protocols, designers organize protocols, the network hardware and software that implement the protocols in layers.

See: Internet seen by technical eyes (for computer enthusiasts).

Residing between the application and network layers, the 'Transport Layer' has critical role of providing communication services directly to the applications, in particular: TCP and UDP transport layer protocols.

Connectionless Transport, or UDP (User Datagram Protocol) has following properties:

* Finer application-level control over what data is sent, and when. This means that application can decide what services it needs, and implement them on their own. Even something similar to TCP's services, or more.
* No connection estabilishment. No 'reliable' data transfer service, no congestion control (no attempt for controlling network traffic).
* No connection state is maitained.
* Small packet overhead. This means that less data is sent between computers when UDP protocol is used. At least in theory, for many services are implemented anyway and it costs.

Connection-oriented Transport, or Transmission Control Protocol (TCP) has following properties:

* Connection-oriented. This means we can have separate connections (similar to telephone connections), so that multiple users or applications can isolate their communications from others, even if they are communicating between the same internet devices (computers, phones, etc). Even at the same time. Technically speaking, connection is estabilished between two internet devices (identified by IP Address) on certain ports. For example: between computer with IP address on port 300 and telephone with IP address on port 600. Each connection can have different properties (security, speed, perhaps more).
* Ordered packets. Sequence numbers allow receivers to discard duplicate packets and properly sequence reordered packets.
* Reliable data transfer. This means that data packets are retransmitted if they are lost on the way.
* Error-free data transfer. If data is malformed during transfer, a checksum allows to detect errors... then this data can be retransmitted if neccessary. Note that it's not enough to rely on this type of 'security' to prevent man-in-middle hack attack.
* Flow control. (speed matching service, so that data does not overflow receiver's buffer).
* Congestion control. (attempt for controlling network traffic).

No comments:

Post a Comment