In the previous section, the TCP/IP protocol suite was discussed as if the protocol layers were just black boxes, e.g. LAN, IP, UPL (Upper Protocol Layers). Even when shown as part of a node. In a TCP/IP protocol suite implementation it is necessary to open up the black boxes and look inside.
The protocol entities on a host as described previously are not the actual protocol handling functions that do the dirty work. E.g. the IP entity in an implementation of the TCP/IP protocol suite consists of an IP protocol handling function, an ICMP protocol handling function and an IGMP protocol handling function. But only the IP protocol handling function provides the IP unreliable network service, ICMP and IGMP handling functions make use of this service for their own communication. In the IETF it is convention to place support protocols (e.g. ICMP, IGMP and ARP) in the same layer as the protocol used to transport them.
In this section, each layer and the TCP/IP protocol handling functions within it are discussed to show their functionality in the TCP/IP suite of protocols.
Figure: TCP/IP protocol implementation model
In Figure an overview is given of the main protocols used in the TCP/IP protocol suite and the relations between them. The lines between the boxes indicate which protocols are used ``on the way out'' to the physical network. E.g. FTP uses TCP which uses IP which uses the Network interface which uses the network's physical medium. The path used by protocols involved in multicasting are emphasized, because later the focus will be on those paths.
In this layer, the TCP/IP protocol defines the first step in the abstraction from the physical network. The Address Resolution Protocol (ARP) and its counterpart Reverse ARP (RARP) provide the conversion functions from IP to LAN address and visa versa respectively. ARP and RARP are usually placed on this level, because each LAN has its own method of addressing hosts connected to it. Reverse ARP is used to help workstations with no local storage to get their IP address. This is not very relevant to the problem in this thesis, so this will not be discussed further.
ARP on the other hand is going to be very important as a basis to understand the resolution of multicast addresses. ARP will be discussed in more detail in Section .
Another property of this layer is that it defines some capabilities or services for the Internet Layer to use: Frame size, addressing capabilities (unicast, multicast, broadcast), Quality of Service ( QoS) parameters, etc.
The Internet Layer provides a similar service as the Network Interface Layer, but this time defined independent of the capabilities of the lower layer. That means that additional protocols might be needed at this level (or below this level; ARP is placed in the NI layer, because it is very specific to the IP protocol layer as well as the type of LAN used).
The Internet Protocol provides a single address space of 32 bits to higher layers. In section , a detailed description is given of the IP address space. The IP address space is completely independent of the LAN, thanks to the local address resolution provided by ARP.
No guarantees are provided for the delivery of packets; duplication in the network, packet-loss, corruption and out of order delivery of packets may occur. Any form of reliability must be provided by higher layers.
An important function of this layer is the routing function of IP. Internetworks are typically connected in a maze like structure with routers as intermediate nodes and the physical networks between them (see also Figure in Section ). When there is more than one unique route to chose from, the best route must be chosen for the packets to reach the destination address.
Besides the Internet Protocol (IP), two additional support protocols are considered to be part of the Internet Protocol layer; Internet Control Message Protocol ( ICMP) and Internet Group Management Protocol ( IGMP). ICMP is used to exchange error messages and (traffic) control messages. IGMP is used to administrate subscriptions to multicast host groups and exchanging membership information with multicast routers. A more detailed description of IGMP will be given when IP multicasting is explained in Chapter 3.
Two Transport Protocols are defined in the TCP/IP protocol suite; Transmission Control Protocol ( TCP) and User Datagram Protocol ( UDP). TCP is the most complex protocol of the two, it offers a connection oriented, reliable FIFO (First In, First Out) data-stream transmission service. For unicast transmissions over a relatively short time period, TCP is ideal.
UDP offers only port numbers and an optional checksum in addition to IP's unreliable datagram service. This simplicity makes it necessary for applications using UDP services to perform their own checks and recovery solutions in case of errors (packet-loss, out of order delivery, etc.).
Transport protocols only transport data without any structure, application protocols typically add structure to the stream of data. Usually Application Protocols are integrated into real applications, causing the applications to be identified with the protocol. Examples of Application Protocols are the File Transfer Protocol (FTP), Telnet, Network File System (NFS), Service Message Block (SMB), etc.