当前位置:网站首页>IP数据包的格式(1)
IP数据包的格式(1)
2022-08-03 05:26:00 【_RELIFE】
IP数据包结构图

(引用千锋教育)
IP包头长度可变,20-60字节。
1、版本: 告诉大家使用的是ipv4还是ipv6? (这四位是0100或0110)
2、首部长度:告诉接收端IP包头长度,别多收少收。
(注意:数据帧前14字节是二层帧头,故从14往后根据首部长度就可以直到三层IP包头的长度)
3、优先级与服务类型(QOS与TOS): 前3bit是优先级,服务类型是4bit,最后留一个bit不用,扩展开发使用。 比如公司分公司之间跨城市连接专线,给专业运营商交点钱,让网速快很多。
4、总长度: 数据帧由2层帧头,3层ip包头,四层tcp/udp包头,五层数据,2层帧尾组成
首部长度指的是3层ip包头的长度,而总长度是3,4,5层加起来。
5、分片:

举个例子,这个是数据帧中三四五层内容,比如五层待发数据为4000字节,其他两个为20字节,
假如每个ip数据包最多容纳1500个字节,那上面这个情况肯定要分片,如何分呢?下面解释。
直观来看,1500是上限,那4000字节肯定要分3份。
把20字节的IP包头拿出来复制3份,把TCP/IP包头和data放一起,变成了4020字节。(下图)
注意,TCP/UDP层为什么不拿出复制,因为主要起导航作用的是3层IP包头,故TCP/UDP安全到终点即可。

接下来开始组合,如下图

这样就组合完成了!
注意,只是单纯从字节角度分析分片,后面还会提到标志位和偏移量。
6、段偏移量和标识位
还是刚刚的图,我加上偏移量

7、标志位(3位): 第一位没有启用,统一是0,第二位0表示分片了,1表示未分片,
第三位为1表示还有后续分片,自己不是最后一个。
8、TTL(time to live): 也是转为10进制来算,100以上基本是windows主机,以下是linux
发送数据,每经过一个路由器TTL就减一,如果为0时,那就销毁该数据帧。
目的是防止无用数据包在网络上当垃圾。如果接收方无法接收数据或者出错,导致发送方找不到,那不能让该数据帧永远游荡在网络上,故TTL归零时就销毁。
9、协议号:如果是6往TCP走,17往UDP走,1是往同层ICMP协议走
看下图,数据从下到上所经过的协议:

该图表示下层为上层服务的简单结构图,数据链路层中MAC子层协议包含了IP和ARP两种类型,在
MAC帧中的(类型)一栏通过类型号来进行选择。(0x0800走IP协议,0x0806走ARP协议)
网络层中IP协议中也包含了去往TCP和UDP的途径,协议号6走TCP,17走UDP,1走ICMP。
10、首部校验和: 和帧尾FCS类似,FCS用于校验整个帧,而这里主要校验IP数据包的(20-60字节)
11、源地址和目的地址: 32位大小,比如10.1.1.1 ,每个10进制数字转换8个二进制位,共32位
补充:MAC地址48位,IP地址32位。即6字节和4字节
边栏推荐
- ZEMAX | How to rotate any element around any point in space
- ZBrush+Substance Designer2021制作高品质3D角色模型全流程!
- 游戏3D建模师是吃青春饭的吗?被高薪挖掘的建模人才,靠的是这个
- 增强光学系统设计 | Zemax 全新 22.2 版本产品现已发布!
- 剑指 Offer II 001. 整数除法
- VS2022 encapsulation under Windows dynamic library and dynamic library calls
- 在Maya和ZBrush中制作战士模型
- Dynamic adjustment subject web system?Look at this one is enough
- B.1#【编程语言】—1 arm 汇编指令
- 电容器和电池有什么不同?
猜你喜欢
随机推荐
大学毕业后,零基础想转行成为一名3D建模师,现在该做什么?
5. What is the difference between int and Integer?
cb板上常用的电子元器件都有哪些?
【第四周】MobileNet和HybridSN
【第三周】ResNet+ResNeXt
学习C的第一天,尝试一下写博客
采用Trench肖特基二极管,实现功率密度的显著提升
VS2022 encapsulation under Windows dynamic library and dynamic library calls
Qemu 搭建Armv8 平台
常见的电子元器件分类介绍
Difference between @JsonProperty and JSONField?
常见的电容器有哪些?唯样商城
【第二周】卷积神经网络
二分查找4 - 搜索旋转排序数组
三、final、finally、 finalize有什么不同?
3D游戏建模师在国内的真实现状,想转行,先来看看!
All-round interpretation of POE switches (middle)
浮点型数据在内存中存储的表示
数组与字符串14-使用双指针移除元素
ZEMAX | 在OpticStudio中建立扩增实境(VR)头戴式显示器









