【IP数据报】网络层协议

网络层协议的介绍

1.IP数据报

IP数据报的格式说明IP协议都具有什么功能。在协议IP的标准中,描述首部格式的宽度是32位(即4字节)。IP数据报的完整格式如下图所示:
IP数据报的完整格式

从上图可看出,一个IP数据报由首部和数据两部分组成。首部的前一部分长度是固定的,共20字节,是所有IP数据报必须具有的。在首部固定部分的后面是一些可选字段,其长度是可变的。部各字段的意义。

IP数据报首部固定部分中各字段的意义如下所示:
版本:占4位,指IP协议的版本。通信双方使用IP协议的版本必须一致。
两种版本:IPv4和IPv6。

首部长度:占4位,可表示的最大十进制数值是15(1111)。

请注意,首部长度字段所表示数的单位是32位字长(1个32位字长是4字节)。

由于IP首部的固定部分是20字节,因此首部长度字段的最小值是5,(20/4=5)即二进制表示的首部长度是0101。而当首部长度字段为最大值1111时(即十进制的15),就表明首部长度达到最大值:15个32位字长,即15*4=60字节。IP头部最少20个字节,最多60个字节。

区分服务:占8位,用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。
总长度:总长度指首部和数据之和的长度,单位为字节。

总长度字段为16位,因此数据报的最大长度为2[^16]− 1 = 65535 字节。

在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层所规定的MTU值。

例如,最常用的以太网就规定其MTU值是1500字节。

若所传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
虽然使用尽可能长的IP数据报会使传输效率得到提高,但数据报短些也有好处。IP数据报越短,路由器转发的速度就越快。为此,协议IP规定,在互联网中所有的主机和路由器必须能够接受长度不超过576字节的数据报。当主机需要发送长度超过576字节的数据报时,应当先了解一下,目的主机能否接受所要发送的数据报长度。否则,就要进行分片。

这是假定上层交下来的数据长度有512字节,加上最长的IP首部60字节,再加上4字节的富余量,就得到576字节。

在进行分片时,数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和。

标识(identification):占16位。

IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

标志(flag):占3位,但目前只有两位有意义。

标志字段中的最低位记为MF(More Fragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
**片偏移:**占13位。

片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,除最后一个数据报片外,其他每个分片的长度一定是8字节(64位)的整数倍。
【例】一个数据报的总长度为3820字节,其数据部分为3800字节长(使用固定首部),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400,1400和1000字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。下图给出分片后得出的结果。

分片后得出的结果

下表是本例中数据报首部与分片有关的字段中的数值,其中标识字段的值是任意给定的。具有相同标识的数据报片在目的站就可无误地重装成原来的数据报。
在这里插入图片描述

现在假定数据报片2经过某个网络时还需要再进行分片,即划分为数据报片2-1(携带数据800字节)和数据报片2-2(携带数据600字节)。那么这两个数据报片的总长度、标识、MF、DF和片偏移分别为:820,12345,1,0,1400/8=175;620,12345,1,0,(1400+800)/8=275。

生存时间:占8位,生存时间字段常用的英文缩写是TTL(Time To Live)

表明这是数据报在网络中的寿命。
由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在互联网中兜圈子,因而白白消耗网络资源。
TTL的意义是指明数据报在互联网中至多可经过多少个路由器。
路由器在每次转发数据报之前就把TTL值减1。若TTL值减小到零,就丢弃这个数据报,不再转发。因此,TTL的单位是跳数。
数据报能在互联网中经过的路由器的最大数值是255。
若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。
协议:占8位

协议字段指出此数据报携带的数据使用何种协议,以便使目的主机的IP层知道应将数据部分交给哪个协议进行处理。
常用的一些协议和相应的协议字段值如下:
在这里插入图片描述

首部检验和:占16 位。

这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和,所以首部需要检验。不检验数据部分可减少计算的工作量。
IP数据报格式总结图如下所示:
在这里插入图片描述

IP数据报各字段意义总结:

数据报字段位数/bit意义
版本(Version)4IP 的版本号(IPv4 的版本为 4)
首部长度(Header Length)4IP数据包头长度,最短为20字节,最长为60字节,但是其长度是可变的,具体长度取决于选项字段的长度
优先级与服务类型(Priority & Type of Service)8数据包的优先级和服务类型,通过在数据包中划分一定的优先级,用于实现 服务质量的要求
总长度(Total Length)16指示整个 IP数据包的长度,最长为2[^16]-1=65535字节,包括数据首部和数据
标识符(Identification)16IP数据包的标识符,当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。
标志(Flags)3标志字段,对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。
段偏移量(Fragment Offset)13段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。
TTL(Time to Live)8IP数据包的生命周期,一个数据包每经过一个路由器,TTL将减去 1。当 TTL 的值为 0 时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环地转发下去.
协议号(Protocol)8指示在 IP数据包中封装的是哪一个协议,是 TCP还是 UDP,TCP 的协议号为 6,UDP的协议号为 17。
首部校验和(Header Checksum)16接收方和网关用来校验数据有没有被改动过。
源 IP 地址(Source IP Address32数据包的源地址
目标 IP地址(Destination IP Address)32数据包的目的地址
可选项(Options)0-40字节选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。

2.抓包协议学习

(1)源IP地址为192.168.1.49并且是TCP数据报协议的数据包,抓包结果截图如下所示:
在这里插入图片描述

(2)目的IP地址为192.168.1.49并且是UDP数据报协议的数据包,抓包结果截图如下所示:

在这里插入图片描述

(3)源主机地址为101.91.22.103,并且目的IP地址为192.168.1.49,且是UDP数据报协议的数据包,抓包结果截图如下所示:

在这里插入图片描述

3.ICMP协议

3.1 ICMP协议(Internet控制报文协议)

  • ICMP是一个”错误侦测与回馈机制“

  • 通过IP数据包封装

  • 用来发送错误和控制信息

    在两终端设备之间通信,将通过ICMP协议判断是否可达并发送错误信息,截图如下所示:
    在这里插入图片描述

3.2 ICMP协议的封装

  • ICMP协议属于网络层协议

  • ICMP数据的封装过程

在这里插入图片描述

4.ping命令学习

Windows系统中ping命令常用参数汇总,如下所示:

操作步骤功能作用
- t参数会一直不停的执行ping
- a参数可以显示主机名称
- l参数可以设定ping包的大小
- n指定发送包的个数
- S指定源IP去ping

Linux系统中ping命令常用参数汇总,如下所示:

操作步骤功能作用
- s参数可以设定ping包的大小
- c指定发送包的个数
- I指定源IP去ping

跟踪路由路径命令汇总,如下所示:

系统类别操作步骤
WINtracert IP/域名
Linuxtraceroute IP/域名

Windows系统中ARP命令汇总,如下所示:

操作步骤功能作用
ARP -a查看ARP缓存表
ARP -d [IP]清除ARP缓存
ARP -s [IP] [MAC]ARP静态绑定

ping baidu.com返回信息,如下所示:

在这里插入图片描述

指定IP地址192.168.45.136 ping www.baidu.com返回结果信息,如下所示:

在这里插入图片描述

5.广播与广播域

  • 广播:将广播地址做为目的地址的数据帧
  • 广播域:网络中能接收到同一个广播的所有节点的集合
  • 广播地址为FF-FF-FF-FF-FF-FF

在这里插入图片描述

6.ARP协议概述

6.1 什么是ARP协议

  • ARP(Address Resolution Protocol),地址解析协议,将一个已知的IP地址解析成MAC地址

  • 局域网中主机的通信——IP地址与MAC地址(IP地址是逻辑寻址,MAC地址是物理寻址)。

6.2 IP地址解析为MAC地址

(1)PC1发送数据给PC2,查看缓存没有PC2的MAC地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PFNa9vph-1678758047376)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230313231819055.png)]

(2)PC1发送ARP请求消息广播

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-umGAZCMy-1678758047377)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230313231906378.png)]

(3)所有主机收到ARP请求消息,只有PC2会回复ARP应答(单播),其他主机将丢弃数据报文

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOcr9F9W-1678758047377)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230313232124015.png)]

(4)PC1将PC2的MAC地址保存到缓存中,发送数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fjUP7kja-1678758047377)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230313232349796.png)]

ARP地址解析协议工作原理总结,如下所示:

1) PC1发送数据给PC2前,会先查询自己ARP缓存表中,有没有对方主机的P地址与MAC地址的对应记录,如果有相应记录信息,就直接进行单播通信;
2)若PC1的ARP缓存表中没有相关记录,则会通过广播的方式发送ARP请求消息(目的MAC地址为广播地址FF-FF-FF-FF-FF-FF),交换机接收到消息后会进行广播泛洪;

(3)只有拥有对应的IP地址的主机会接收ARP请求消息,其它主机则会丢弃ARP消息,目的主机会先根据ARP消息将源主机的IP和MAC地址对应信息,保存到自己的ARP缓存表中;

4)目的主机通过单播的方式回复ARP应答消息,交换机会根据MAC地址表进行转发;
5)PC1将PC2的IP与MAC地址保存到ARP缓存表中,之后通过单播发送数据给PC2;

注意:动态学习到的ARP的老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后会消失。

7.ARP欺骗与攻击

7.1利用ARP欺骗管理网络

通过长角牛网络监控机软件管理网络

  • 设置监控范围
  • 进行网络管理
  • 验证效果

ARP协议的两种包类型:

(1)ARP request 请求包

(2)ARP reply回应包

7.2 ARP攻击和欺骗

利用ARP协议的漏洞(无分辨接受任何主机的ARP回应包),伪造任何主机的MC地址实现。

  • ARP攻击:无法通信、断网
  • ARP欺骗:窃取数据,对目标主机的监控和控制

ARP攻击实现方式:
**欺骗其他所有计算机:**制造假的ARP应答,并发送给局域网中除了被攻击主机以外的计算机,应答包中包含被攻击者的ip和虚假mac地址

假如PC1发送信息给PC2,ARP攻击详解如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwuxnUAc-1678758047377)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230314092349732.png)]

欺骗被攻击计算机: 制造假的ARP应答,并发送给被攻击的计算机,应答包中包含其它计算机的IP和虚假的MAC地址
ARP欺骗的实现方式:
**ARP欺骗网关(冒充网关)😗*ARP应答包中包含网关的IP地址和攻击者的MAC地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KNUUaRR-1678758047378)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230314085252702.png)]

**ARP欺骗网关(冒充主机)😗*ARP应答包中包含目的主机的IP地址和虚假的MAC地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rbc3HfId-1678758047378)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230314092957514.png)]

ARP包内容展示如下所示:

ARP请求包:谁有IP地址192.168.1.49的MAC地址,请告诉 IP地址192.168.1.1。

ARP应答包:IP地址192.168.1.49的MAC地址是d4:93:90:0d:f5:89.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jud25Acb-1678758047378)(C:\Users\13635\AppData\Roaming\Typora\typora-user-images\image-20230314093107836.png)]

知识点总结如下所示

  • IP数据包格式重点理解各字段的含义
  • ICMP用来发送错误和控制消息
  • ARP协议用于实现IP到MAC地址的解析
  • ARP协议通过广播查询目标主机MAC地址
  • ARP攻击是通过伪造ARP应答进行欺骗攻击
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
协议数据分析 实验⽬的 了解协议分析仪的使⽤⽅法和基本特点。 增强对⽹络协议的理解。 实验要求 要求在进⾏协议数据分析后,能够将⽹络数据与具体的⽹络操作相互映证,如实的记录实验结果,完成实验 实验环境 1.⼀台运⾏Windows 2000的计算机 2.各计算机已通过⽹卡、双绞线、集线器实现⽹络硬件连接。 实验步骤 1. 执⾏"ipconfig /all"命令,记录⾃⼰的ip地址、物理地址、⽹关地址、DNS服务器地址。 由上,我们可以看出: IP地址:10.1.246.149 物理地址:C8-D3-FF-3D-89-8B ⽹关地址:10.1.244.1 DNS服务器地址:10.1.244.18 实验探究:什么是DNS服务器? 通过查阅相关资料和⾃⼰理解总结如下: DNS(Domain Name Server,域名服务器)是进⾏域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保 存了⼀张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某⼀台计算机或计算机组 的名称,⽤于在数据传输时标识计算机的电⼦⽅位(有时也指地理位置)。域名是由⼀串⽤点分隔的名字组成的,通常包含组织名,⽽且始 终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。 1. 执⾏"ping ⽹关"操作,捕获⽹络数据,再马上执⾏"arp –a"并记录⽹关ip地址绑定的物理地址。 屏幕参数解析如下: 通过arp -a可以看到此处我们的⽹关的物理地址为:00-00-5e-00-01-06. 2.1 在捕获的⽹络数据中通过对"协议"字段排序(⽤⿏标左键点击protocol字段两次),找到这次ping操作产⽣的8个ICMP数据,其中 有四个ICMP请求,四个ICMP响应,请求与响应应该是交替出现。 实验探究:什么是ICMP? 通过查阅相关资料和⾃⼰理解总结如下: ICMP是(Internet Control Message Protocol)Internet控制⽂协议。它是TCP/IP协议族的⼀个⼦协议,⽤于在IP主机、路由器之间 传递控制消息。控制消息是指⽹络通不通、主机是否可达、路由是否可⽤等⽹络本⾝的消息。这些控制消息虽然并不传输⽤户数据,但是对 于⽤户数据的传递起着重要的作⽤。 由上可以看出:ICMP请求与ICMP响应的确是交替出现的。由图我们可以看到我们的主机第⼀次ICMP请求⽹关地址,⽹管地址给予回应: 这⾥主要是说明侦测远端主机存在。 第⼆次ICMP请求⽹关地址,⽹管地址给予回应:这⾥作⽤是在建⽴及维护路由资料。 第三次ICMP请求⽹关地址,⽹管地址给予回应:这⾥是重导资料传送路径(ICMP重定向)。 第四次ICMP请求⽹关地址,⽹管地址给予回应:这⾥主要是进⾏资料流量控制。 2.2选择第⼀个ICMP请求,检查这个⽹络数据的整体封装关系——应该是ICMP数据封装在IP数据中,IP数据封装在帧中。 从以上三张截图可以看出:从上到下分别是帧以太⽹协议、链路层协议、IP协议、⽹际⽂控制协议,这三张图对应着看的确ICMP数据封 装在IP数据中,IP数据封装在帧中。 2.3记录该⽹络数据块"帧"层次的⽬的物理地址、源物理地址、帧类型,印证与前⾯得到的本机物理地址、⽹关物理地址是否⼀致,帧类 型是否是"0800",思考⼀下为什么是这样。 从链路层协议可以看出:源物理地址c8:d3:ff:3d:89:8b与我本机物理地址c8:d3:ff:3d:89:8b⼀样;⽬的物理地址00-00-5e-00-01-06 与⽹关物理地址00-00-5e-00-01-06也⼀样。帧类型是0800。 实验探究:帧类型为什么是"0800"? EtherType 是以太帧⾥的⼀个字段,⽤来指明应⽤于帧数据字段的协议。该类字段值取⾃ IEEE EtherType 字段寄存器。EtherType 字 段是个极限空间,因此其分配是有限的。所以Ethernet II类型以太⽹帧格式⽤2个字节标识出以太⽹帧所携带的上层数据类型,⽽16进制数 0x0800代表IP协议数据,所以在此帧类型是0800,因为他是IP协议数据。 2.4记录该⽹络数据块"IP数据"层次的⽬的IP地址、源IP地址,印证与前⾯得到的本机IP地址、⽹关IP地址是否⼀致,记录"协议"字 段的值。 屏幕参数说明:源IP地址10.1.246.149与我本机IP地址10.1.246.149⼀样;⽬的IP地址10.1.244.1与⽹关IP地址10.1.244.1也⼀样。 协议字段值说明如下: version:版本号4;header length:IP⽂头部20字节(说明选项字段为0); Diff

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开,静待绽放!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值