报文分片、设定生命周期、增加检验和、增加选项字段

报文分片

作用

报文分片是将一个较大的IP数据报分割成多个较小的数据报片的过程。这是因为在网络传输过程中,不同的链路可能具有不同的最大传输单元(MTU),即链路层协议所能传输的最大数据包大小。如果IP数据报的大小超过了链路的MTU,那么该数据报就需要被分片,以确保其能够通过该链路。

实现方式

IP数据报的分片是通过在IP头部中的标志(Flag)字段和分段偏移(Fragment Offset)字段来实现的。标志字段中的DF(Don't Fragment)位用于指示是否允许分片,MF(More Fragments)位用于指示该数据报是否还有后续的分片。分段偏移字段则用于指示该分片在原始数据报中的位置。

设定生命周期

作用

设定生命周期(也称为生存时间,TTL,Time To Live)是为了限制IP数据报在网络中的存活时间,以防止数据报在网络中无限循环。每个数据报在发送时都会被赋予一个TTL值,该值在数据报经过每个路由器时都会减1。当TTL值减至0时,路由器将丢弃该数据报,并向源主机发送一个ICMP超时消息。

实现方式

TTL值是通过IP头部中的生命期(TTL)字段来设置的。该字段是一个8位的计数器,其值在数据报经过路由器时递减。

增加检验和

作用

增加检验和是为了确保IP数据报的完整性。在数据报传输过程中,由于各种原因(如噪声、干扰等),数据报可能会受到损坏。通过计算数据报的检验和,并在接收端进行验证,可以检测出数据报是否已损坏。

实现方式

IP数据报的检验和是通过IP头部中的头校验(Header Checksum)字段来实现的。该字段是一个16位的计数器,用于存储数据报头部的检验和值。在发送端,计算头部各字段的二进制反码和,并将其存储在头校验字段中。在接收端,重新计算头部的检验和,并与头校验字段中的值进行比较,以验证数据报的完整性。

增加选项字段

作用

增加选项字段是为了提供额外的信息或功能。IP头部中的选项字段是一个可变长度的字段,用于存储一些可选的信息或指令。这些信息或指令可以包括安全选项、路由选项、时间戳选项等。

实现方式

选项字段是通过在IP头部中增加一个或多个选项头部来实现的。每个选项头部都包含一个类型字段和一个长度字段,用于指示选项的类型和长度。选项字段的具体内容和格式取决于所选的选项类型。

相关推荐
hello_25040 分钟前
动手模拟docker网络-bridge模式
网络·docker·桥接模式
武文斌771 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
爱吃喵的鲤鱼1 小时前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
爱吃小胖橘1 小时前
Unity网络开发--超文本传输协议Http(1)
开发语言·网络·网络协议·http·c#·游戏引擎
萧鼎2 小时前
Python schedule 库全解析:从任务调度到自动化执行的完整指南
网络·python·自动化
7哥♡ۣۖᝰꫛꫀꪝۣℋ3 小时前
网络层--数据链路层
网络·tcp/ip·智能路由器
_清浅3 小时前
计算机网络【第四章-网络层】
网络·计算机网络·智能路由器
沐浴露z3 小时前
【深入理解计算机网络08】网络层之IPv4
网络·计算机网络·网络编程·信息与通信·408
望获linux5 小时前
【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
大数据·linux·服务器·开发语言·网络·操作系统
红尘客栈25 小时前
K8s-kubeadmin 1.28安装
java·网络·kubernetes