首页 > 其他分享 >07 网络层协议(IPv4协议)

07 网络层协议(IPv4协议)

时间:2023-08-29 22:24:15浏览次数:46  
标签:协议 07 1.2 IP 192.168 IPv4 分片 bit 数据包

网络层

在数据封装时,网络层的IP协议会为数据包封装IP头部

IP协议

为网络层的设备提供逻辑地址,协议规定了IP地址的格式,以及封装时的格式,负责数据包的寻址和转发
办法IPv4,IPv6

IPv4报文格式

Version:4 bit,4:表示为IPv4;6:表示为IPv6。
Header Length:4 bit,首部长度,如果不带Option字段,则为20,最长为60。
Type of Service:8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用。
Total Length:16 bit,总长度,整个IP数据包的长度。
Identification:16 bit,标识,分片重组时会用到该字段。
Flags:3 bit,标志位。
Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。
Time to Live:8 bit,生存时间。
Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
Header Checksum:16 bit,首部检验和。
Source IP Address:32 bit,源IP地址。
Destination IP Address:32 bit,目的IP地址。
Options:可变,选项字段。
Padding:可变,填充字段,全填0。

IP头部报文抓包理解

拓扑:

AR1配置

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]inte gi 0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 255.255.255.0
Aug 29 2023 16:40:55-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
IP on the interface GigabitEthernet0/0/0 has entered the UP state.
[Huawei-GigabitEthernet0/0/0]

AR2配置

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]inte gi 0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.1.2 255.255.255.0
Aug 29 2023 16:41:42-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
IP on the interface GigabitEthernet0/0/0 has entered the UP state.
[Huawei-GigabitEthernet0/0/0]

AR1 ping AR2,在AR1的ge0/0/0口抓包

image

FLAG中的第一个字段是保留字段(未被定义使用),第二个字段(Don't Fragment)表示是否允许分片,0表示允许,1表示不允许,第二个字段More fragment表示是否后面还有分片的数据,0表示没有,1表示有(Not set表否定就是0的意思)
在这当中IP头部的bit为20(通过IP头部中的Header Length),数据包的总长度为84(Total Length),ICMP携带的数据长度为48bit
Protol指定了上层协议是ICMP
Source Address和Destion Address表明了来源IP和目的IP
Checksum校验和,可以观察发现回包和去包的首部检验和是相同的,表面对应关系

AR1 -f -s 1472 192.168.1.2
可以通,IP头部的20bit,ICMP头部的8个bit,1472的数据,正好1500

<Huawei>ping -f -s 1472 192.168.1.2
PING 192.168.1.2: 1472 data bytes, press CTRL_C to break
Reply from 192.168.1.2: bytes=1472 Sequence=1 ttl=255 time=30 ms
Reply from 192.168.1.2: bytes=1472 Sequence=2 ttl=255 time=20 ms

image

AR1 ping -f -s 1473 192.168.1.2
发送超过1500bit的数据包观察,无法ping通对端了,一个数据包的长度最多为1500bit,IP头部为20字节,ICMP头部为8个bit加上1473bit的数据超过了1500bit,-f为不允许分片,所以此数据包不合法

ping -f -s 1472 192.168.1.2
<Huawei>ping -f -s 1473 192.168.1.2
PING 192.168.1.2: 1473 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out

AR1 ping -s 1473 192.168.1.2
允许分片后可以进行通信,数据包进行了分片发送

<Huawei>ping -s 1473 192.168.1.2
PING 192.168.1.2: 1473 data bytes, press CTRL_C to break
Reply from 192.168.1.2: bytes=1498 Sequence=1 ttl=255 time=30 ms
Reply from 192.168.1.2: bytes=1498 Sequence=2 ttl=255 time=40 ms

第一个数据包IP包头直接封装在数据前面,携带了1480bit的数据,加上IP包头的20bit正好1500bit,是合法的
image

第一个数据波其中flag里的,DF(Don't fragment)为0,代表支持分片,MF(More fragment)为1代表后面还有未发完的数据包,偏移量为0因为是第一个数据包
image

第二个数据包的flag字段
DF为0支持分片,MF为0,代表后面没有数据包了,偏移量为1480,上一个数据包已经传输了1480bit的字节,为1472bit的数据和8bit的ICMP头部,在第二个包开始组装成完整的包
image

标签:协议,07,1.2,IP,192.168,IPv4,分片,bit,数据包
From: https://www.cnblogs.com/Metkey/p/17665873.html

相关文章

  • Heap 0x07--HGAME 2023 week2--heap
    一个拖了很久的复现,这个比赛在23年初,但是年初的时候水平实在是不够,直接摸掉了后续复现的时候也只有四月多复现到hgameweek2的那个非栈上fmtstr拖着拖着就把剩的三个堆题拖到现在了,开始复现,同时也算是对堆的一种学习吧0x01fast_note先从2.23的堆入手,进去之后一眼uaf复现主要......
  • 传输层协议总结
    传输层就是在信纸的空白上写上新的“收信人”信息。每一所房子【某一个终端】会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。使用端口号(portnumber)来识别收信人(某个进程)。传输层协议TCP面向字节流服务面向连接,可靠,......
  • 记一次因HTTP协议版本导致后端服务响应502事故
    一、前言于今天即将下班之际,研发同时突然反馈某项目开发环境调用java后端服务出现502....据悉,就在前几天都是正常,今天发版上线之后就出现这种情况,而且故障出现之后根研发自行调用后端服务接口是没问题的....随即我这边开始展开紧急处理二、排查思路首先对于502错误通常表示服务器作......
  • 标准C++ -- day07
    一、虚函数、虚函数表、虚表指针、覆盖1、虚函数在成员函数前面加virtual后,该函数就称为虚函数,此时该类就会像虚进程一样多了一个虚表指针(虚函数表指针,虚指针)classBase{public:voidfunc(void){cout<<"Basefunc"<<endl;}}cout<<size......
  • login;jsessionid=node07a53tu5ba3vd9k0wmsboxmq20.node0
    问题描述:shiro重定向到登入页面,登入地址出现了jsessionid=node07a53tu5ba3vd9k0wmsboxmq20.node0 解决方案:sessionManger中sessionIdUrlRewritingEnabled设置为false即可;<beanid="sessionManager"class="org.apache.shiro.web.session.mgt.DefaultWebSessionManage......
  • 视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • 视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • 安防视频监控/视频集中存储/云存储平台EasyCVR无法播放HLS协议该如何解决?
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集......
  • 07 龟兔赛跑
    packageThreadDemo;//龟兔赛跑,总路程共一百步publicclassTest07_RaceimplementsRunnable{booleanflag;Stringwinner;@Overridepublicvoidrun(){for(inti=1;i<=100;i++){flag=isGameOver(i);if(fl......
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......