网络协议底层原理4——网络层

网络层

网络层数据包(IP数据包,Packet)由首部、数据2部分组成
数据:很多时候是由传输层传递下来的数据段(Segment)
网络协议底层原理4——网络层_第1张图片
网络协议底层原理4——网络层_第2张图片

1.网络层首部 - 版本、首部长度、区分服务
版本(Version):占4位
0b0100:IPv4
0b0110:IPv6

首部长度(Header Length):占4位,二进制乘以4才是最终长度
0b0101:20(最小值)
0b1111:60(最大值)

区分服务(Differentiated Services Field):占8位
可以用于提高网络的服务质量(QoS,Quality of Service)

2.网络层首部 - 总长度
总长度(Total Length):占16位
首部 + 数据的长度之和,最大值是 65535
网络协议底层原理4——网络层_第3张图片
由于帧的数据不能超过1500字节,所以过大的IP数据包,需要 分片(fragments) 传输给数据链路层,每一片都有自己的网络层首部(IP首部)

3.网络层首部 - 标识、标志
标识(Identification):占16位,数据包的ID,当数据包过大进行分片时,同一个数据包的所有片的标识都是一样的
有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1

标志(Flags):占3位
第1位(Reserved Bit):保留
第2位(Don’t Fragment):1代表不允许分片,0代表允许分片
第3位(More Fragments):1代表不是最后一片,0代表是最后一片

4.ping 的几个用法、wireshark抓包
ping ip地址-l数据包大小 发送指定大小的数据包:ping www.baidu.com -l 800
ping ip地址-f 不允许网络层分片:ping www.baidu.com -l 800 -f
ping ip地址-i TTL 设置TTL的值
网络协议底层原理4——网络层_第4张图片
网络协议底层原理4——网络层_第5张图片
ping www.baidu.com -l 800测试
网络协议底层原理4——网络层_第6张图片
网络协议底层原理4——网络层_第7张图片
我们按照800字节数据ping域名,查看包数据,发现是828个字节
分析:800数据包 + 20包头 + 8ICMP头

ping www.baidu.com -l 4000
分析:按照帧数据不能大于1500来看,我们的这个4000数据量的包会被分成三分来发送,如下图
网络协议底层原理4——网络层_第8张图片
丢包有点高
网络协议底层原理4——网络层_第9张图片
第一个数据包1480数据+20包头
第二个数据包1480数据+20包头
第三个数据包1040数据+20包头+8 ICMP协议头
刚好4000数据发完
网络协议底层原理4——网络层_第10张图片
网络协议底层原理4——网络层_第11张图片

5.网络层首部 - 片偏移
片偏移(Fragment Offset):占13位
片偏移乘以8:字节偏移(wireshark显示的是字节偏移)
每一片的长度一定是8的整数倍
网络协议底层原理4——网络层_第12张图片

6.网络层首部 - 生存时间
生存时间(Time To Live,TTL):占8位
每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告
观察使用 ping 命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器
网络协议底层原理4——网络层_第13张图片
网络协议底层原理4——网络层_第14张图片
根据TTL追踪经过路由器:ping ip地址 -i TTL 设置TTL的值
通过 tracert、pathping 命令,可以跟踪数据包经过了哪些路由器

ping baidu.com -i 1 经过1次就消亡,显然由网关回复
网络协议底层原理4——网络层_第15张图片
通过 ping baidu.com -i 1、ping baidu.com - i 2、ping baidu.com -i 3 … 可以追踪发包到百度经过的路由器。
网络协议底层原理4——网络层_第16张图片
tracert 和 pathping 命令实际上更简单也可以追踪路由器:
tracerrt baidu.com
网络协议底层原理4——网络层_第17张图片
pathping baidu.com
网络协议底层原理4——网络层_第18张图片

7.网络层首部 - 协议、首部校验和
协议(Protocol):占8位
表明所封装的数据是使用了什么协议
在这里插入图片描述
首部校验和(Header Checksum):用于检查首部是否有错误
网络协议底层原理4——网络层_第19张图片

8.Wireshark 完整网络层首部
网络协议底层原理4——网络层_第20张图片
资料学习:小码哥教育
B站学习链接:网络协议学习
文章借鉴:网络协议从入门到底层原理

你可能感兴趣的:(linux,运维,服务器)