计算机网络学习:网络层IP数据报、ICMP协议 看一篇就够了!(含具体实验演示)

article/2025/9/16 3:29:19

目录

一、前言

二、IP数据报

1、版本

2、首部长度

3、区分服务

4、总长度

5、标识

6、标志

7、片偏移

8、生存时间

9、协议

10、首部检验和

三、Cisco模拟器实验

四、ICMP协议

1、终点不可达

2、源点抑制

3、超时

4、参数问题

5、改变路由(重定向)

6、回送请求和回答

7、时间戳请求和回答

五、ICMP实践应用


一、前言

在上一篇中开始了网络层的探索,《计算机网络学习:分组转发和路由选择、ARP协议》主要记录了网络层的核心功能:分组转发和路由选择。同时也讲解了重要的ARP逆地址解析协议。网络层内容非常丰富,这次准备对TCP/IP体系中的两个重要标准进行详细记录:IP数据报和ICMP协议

这段时间写关于计算机网络方面的知识,我的初衷是对以前学习过的内容进行一个系统的整理,梳理思路,将零散的知识碎片集成一个相对完善的知识体系,这样能够更好地去理解知识。最近我领悟了一个道理:不要急着往前走,偶尔回顾自己所学所经历,善于总结,才能走得更轻松更远!哈哈哈,尝试着文学式表达感悟,似乎与理工科格格不入,不过有时候会理工科的文学更有趣。

进入正题,看完这篇能学到什么呢?

  1. IP数据报格式和首部字段的功能;
  2. Cisco实验验证实际通信过程中IP数据报具体内容;
  3. ICMP协议以及报文内容;
  4. ICMP在实际中的应用。

值得一提,我觉得 学习IP数据报和ICMP协议的基本内容 看完这篇就够了!

二、IP数据报

学习一个知识,我们往往倾向于能够直观地感知,而不喜欢抽象的概念,所以这里我先放上图片(来源:百度百科)。

先看看IP数据报长什么样子,我们才能更好地理解它。

这张图我觉得是最清晰直观的,一眼就可以发现IP数据报的格式和基本功能内容,下面就来瞧瞧每个区域分别负责什么。

一个IP数据报由首部和数据两个部分组成。首部的前部分属于固定部分,占20个字节;后面部分属于可变部分,长度时可变的。

首部固定部分主要字段解析:

1、版本

从图中可以看到,版本字段占4位。记录着通信双方使用的IP协议版本,比如IPv4、IPv6,目前广泛使用的是IPv4

2、首部长度

占4位,表示的单位为4字节,比如1111(十进制的15)就代表首部长度为60字节(15*4=60).以4字节的整数倍划分,不足则填充。最常用的首部长度为0101(20字节)

3、区分服务

占8位,用以获得更好的服务。实际中未使用。

4、总长度

首部长度和数据长度之和。占16位。因此,最大长度可知为16位都是1,就是65535字节。

在IP层下层数据链路层存在自己的帧格式,帧格式的数据字段最大传送单元(MTU)是1500字节。尽可能长的数据报能够提高传输效率,实际中数据报长度很少大于1500字节。所以,IP标准规定:所有主机和路由器的IP数据报长度不能小于576字节。

如果数据报长度超过MTU,则将进行分片后再传送,与后面的片偏移相关。然后总长度就成了分片后每个分片的首部和数据的长度之和

5、标识

占16位。在实际IP中,维持了一个计数器,每产生一个数据报,计数其加1,存放到该字段。IP是无连接服务,不存在按序接收问题,该标识不是序号,而是在进行分片之后对相同的数据报进行标识属于同一个数据报的标识相同,以便到达目的后被重新封装为原来的数据报

6、标志

占3位。目前使用2两位有意义的。

最低位:MF(More Fragment)还有分片,MF=0时说明是最后一个分片。

中间位:DF(Don‘t Fragment)不能分片,DF=0时才能分片。

7、片偏移

占13位。用于记录较长分组中,一个分片在原数据报中的相对位置。片偏移以8字节为单位,长度是8字节的整数倍。

假设一个数据报总长度为3820字节。首部20字节和数据3800字节。现在要求长度不超过1420字节,那么它的每个分片为多少呢?

我们简单分析一下,数据部分尽可能长的可以分为1400,1400,1000三个分片,这样再加上首部满足小于1420字节。

分片一:0-1399字节,因此片偏移=0/8=0

分片二:1400-2799字节,片偏移=1400/8=175

分片三:2800-3800字节,片偏移=2800/8=350

很容易就计算出每个分片的片偏移。

8、生存时间

TTL(Time To Live)占8位。最大值255.每个数据报都有TTL,防止被错误路由在网络中不断循环,消耗网络资源。在实际中,TTL表示的是跳数而不是时间,指明数据报在网络中最多可经过多少个路由器。

9、协议

占8位。指明数据报携带的数据是使用什么协议,方便目的主机的IP层将数据交给对应的程序处理,这里列举几个。

协议ICMPIGMPTCPUDPOSPF
字段值1261789

10、首部检验和

占16位。只校验数据报首部,不包括数据部分。这样可以减少计算量,同时不采用复杂的CRC检验码,而是使用简单的反码算术运算

反码算术运算:将数据报首部划分为多个16位的序列,16位序列相加之和取反码,写入检验和。接收方再将首部16位序列(包含检验和的16位)相加之和取反码,结果为0则说明数据报正确,否则丢弃。

三、Cisco模拟器实验

现在做一个简单的实验,模拟两台主机进行通信,然后查看IP数据报的格式。

实验如图,现在PC0发送ping命令给PC1.

这就是实际中IP数据报的格式,与开始介绍的图一致:

这里使用到ping命令,自然联想到是基于ICMP协议进行通信的。接下来看看ICMP协议具体是什么。

四、ICMP协议

网际控制报文协议就是熟悉的ICMP全称

还是先放一个直观容易理解地图片(来源:百度百科)

ICMP报文作为IP数据报的数据,加上IP数据报首部,组成IP数据报被发送出去。

前4个字节是固定格式:包括类型、代码、检验和三个字段。

ICMP报文种类有差错报告报文和询问报文,几种常用的报文类型有:

差错报告报文有5种类型:

1、终点不可达

当路由器或主机不能交付数据报时,就向发送方发送源点不可达报文。

2、源点抑制

由于拥塞而丢弃数据,就发送源点抑制报文告知发送方降低放松频率。

3、超时

当TTL减少至零时,说明目的接收方没有接收数据报,发送超时报文告知发送方。

4、参数问题

接收方收到的数据首部的一些字段不正确时,发送参数问题报文。

5、改变路由(重定向)

发送方按路由表中的默认路由发送数据给目的主机,因为每个路由器都有一个最佳路由到达每个网络。所以如果该路由不是最佳的,路由器就把新的路由信息发送给源主机,告知下次发送时有更好地路由选择。

询问报文有两种类型:

6、回送请求和回答

上面使用到的ping命令就是发送了询问报文,测试目的是否可到达。

7、时间戳请求和回答

请某个主机或路由器回答当前的日期时间,可以用来进行时钟同步和测量时间。

五、ICMP实践应用

在上面的模拟实验也可以看到ICMP报文的内容。

使用ping命令测试目的主机:

在自己电脑的命令提示符cmd测试:

ping www.csdn.net

可以看到询问报文应答的一些信息。

另外,tracert命令可以探测路由信息,也是发送ICMP回送请求报文

tracert www.csdn.net通过最多 30 个跃点跟踪
到 www.csdn.net [39.105.14.128] 的路由:

这次详细记录了网络层IP数据报和ICMP协议的内容,直观的演示和实践可以更好地掌握这方面的知识。

这段时间写关于计算机网络方面的知识,我的初衷是对以前学习过的内容进行一个系统的整理,梳理思路,将零散的知识碎片集成一个相对完善的知识体系,这样能够更好地去理解知识。最近我领悟了一个道理:不要急着往前走,偶尔回顾自己所学所经历,善于总结,才能走得更轻松更远!哈哈哈,尝试着文学式表达感悟,似乎与理工科格格不入,不过有时候会理工科的文学更有趣。

你是不是觉得 学习IP数据报和ICMP协议的基本内容 看完这篇就够了呢!

如果觉得不错欢迎“一键三连”哦,点赞收藏关注,评论提问建议,欢迎交流学习!一起加油进步! 


我的CSDN博客:https://csdn-czh.blog.csdn.net/article/details/115956836


http://chatgpt.dhexx.cn/article/JS21jAea.shtml

相关文章

ip数据报格式;ip数据报分片

点击打开链接 IPv4数据报格式: 上图表示的数据,最高位在左边,记为0位;最低位在右边,记为31位。在网络中传输数据时,先传输0~7位,其次是8~15位,然后传输16~23位,最后传输…

3.7计算机网络(IP数据报格式,IP数据报分片,IPv4)

目录 🍓IP 🍇1.IP数据报格式 🍑2.IP数据报分片 🥦3.IPv4 1.分类的IP地址 2.网络地址转换NAT 🧊个人主页:个人主页 🌟系列专栏:计算机网络专栏 🍓IP 🍇1…

IP数据报的发送和转发过程

本文主要讲述了 IP 数据报的发送和转发过程,参考:计算机网络微课堂 IP 数据报的发送和转发过程包含以下两部分: 主机发送 IP 数据报路由器转发 IP 数据报 说明:后续举例忽略了 ARP 协议获取目的主机或路由器接口的 MAC 地址的过…

IP数据报头部

1.4位版本号:对于ipv4,其值是4 2.4位头部长度:表示ip的头部有多少4字节。4位最大表示15,因此ip数据报头部最长是60字节 3.16位总长度:以字节为单位。最大的位2^16-1,但是由于MUT的限制,超过MUT的都被分片…

IP数据报报头详解

在IP网络中传输的单位称为IP数据包,它包括IP报头与更高层协议的相关数据。IP数据包的报头至少为20个字节,其中包括版本号,报头长度,服务类型,数据报总长度,标识,标志,片偏移,生存时间…

[计算机网络] UDP数据字段 划分 IP数据报

题目 : 一个UDP用户数据报的数据字段为8192字节。在链路层要使用以太网来传送。 试问应当划分为几个IP数据报片?说明每一个IP数据报片的数据字段长度和 片偏移字段的值。 分析 : 首先我们知道 U D P 数 据 报 首 部 8 字 节 数 据 部 分 UDP数据报首部8字节数据部分 UDP数据…

IP 数据报首部分析

来来来, 爷们. 不是一直说纸上得来终觉浅么. 今咱就抓个数据报具体看一看真实网络中的 IP 报首部. 操作方法很简单, 使用wireshark进行抓包. 抓包后随便找个包看一下就行, 毕竟所有通信的包都需要经过网络层.(同时, wireshark会对协议的相关信息给出标识, 更方便我们查看) 其中…

​IP数据报的格式(计算机网络)

目录 一、IP 数据报由首部和数据两部分组成 二、IP 数据报的分片 三、IP数据报分片实例 四、IP 数据报首部的固定部分中的各字段 五、协议字段的作用 一、IP 数据报由首部和数据两部分组成 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4…

Wireshark分析IP数据报

Wireshark分析IP数据报 1. IP数据报格式 总概 2. IP数据报首部的固定部分各字段 版本【4位】:IPv4或IPv6首部长度【4位】:单位是32bit(4字节),比如:首部最小长度为20字节,此时为:…

IP数据报的格式

IP数据报的格式能够说明IP协议具有什么功能,在TCP/IP的标准中,各种数据格式常以32位(4字节)为单位来描述。 一个IP数据包有首部和数据两部分组成。首部的前一部分是固定长度,占20字节,是所有IP必须有的。在…

图解IP数据报格式

IP数据报格式详解 IP数据报的首部格式及其内容是实现IP协议的主要功能的基础,因此我们有必要搞清楚这部分的内容。 一个IP数据报由20字节的固定部分和最大40字节的可变部分组成。 ■ 固定部分:指每个IP数据报首部都必须包含的部分。 ■ 可变部分&#…

计算机网络---IP数据报

(一)IP数据报格式 TCP/IP协议栈 IP数据报格式: 版本:IP协议的版本号 IPv4/IPv6 首部长度:单位是4B,最小为5,以4字节为单位 固定部分20B 区分服务:指示期望获得哪种类型的…

【IP协议(一)】——IP数据报格式及其含义,IP数据报的切分

💂 个人主页:努力学习的少年🤟 版权: 本文由【努力学习的少年】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 🚀 IP数据报格式 版本:占4位,指…

IP数据报的首部

IP数据报的首部 注:IP数据报的格式,能够说明IP协议都具有什么功能。 1. IP数据报首部——固定部分 1.1 版本 占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。IP协议版本号为4(即IPv4),IP协议版本号为6(即IPv6)…

计算机网络——IP数据报分析

目录 🛴一、IP数据报简介 🛹二、Wireshark抓包分析 🛴一、IP数据报简介 版本:占4比特,表示IP协议的版本。通信双发使用的IP版本必须一致 首部长度:占4比特,表示IP数据报首部的长度。该字段的取…

IP数据报格式详解

IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。 IP…

网络层——IP数据报详解

IP数据报格式 各个字段的分析: 版本 4位    指IP协议的版本,通信双方使用的IP协议版本必须保持一致。主要用两个版本IPV4、IPV6首部长度 4位   4位表示的最大十进制数是15。注意,首部长度字段所表示数的单位是32位(也就是4个…

IP数据报

文章目录 前言一、IP数据报的格式1.IP数据报2.数据报中各个字段的意义 二、ICMP(Internet控制报文协议)1.报文格式2.常见应用 三、ARP协议四、路由表 前言 在前面的学习中我们学习了数据的封装和解封装,了解了封装是从发送端由上向下一层一层…

IPv4数据报的首部格式

版本:占4比特,表示IP协议的版本,通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4 首部长度占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示IP数据报首部只有…

EXE4J 错误提醒 Pleasedefine EXE4J_JAVA_HOME to point to an installes 64-bit JDK or JRE

EXE4J 错误提醒 Please define EXE4J_JAVA_HOME to point to an installed 64-bit JDK or JRE 首先查看上一步的提醒,这里显示支持的版本为最小1.8到最大11,而我环境变量配置为13,版本过高 解决办法 1、添加符合版本的jdk 2、升级exe4j …