TCP/IP协议概况

        下图是TCP/IP协议族中各协议与其使用程序的概况:

        图中同时展示了 IPv4 和 IPv6,从右向左查看,最右边的5个网络应用在使用 IPv6,随后的6个使用 IPv4。最左边名为 tcpdump 的网络应用或者使用 BSD分组过滤器(BSD packet filter, BPF),或者使用数据链路提供者接口(datalink provider interface, DLPI)直接与数据链路进行通信。处于其右边所有9个应用下面的虚线标记为 API,它通常是套接字或 XTI。访问 BPF 或 DLPI 的接口不使用套接字或 XTI(一个例外:linux使用一种称为 SOCK_PACKET 的特殊套接字类型提供对于数据链路的访问)。
        图中每个协议框的描述如下:
        1、IPv4:使用32位地址,给 TCP、UDP、SCTP、ICMP 和 IGMP 提供分组递送服务。
        2、IPv6:使用128位地址,给 TCP、UDP、SCTP 和 ICMPv6 提供分组递送服务。
        3、TCP:传输控制协议。是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP 套接字是一种流套接字。TCP 关心确认、超时和重传之类的细节,可使用IPv4和 IPv6。
        4、UDP:用户数据包协议。是一个无连接协议。UDP 套接字是一种数据报套接字。UDP 数据报不能保证最终到达它们的目的地。可使用 IPv4 和 IPv6。
        5、SCTP:流控制传输协议。是一个提供可靠全双工关联的面向连接的协议。SCTP 是多宿的,从而每个关联的两端均涉及一组IP地址和一个端口号。SCTP 提供消息服务,也就是维护来自应用层的记录边界。可使用 IPv4 和 IPv6,而且能在同一个关联中同时使用它们。
        6、ICMP:网络控制消息协议。ICMP 处理在路由器和主机之间流通的错误和控制信息,这些消息通常由TCP/IP网络支持软件本身(而非用户进程)产生和处理,不过图中的 ping 和 traceroute 程序同样使用 ICMP。
        7、IGMP:网络组管理协议。用于多播,在IPv4中是可选的。
        8、ARP:地址解析协议。把一个IPv4地址映射成一个硬件地址。通常用于诸如以太网、令牌环网和 FDDI 等广播网络,在点到点网络上并不需要。
        9、RARP:逆地址解析协议。把一个硬件地址映射成一个IPv4地址。它有时用于无盘节点的引导。
        10、ICMPv6:网络控制消息协议版本6。ICMPv6综合了 ICMPv4、IGMP和 ARP的功能。
        11、BPF:BSD 分组过滤器。该接口提供对于数据链路层的访问能力,通常可以在源自Berkeley的内核中找到。
        12、DLPI:数据链路提供者接口。提供对于数据链路层的访问能力,通常随 SVR4 内核提供。


参考书籍:《UNIX网络编程卷1》第二章--传输层:TCP、UDP和SCTP

猜你喜欢

转载自aisxyz.iteye.com/blog/2368126