网络技术-IP协议

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

我们可以随意抓一个包进行查看:

 

🌏 记录时间:2023年9月21日 20点28分

🌏 参考资料:https://www.bilibili.com/video/BV1Dg4y187bZ?p=17

posted @   犯愁の难瓜  阅读(92)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示