Overview of TCP/IP Protocol

        The following figure is an overview of each protocol in the TCP/IP protocol suite and its application procedures:

        The figure shows both IPv4 and IPv6. Looking from right to left, the rightmost 5 network applications are using IPv6, and the next 6 are using IPv4. The leftmost network application named tcpdump communicates directly with the datalink using either the BSD packet filter (BPF) or the datalink provider interface (DLPI). The dashed line below all 9 applications to its right is labeled API, which is usually a socket or XTI. Interfaces accessing BPF or DLPI do not use sockets or XTI (with one exception: linux uses a special socket type called SOCK_PACKET to provide access to the data link).
        The description of each protocol box in the figure is as follows:
        1. IPv4: uses 32-bit addresses to provide packet delivery services for TCP, UDP, SCTP, ICMP and IGMP.
        2. IPv6: Provides packet delivery services for TCP, UDP, SCTP and ICMPv6 using 128-bit addresses.
        3. TCP: Transmission Control Protocol. Is a connection-oriented protocol that provides a reliable full-duplex byte stream to user processes. A TCP socket is a type of stream socket. TCP cares about details like acknowledgments, timeouts, and retransmissions, and can use both IPv4 and IPv6.
        4. UDP: User Data Packet Protocol. is a connectionless protocol. A UDP socket is a type of datagram socket. UDP datagrams are not guaranteed to eventually reach their destination. Both IPv4 and IPv6 can be used.
        5. SCTP: Stream Control Transmission Protocol. Is a connection-oriented protocol that provides reliable full-duplex association. SCTP is multi-homed, so that both ends of each association involve a set of IP addresses and a port number. SCTP provides messaging services, that is, maintaining record boundaries from the application layer. Both IPv4 and IPv6 can be used, and both can be used in the same association.
        6. ICMP: Network Control Message Protocol. ICMP handles error and control messages that circulate between routers and hosts, and these messages are usually generated and processed by the TCP/IP network support software itself (rather than user processes), but the ping and traceroute programs in the figure also use ICMP.
        7. IGMP: Network Group Management Protocol. Used for multicast, optional in IPv4.
        8. ARP: Address Resolution Protocol. Maps an IPv4 address to a hardware address. Typically used on broadcast networks such as Ethernet, Token Ring, and FDDI, it is not required on point-to-point networks.
        9. RARP: Reverse Address Resolution Protocol. Maps a hardware address to an IPv4 address. It is sometimes used for booting diskless nodes.
        10. ICMPv6: Network Control Message Protocol version 6. ICMPv6 combines the functions of ICMPv4, IGMP and ARP.
        11. BPF: BSD packet filter. This interface provides access to the data link layer and is typically found in kernels derived from Berkeley.
        12. DLPI: Data Link Provider Interface. Provides access to the data link layer, usually provided with the SVR4 core.


Reference books: "UNIX Network Programming Volume 1" Chapter 2 - Transport Layer: TCP, UDP and SCTP

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326656904&siteId=291194637