TCP/IP协议-封装和分用

数据进入协议栈时的封装过程

在这里插入图片描述

由于TCPUDPICMPIGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此, IP在首部中存入一个长度为8 bit的数值,称作协议域1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。

许多应用程序都可以使用 TCPUDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。 TCPUDP都用一个16 bit的端口号来表示不同的应用程序。TCPUDP把源端口号和目的端口号分别存入报文首部中。
网络接口分别要发送和接收 IPARPRARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个 16 bit的帧类型域。

分用

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing),图1 - 8显示了该过程是如何发生的。
在这里插入图片描述

  • 为协议ICMPIGMP定位一直是一件很棘手的事情。在图1 - 4中(本人博客:TCP/IP协议-分层),把它们与IP放在同一层上,那是因为事实上它们是IP的附属协议。但是在这里,我们又把它们放在IP层的上面,这是因为ICMPIGMP报文都被封装在IP数据报中。
  • 对于ARPRARP,在这里把它们放在以太网设备驱动程序的上方,这是因为它们和IP数据报一样,都有各自的以太网数据帧类型。但我们又把ARPRARP作为以太网设备驱动程序的一部分,放在 IP层的下面,其原因在逻辑上是合理的

参考书籍:《TCP/IP详解卷1-协议》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值