网络层首部记录着超多信息

网络层位于运输层和数据链路层之间,存在着IP、ARP、ICMP协议,以包的形式传递数据。

在这里插入图片描述

网络层数据包(IP数据包,Packet)由首部、数据两部分组成。

在这里插入图片描述

  • 版本 (Version) — 占4个二进制位,IPV4/IPV6
  • 首部长度 (Header Length) — 4位,二进制乘以4为字节总长度,最小为20,最小为60
  • 区分服务(Differentiated Services) — 8位,可以用于提高网络服务质量,路由器根据网络层首部包含某个特定区分服务(比如设定为8),优先通过,提高网络质量
  • 总长度 (Total Length) — 16位、0 - 65525,表示网络层首部+数据部分的最大值,而下一层数据链路层帧的数据部分最大传输单元MUT不能超过1500字节,如果网络层数据过大,需要分片,变成多个独立的以太网帧
  • 协议 (Protocol) — 8位、网络层数据从运输层传下来,运输层封装数据所用的协议,如 ICMP(表示为1)/IP/TCP(表示为6)/UDP(表示为17)
  • 首部检验和 (Header checksum) — 类似FCS的功能,将首部进行计算,初始化全为0,首部数据根据一定算法算出值再填充,将来拿到数据后根据首部检验和其它数据对比算出首部是否有问题
  • 源IP地址 (Source) — 32位,4个字节
  • 目标IP地址 (Destination) – 32位,4个字节

通过 ping www.baidu.com 抓包我们可以看到以上网络层数据,在这条请求中,版本为 IPV4,首部长度20字节,不区分服务,总长度为60字节,协议为ICMP,首部校验和看起来被禁用了,最后是源IP地址和目标IP地址。

在这里插入图片描述

首部里还有另外四个属性需要单独来说,首先是生存时间(Time to live),每个路由器在转发之前都会将数量减1,如果小于0时,路由器会返回错误报告,防止路由不断转发出现死循环的情况。通过 ping命令可以直接推测请求所需TTL。

在这里插入图片描述

Linux操作系统默认TTL为64,这里剩余TTL为49。通过 -i 配置来指定ICMP的生存时间,可以看到当TTL小于所需时,请求发送失败。

在这里插入图片描述

剩下三个属性和分片传输有关联,一个是是标识 (Identification),占据16位,范围是 0 - 65535,数据包的ID,每发送一个数据包,ID就加1,超出则从0开始重新累加,这里标识是30102。

如果总长度超出了1500字节,是需要分片传输到数据链路层的,但同一个数据包所有片的标识都是一样的。通过标识可以找到同一个包的所有片,但还需要两个属性才能知道每个片放在哪一个位置。

标志 (Flags),总共有三位,第一位保留暂无作用,第二位表示不允许分片,1表示不允许,0表示允许,第三位表示更多片,1表示不是最后一片,0代表最后一片。

片偏移 (Time to live),13位,要乘以8才是最终的字节偏移,当多个片时,可以算出占据数据包的哪部分。

在这里插入图片描述

通过 -l 的配置在 ping 命令中指定数据包大小,ping ke.qq.com -l 4000

在这里插入图片描述

通过抓包可以看到分成了三片,其中第一片的总长度1500,标志为允许分片且不是最后一片,偏移量为0。第二片总长度1500,标志为允许分片且不是最后一片,偏移量为1480(上一片总长1500 - 首部长度20)。第三片长度1068,标志为允许分片且是最后一片,偏移量为2960。

网络层首部涵盖了非常多的信息,包括协议版本、总长度、用于分片记录的数据、IP地址等等,保障了信息的可靠传输。

以上就是 网络层首部记录的信息数据, 更多有关 前端网络协议的内容可以参考我其它的博文,持续更新中~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
    尽管讲解概念如果同学们是初初相识,真有点晦涩难懂,本人讲解概念的同时,尽量结合实操来讲,这样即加固了概念,同时让同学不会感觉到太烦闷,其实对这些重要基础概念的理解,正是学习过《计算机网络原理》,与直接上手做事的人的区别所在。     古人云,腹有诗书气自华,只要先搞懂了原理,学有所成,今后和别人讨论网络底层问题的时候,才能够抑扬顿挫底气十足,不怯场!# 网络层首部     初探十二段内容介绍     ipv4和ipv6 版本号表示;首部长度     区分服务,给数据添加标识 QoS     总长度 Total Length;标识Identification;标志Flags     生存时间 TTL     协议号;首部校验和     实训抓包验证诸项内容# ICMP 差错报告报文格式     数据包类型(详解列表:类型值和代码)     TTL耗尽报告-1     主机不可到达(Destination unreachable)-2     路由重定向(Redirect)-3     给应用程序返回差错报告-4     实例讲解:使用ping命令测试网络判断出问题范围     跟踪数据包路径主要命令介绍:tracert和pathping# ARP 协议     arp 协议本网段与跨网段的工作原理     arp 欺骗的两个目的,阻断连接或截获数据包     arp 欺骗的工作原理阐述,创建阻断连接的实验环境     arp 欺骗演示工具,网络执法官     arp 欺骗防止或阻止措施:         手工绑定两端通信主机的mac地址 -a         同时修改mac地址和ip地址;安装运行wireshark工具 -b         在路由器中绑定通信主机mac地址 -c# 搭建流媒体服务     提供点对点服务:采用TCP协议,而非IGMP协议     提供多播视频:根据多播地址切换频道(IGMP协议-UDP)     根据多播IP地址,参照预定规则,合成多播MAC地址     阐述IGMP跨网段运行方式,与创建跨网段环境     启用多播路由:实现流媒体跨网段转发视频,同时抓包查看ICMP数据包特性# 习题详解    网络层协议

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值