深入解析数据包处理过程:从以太网驱动到应用层协议的完整流程

日期: 2025-02-14 05:03:10 |浏览: 24|编号: 73095

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

深入解析数据包处理过程:从以太网驱动到应用层协议的完整流程

1。目标主机接收数据包并处理每层协议堆栈的过程最终到达应用程序。

以太网驱动程序首先根据以太网标头中的“上限协议”字段确定数据框架的有效载荷是IPARP还是RARP协议,然后提交数据框架的数据报。处理相应的协议。如果是IP数据报,则IP协议将基于IP标头中的“上层协议”字段确定数据报的有效载荷是TCP,UDP,ICMP或IGMP,然后将其交给相应的协议以进行处理。如果是TCP段或UDP段,则TCP或UDP协议确定应根据TCP标头或UDP标头的“端口号”字段将应用程序层数据移交到哪个用户过程。 IP地址是标识网络中不同主机的地址,端口号是标识同一主机上不同过程的地址。 IP地址和端口号一起确定网络中的唯一过程。

请注意,尽管IP,ARP和RARP数据报都要求以太网驱动程序将驱动程序封装成框架,但从功能部门,ARP和RARP属于链接层,IP属于网络层。尽管ICMP,IGMP,TCP和UDP的数据都需要将IP协议封装在数据报中,但就函数,ICMP,IGMP和IP而言,TCP和UDP属于运输层。

2。以太网框架格式

源和目标地址是指网卡的硬件地址(也称为MAC地址)。长度为48位,当网卡离开工厂时,固化。使用ifconfig命令来查看它,“ hwaddr 00:15:f2:14:9e:3f”部分是硬件地址。协议字段有三个值,与IP,ARP和RARP相对应。框架的末端是CRC检查代码。

以太网帧中的数据长度指定为至少46个字节,最大值为1500个字节。 ARP和RARP数据包的长度不足以成为46个字节,因此稍后必须填写位。 1500的最大值称为以太网的最大传输单元(MTU)。不同的网络类型具有不同的MTU。如果将数据包从以太网路由到拨号链接,并且数据包长度大于拨号链接的MTU,则数据数据包需要分散。 IFCONFIG命令的输出还包含“ MTU:1500”。请注意,MTU的概念是指数据框中有效载荷的最大长度,而不包括框架标头的长度。

3。ARP数据报格

在网络通信期间,源主机的应用知道目标主机的IP地址和端口号,但不知道目标主机的硬件地址。数据包首先是通过网卡接收的,然后处理上层协议。如果接收到的数据包是目标主机的硬件地址不匹配本地计算机,则将直接丢弃。在通信之前,必须获得目标主机的硬件地址。这就是ARP的作用。

请注意,源MAC地址和目标MAC地址一次出现在以太网标题和ARP请求中,这对于链接层是以太网的情况是不必要的,但是如果链接层是另一种类型的网络,则可能是必要的。 。硬件类型是指链接层网络类型,1是以太网,协议类型是指要转换的地址类型,0x0800是IP地址。最后两个地址长度分别为以太网地址和IP地址的6和4(字节)。 1的OP字段表示ARP请求,而OP字段为2表示ARP答复。

如果源和目标主机不在同一网络段,则ARP要求的广播框架无法通过路由器。在跨网络段访问时,当发现目标地址不是此网络段的IP时,数据包将发送到网关进行处理(通常是路由器完成的网关),并且路由器将使用它的路由功能与路由IP。到达目标网络段后,请使用ARP解析目标网络段中目标主机的MAC地址以实现通信。

4。IP数据报格式

IP数据报的标头长度和数据长度是可变长度的,但始终是4个字节的整数倍数。对于IPv4,4位版本字段为4。4位标头长度的值为4个字节,最小值为5,这意味着最小标头长度为4x5 = 20个字节,这意味着没有任何选项的4位标头长度不可用的最大值可以用4位表示的最大值为15,这意味着标题的最大长度为60字节。

8位TOS字段有3个位来指定IP数据报的优先级(当前被放弃),以及4位用于表示可选服务类型(最小延迟,最大输出,最大可靠性,最低可靠性,最低成本),并且有一些位总是0。

总长度是整个数据报的字节数(包括IP标头和IP层有效负载)。每个IP数据报都会传输,并将16位标识符添加到1中,可用于碎片和重新组装数据报。 3位标志和13位切片偏移用于分片。

TTL(直播的时间)是这样的:源主机为数据包设置了一个生存时间,例如64,每次路由器通过时,都会将值降低1。如果将其降低到0,则意味着该值路线太长,仍然找不到。当它到达目标主机的网络时,数据包被丢弃,因此生存时间不是秒,而是跳。协议字段指示上层协议是TCP,UDP,ICMP还是IGMP。然后是校验和,它仅检查IP标头,并且数据验证由高级协议处理。 IPv4的IP地址长度为32位。省略了选项字段的说明。

提醒:请联系我时一定说明是从铂牛网上看到的!