欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TCP/IP协议概况

程序员文章站 2022-03-10 17:44:02
...
        下图是TCP/IP协议族中各协议与其使用程序的概况:
TCP/IP协议概况
            
    
    博客分类: 网络编程 网络应用unix编程linux 
        图中同时展示了 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
  • TCP/IP协议概况
            
    
    博客分类: 网络编程 网络应用unix编程linux 
  • 大小: 35.8 KB