前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ip协议详解

Ip协议详解

作者头像
yifei_
发布2022-11-14 14:43:46
1K0
发布2022-11-14 14:43:46
举报
文章被收录于专栏:yifei的专栏

文章目录

  1. 1. Ipv4头部
  2. 2. Ipv6头部
  3. 3. 转发表
  4. 4. 备注
  5. 5. 参考

Ip协议是Tcp/Ip协议中的核心协议,位于网络层,上层的tcp、udp、icmp等协议都要依靠它。 Ip协议提供了一种尽力交付、无连接的服务。不保证Ip数据包一定能到达目的地。

Ipv4头部

  • 基本的ip头部长度为20字节,可变长度的选项最多可达40字节,ip数据最多65515字节。
  • 第一个字段是版本字段,占4位。记录本数据报是ipv4还是ipv6.
  • IHL(Internet head length)是头部长度字段,占4位。记录数据报头部中32位字的数量。所以最多只能表示60个字节.
  • DS字段和ECN字段在最初是统称为服务类型(ToS)字段,后来才分成两个。
  • DS(Differentiated Services)为区分服务字段,占6位。这个字段是用来提供差异化服务的,以给数据报提供不同的优先级。 6位中最后一位是1,表示实验或本地用途;以0结尾表示标准用途。前5位对流量类别和丢弃优先级进行了区分,具体参考RFC2474/2597/3246/5865.
  • ECN(Explicit Congestion Notification)显式拥塞通知字段,占2位。在数据报传输途中,如果一台具有拥塞感知功能的路由器检测到了拥塞,就会设置这2位,以此来通知目的主机,目的主机接收到之后会通知发送方降低发送速度。
  • 总长度字段记录数据报的总长度,长度16位,可以表示ipv4数据报的最大长度为65535字节。通过这个字段和IHL字段,可以知道数据报的数据部分从哪里开始。
  • 标示、标志、分片偏移三个字段对ip数据报的分片至关重要。
  • 16位的标示字段,是用来标记数据报的分片的。发送方主机在每次发送数据报时,会将本地计数器的值加1,然后存到该字段。如果该数据报在传送途中被分片,每个分片会分别复制这个值,目的主机接收到这些分片,就可以根据这个标示来判断哪些数据报是一伙的。
  • 3位标志字段分别是保留位、DF(don’t frame)、MF(more frame)。DF为1表示本数据报不能分片。MF为1表示后面还有分片,MF为0表示这是最后一个分片。
  • 13位的分片偏移字段,记录该数据报分片之前的位置。
  • 生存期(TTL)字段用来设置一个数据报可能经过的路由器数量上限。每台路由器再转发数据报时会将该值减1,如果达到0,就丢弃该数报并用一个ICMP消息通知发送方。
  • 8位的协议字段用来标示ip数据报所承载的数据报类型,17为udp,6为tcp,4表示ipv4.
  • 16位头部校验和字段仅计算ipv4的头部。所以内部的tcp等数据报需要自己记录本身的校验和。另外由于TTL字段每经过一台路由器就要减1,导致每次需要重新计算校验和。
  • 剩下的两块为源ip地址和目的ip地址。

Ipv6头部

ipv6数据报加入了扩展首部功能。

以下为数据报具体格式:

  • 取消了首部长度,因为IPv6的首部长度是固定40个字节。
  • 取消了服务类型,因为流标号和优先级结合起来实现了服务类型的功能。
  • 取消了总长度字段,改用为有效载荷长度,有效载荷就是后面的扩展首部加上数据报中的数据。
  • 取消了标识,标志和片偏移,因为这些功能都包含在了扩展首部里面。
  • 取消了协议字段,改用为下一个首部,功能不变,这样更容易理解。
  • 取消了生存时间ttl,改用为跳数限制,功能不变,这样更容易理解,更形象了。
  • 取消了首部效验和,这样加快了路由器对数据报的处理速度,在数据链路层中,当我们发现有差错的帧就会抛弃,在运输层中,在udp中,当发现有差错就会抛弃,在tcp中,当发现有差错就会重传,直到传送到目的进程为止。因此在网路层的检测就可以精简掉。
  • 取消了选项字段,功能归并在了扩展首部上。

转发表

每个路由器和主机并不记录到达目的地的完整路径,只记录下一跳的地址。ip协议根据相应的转发表,来转发接收到的数据。一个转发表至少包含以下4部分:

  • 掩码,子网掩码,用来与ip地址执行与操作。
  • 目的网络地址,下一跳的网络地址,将数据报中的 目的地址和掩码执行按位与操作,然后跟这个目的网络地址对比。
  • 下一跳,根据对比目的网络地址,决定数据报的下一跳 *接口,由ip层使用的标识符。

备注

  • Ip协议数据报中的目的地址在经过每一跳时都不改变,但是链路层的目的地址每跳都会发生改变。

参考

欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ipv4头部
  • Ipv6头部
  • 转发表
  • 备注
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档