TCP/IP之七:IP结构与IP分片

IP协议是TCP/IP的核心协议之一,正因为它的重要性,整个协议栈才叫做TCP/IP协议栈。它工作在网络层,起着重要的承上启下的作用。它的主要工作是完成IP分组的路由,并在必要时进行IP分片。

IP分组头部格式如下:

7U1[4Q`L8M@%9RG{5ZLXUPT

(1)Version:版本号,说明是IPV4还是IPV6等等;IHL即internet header length, IP分组头部长度,占4bit,以4字节为单位,因为这个字段只占4bit,最大值为15,导致IP首部最长只能为
15*4(即60)字节;Type of Service:服务类型,比如最少延迟之类;Total Length:总长度字段,之所以需要总长度,是因为数据链路层有可能会往帧尾填充字节;Identification:标识,用于分片的时候确定哪些分组原本属于同一个ip数据包,属于同一个数据包的分组具有相同的标识;Flags:标志字段,包含3位,一位说明是否允许IP分片,一位说明是否后面还有分片,一位保留以后使用;Fragment Offset:偏移量,IP分片后该分组在原数据包中的偏移量;Time to Live:该分组可以经过的路由器数;Protocol:协议类型,供上层协议复用之用;Header Checksum:首部检验和;Source Address:源IP地址;Destination Address:目的IP地址;Options:选项字段;Padding:填充。
(2)IP首部的固定字段有20个字节,选项和填充字段最大可以有40字节,总的最长可以为60字节。
(3)IP首部的总长度字段为16bit,最大值可以为65535,所以如果光从IP层来看,IP分组的总长度可以有65535字节,但是实际上由于网络接口层的MTU的限制,导致IP分组不可能有这么大,当IP分组的大小长于网络接口层的MTU时需要进行IP分片,将IP数据包分成多个分组独立地在网络上传输。然而,IP层的65535的长度限制对传输层来讲几乎可以说是没有限制的。
(4)Options字段,可以记录路由、时间戳等。

接下来来讲讲IP分片的相关话题。

我们可以通过命令netstat  -i来查看自己所在网络的MTU。以下是我在主机上运行netstat -i的输出。可以看到eth0的MTU是1500字节,而本地环回接口的MTU是16436。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值