Protocol Comparision

1.2.7 Protocol Comparisons

The comparison of the different protocols that are discussed are presented here in different aspects..

Fragmentation and Reassembly

TCP/UDP/IP IP handles this. TCP and UDP need not worry about it, other than per­formance implications. Once a packet is fragmented, it is not reassem­bled until it reaches the destination host.

XNS Never done. If a packet must be fragmented by some data-link layer, then it must be reassembled by the other end of the link, to prevent any other systems from knowing that it happened. The packet size is almost always 576 bytes, which is less than optimal for an Ethernet.

SNA Done by path control.

NetBIOS An implementation detail that is not specified.

Flow Control

IP The IP layer sends ICMP source quench messages to a host when packets are arriving too quickly from that host. This is a form of hop-by-hop flow control.

TCP Provides end-to-end flow control whereby the receiver tells the sender how much data it can accept.

UDP No flow control is provided by UDP (other than the ICMP source quench feature of the underlying IP layer).

IDP The error protocol can be used to notify a host when a packet from that host has been discarded because of resource limitations. This is similar to the ICMP source quench.

SPP Provides end-to-end flow control, similar to TCP.

PEX No flow control is provided (other than the error control packets provided by the underlying IDP layer).

SNA Link-to-link flow control is provided by the data-link layer for most SNA data links (SDLC, token ring). Additionally, an end-to-end flow control is also provided by the LU.

NetBIOS An implementation detail that is not specified.

Reliability

The issue of reliability is a touchy area when talking about whether some form of end-to-end reliability is needed. (This is one of the "religious topics" of networking.) Obvi­ously, if the underlying data-link and network layers are unreliable, the transport layer must provide an end-to-end check. This is how TCP and UDP operate. But with UDP the end-to-end reliability is optional and there are some implementations that disable it when running on a "reliable" LAN such as an Ethernet. The reason we say that an Ethernet is reliable is that every Ethernet frame has a 32-bit CRC appended to it, to verify that the data is exchanged without any errors between the two Ethernet interface cards. Other LAN technology, such as the token ring, also provides a 32-bit CRC to provide link-to-link reliability.

If the data-link layer is reliable, do we still need an end-to-end reliability check? Without answering this touchy question we should point out where the data could be cor­rupted, even if it is transferred between the two interface cards without any errors. First, the interface card contains memory in which the incoming and outgoing frames are stored. This memory can be a source of errors. The data is also transferred between the interface card and the computer's memory, typically along an input/output bus of some form. On some LANs there might also be bridges or repeaters, which can also be the source of errors.

IP Provides a 16-bit checksum that covers the IP header only. The upper layers (TCP and UDP) are left to do their own checksum of the actual message, if desired.

TCP Assumes the IP layer is unreliable and provides a 16-bit checksum of the entire message.

UDP As with TCP, it provides a 16-bit checksum of the entire message.

XNS IDP provides a 16-bit checksum of the entire packet, therefore no additional end-to-end reliability checks are required by the upper layers (SPP and PEX).

SNA Assumes the data-link layer provides the reliability. No form of end-to-end checksum is provided.

NetBIOS Both the datagram service and the session service assume the data link layer is reliable, with no additional checksums provided.

Sequencing

The datagram protocols do not perform sequencing—IP, UDP, IDP, PEX, and NetBIOS datagram. The connection-oriented protocols all provide this feature—TCP, SPP, LU 6.2, and NetBIOS session. SNA assumes that the data-link layer does the sequenc­ing, with a verification of this taking place in the LU. NetBIOS also assumes the data link does the sequencing. TCP and SPP both do the sequencing themselves, assuming the underlying layers do not sequence the data.

Timeout and Retransmission

Most datagram protocols do not provide this service (IP, UDP, IDP, and NetBIOS). PEX, however, is a datagram service that provides a timeout and retransmission. As expected, the connection-oriented protocols do provide this service—TCP, SPP, LU 6.2, and NetBIOS. As with sequencing, both SNA and NetBIOS require the data link to han­dle this.