【面试】IP数据报格式分析
(除选项外的报头区总共20个字节)
1)版本:IPV4/IPV6
2)头长度:报头区长度,用于计算数据区的开始位置,比如头长度为6,代表报头区长度为6*4个字节,头长度的单位为4字节,所以报头区长度不为4字节的倍数时必须填充字节,满足倍数要求
3)服务类型TOS:
8位二进制,用于规定本数据报的处理方式
1.优先权(0-7):数字越大,表示该数据报的优先级越高,网络中的路由器可以使用优先级进行拥塞控制,如当网络发生堵塞时可以根据数据报的优先级来决定数据报的取舍
2.短延迟位D:该位为1代表数据报请求以短延迟信道传输,0表示正常延时
3.高吞吐量位T:该位为1代表数据报请求以高吞吐量信道传输,0表示普通
4.高可靠位R:该位置为1时代表数据报请求以高可靠信道传输,0表示普通
5.保留位:没有使用
下面是各网际协议的IP数据报的服务类型TOS的值:
从上表可以得到的结论:
对于与用户直接交换的,一般选用短延时
对于有大量数据传输的,一般选用高吞吐量
对于传输控制信息的,一般选用高可靠
4)总长度
IP数据报的总长度(报头区+数据区),总长度理论长度为2的16次方(65536)字节,但由于物理网络限制,远远达不到这个理论值
5)标识:相同的标识可以使得分片后的各数据报片最后能正确的重新组装成原来的数据报
6)标志:标志为1代表后面“还有分片”的数据报
7)片偏移:在较长的分组分片后,某片在原组中的相对位置,片偏移以8个字节为单位,也就是说每个分片的长度都是8的倍数
8)生存时间TTL:指定了IP数据报可以在网络中传输的最长时间,实际中设置为最大经过的路由器跳数,经过1个路由器,TTL就减去1,当TTL为0还没有到达目的地时就丢弃该IP数据报
TTL为1代表该数据报只能在本局域网中传输,TTL最大为2的8次方255
TTL存在的目的就是避免数据报在网络中不断的兜圈子,白白的消耗网络资源
9)上层协议:指明该IP数据报使用的是传输层的那种协议
10)首部校验和:采用反码求和的方式校验数据报的首部,路由器进行首部校验【不能绝对的保证首部不出问题,只能在绝大多数情况下保证
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程
· SQL Server 内存占用高分析及解决办法(超详细)
· 20250116 支付宝出现重大事故 有感
· ffmpeg简易播放器(1)--了解视频格式
2018-06-08 HDU 1176 免费馅饼 (类似数字三角形的题,很经典,值得仔细理解的dp思维)
2018-06-08 HDU 1158(非常好的锻炼DP思维的题目,非常经典)
2018-06-08 HDU 1165 公式推导题