ipv4的头部

4位版本信息:描述IP协议的版本。   

4位头部长度:表示IP协议头部的长度

                          4个比特位表示的数值 * 4   = IP协议头部的长度

                           IP协议头部最大为60字节(固定的20字节+可选的40字节)

8位服务类型:

                

比特含义
0     1     2优先级(现在已经弃用了)
3最小延时(ssh)
4最大吞吐量(ftp)
5最高可用性
6最小费用
7保留位(必须置为0)

16位总长度:表示IP数据包总体(IP协议首部+数据)的长度。  

                             IP数据报最大的长度为65535字节

16位标识:    用于分片重组。   也可以说用于识别哪些被分片的UDP数据包能组成一个完整的UDP数据包。

                          同一UDP数据包中所有的分片具有相同的标识。不同数据包的标识不相同。

                         即使不同UDP包的标识相同,也可以通过源IP地址,目的IP地址、协议等进行区分

 3位标志:

                       

比特含义
0保留位
1

是否进行分片;

为1时,禁止分片;

为0时,可以分片

2

标识分片,即当前分片是否是UDP包的最后一个分片。

为1时,不是最后一个分片

为0时,是最后一个分片

 

13位片偏移:用来表示被分片每一个分段相对于原始数据的位置。

                            片偏移=13个比特位表示的数值 *  8

 8位生存时间:数据在到达目的地前允许中转的路由器个数

                      TTL : 跳数,(一般为64,防止路由循环)

                      每经过一个路由设备转发之后,TTL会减1,TTL为0之后,转发设备会丢弃这个数据包

8位协议:表示传输层用的协议。接收端接收到这个数据包后通过这8位知道提交给传输层哪个协议

16位头部检验和:检验数据包在传输过程中是否损坏

32位源IP地址 :发送端IP地址

32位目的IP地址:接收端IP地址

一般情况下在转发过程中32位源IP地址和32位目的IP地址不会被改变,在NAT技术中例外。


 读到这里,ipv4头部所有内容就已经完了。

看完上面的内容可能,我们会有些疑问?

在16位标识时,为什么说它可以☞用于识别哪些被分片的UDP数据包能组成一个完整的UDP数据包呢?那TCP呢?

由于网络电气特性的影响,在数据链路层对数据帧做出了限制(最大传输单元MTU)。如果网络层提交给数据链路层数据的大小超过MTU,则需要进行分片传输。

在TCP协议的时候,我们提到

MTU=MSS+IPHeader+TCPHeader

而TCP在三次握手的时候,协商了MSS大小,TCP进行传输数据的时候,按照MSS大小传输。

也就是说:

TCP由于按照MSS给网络层提交数据,所以网络层加上IP头部之后,数据报文大小也是小于等于MTU的,不需要进行分片传输

UDP在传输时是整条数据收发的。 

网络层加上IP头部之后,数据报文大小就有可能超过MTU,则需要进行分片传输。

3位标志中第二个比特位为1时,也就是禁止分片。此时传递大于MTU的UDP数据包时,IP模块将丢弃次数据包;另外在分片的时候,网络层丢失了一个分片,造成UDP数据包不完整,IP模块也直接丢弃。所以说IP协议也是不可靠的

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值