IP:
Internet Protocol 即因特网协议;
网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编制以及如何合理地使用IP地址来设计网络。
IP的包结构:
IP包头固定20Bytes(字节) 其中重点掌握以下结构:
- 版本
- 版本有4也有6(目前主要学习4)
- 头部长度
- 头部长度固定为20字节
- 总长度
- 总长度=头部长度(固定20字节)+上层应用层的长度
- 标识
- 若数据包分片了,则会使用标识方便确认哪个包属于同一个分片
- 分段标志
- 更多分段标志若为1 则代表这个包是分段的其中之一,若标志为0 则代表没有更多分段
- 生存时间(TTL)
- 为了防止数据永无止境的在链路里,则设定了TTL值,每经过一个三层设备,减一,减到0后 这个包就废了
- 协议号(Protocol)
- 用于识别上层协议
我们可以随意抓个包 即可看到IPv4的详细包结构信息
分片:
当数据包比链路MTU(MTU默认1500字节)大的时候,就可以被分解为更多的足够小片段的过程,叫做分片
也就是说,一个包大于1500字节时,会被切成小于1500字节的数据包
我们在用whireshark进行抓包时,能够明确看到分片
尤其要注意:whireshark抓取分片时,只会抓取最后一个片段,因此在 Flags中会发现显示 "More fragments:Not set"
TTL:
为了防止IP数据包在网络内永无止境的传输从而引起了环路,就设置了TTL这个概念,每次经过一次三层设备的时候 TTL值会-1 当TTL=0时,数据包将直接被丢弃
TTL的意义不仅仅防止环路问题,它也可以被当成一种故障排除的工具;Linux的 "traceroute" 命令以及Windows的 "tracert" 命令就是利用了TTL功能
环路测试:
通过环路测试更加能够理解TTL的作用,以及TTL的重要性
这里使用eNSP复现环路故障,通过抓包分析可得知为什么会出现环路的现象:
在eNSP中拖入两个路由器,配置信息如下:
复现环境部署完毕后,在任意路由器上ping 8.8.8.8并且进行抓包,即可看到环路现象
请注意观察每个包的TTL
第一个包:
第二个包:
最后一个包:
由于TTL为0 路由器R2最终将ICMP回应发送给了R1:
从上述的实验可以得出以下结论:
- 当路由器的路由配置不当,就会发生环路
- 由于IP包头存在TTL,因此每经过一次三层设备,TTL都会减1
- TTL的作用即是:防止永无止境的环路现象
协议号:
协议号即Protocol 它用于识别上层的协议
可以通过识别编号来识别上层协议:
- 1:ICMP
- 2:IGMP
- 6:TCP
- 9:IGRP
- 17:UDP
- 47:GRE
- 50:ESP
- 51:AH
- 57:SKIP
- 88:EIGRP
- 89:OSPF
- 115:L2TP
我们可以随意抓一个包进行查看:
标签:环路,协议,IP,分片,网络,TTL,数据包 From: https://www.cnblogs.com/kakureru/p/17718294.html