IP 协议分析《实验报告》
目录
一、 实验目的
二、实验设备和环境
三、实验记录
1、实验环境搭建
2、IP 协议分析
1.设置抓包接口
2.IP 报文分析
3.报文长度计算
4.生存时间 TTL
5.分析总结
3、IP分片
1.IP 分片简介
2.捕获分组
3.结果分析
一、 实验目的
1、掌握 IP 协议数据报格式;
2、理解 IP 分片与重组;
3、掌握 IP 协议分析方法。
1、硬件设备:PC 机或笔记本电脑;
二、实验设备和环境
2、软件:H3C Cloud Lab、Wireshark。
三、实验记录
1、实验环境搭建

在 RA、RB 上分别配置静态路由,并验证配置结果(PC_5 能够 ping 通 PC_7)。配置完成后,在 RA、RB 上保存配置文件(save)。



2、IP 协议分析
1.设置抓包接口
启动所有设备,设置 3 个抓包接口:
PC_4 的 GE_0/1
RB 的 GE_0/0
PC_6 的 GE_0/1



2.IP 报文分析
启动 PC_4 命令行终端,从 PC_4 ping PC_7。
从 PC_4 的 GE_0/1 抓包窗口中选取对应的 2 条 ICMP 记录(ICMP request 和 reply 各一条)。


Internet Protocol Version 4, Src: 192.168.1.4, Dst: 192.168.1.5 ip 数据报
0100 .... = Version: 4 版本 ipv4
.... 0101 = Header Length: 20 bytes (5) 首部长度 Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) Total Length: 84 总长度
Identification: 0x0001 (1) 标识
000. .... = Flags: 0x0 标志
...0 0000 0000 0000 = Fragment Offset: 0 Time to Live: 255 生存时间
Protocol: ICMP (1) 协议
Header Checksum: 0x384e [validation disabled] 首部检验和
[Header checksum status: Unverified] Source Address: 192.168.1.4 源 IP Destination Address: 192.168.1.5 目的 IP
Internet Control Message Protocol
3.报文长度计算

4.生存时间 TTL



| 抓包接口 | Identification | Time to live(TTL) |
| PC_4 GE0_1 | 0X0001 | 255 |
| PC_6 GE0_1 | 0X000b | 253 |
| RB GE0_0 | 0X000b | 254 |
5.分析总结
限制数据包在网络中的生命周期:TTL 值用于限制数据包在网络中的传输时间或跳转次数。当数据包在网络中传输时,每经过一个路由器,TTL 值就会减 1。当 TTL 值减至 0 时,数据包会被丢弃,从而防止数据包无限制地在网络中循环。
防止路由循环:在复杂的网络环境中,路由循环是一个常见的问题。TTL 值的存在可以有效地防止路由循环。当数据包在网络中传输时,如果遇到了之前已经访问过的路由器,由于 TTL 值已经减至 0,数据包会被丢弃,从而避免了路由循环的发生。
控制数据包的传输路径:TTL 值还可以用于控制数据包的传输路径。在某些情况下,为了避免数据包经过某些特定的路由器或网络段,可以通过设置合适的 TTL 值来实现。
总之,生存时间(TTL)在计算机网络中扮演着非常重要的角色,它可以有效地限制数据包在网络中的生命周期、防止路由循环以及控制数据包的传输路径。
3、IP分片
1.IP 分片简介
IP 分片是网络上传输 IP 报文的一种技术手段。IP 协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组
不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层 MTU(最大传输单元)。常见以太网的 MTU 为 1500,若 IP 协议在传输数据包时,IP 报文长度大于转发接口的 MTU,则将数据报文分为若干分片进行传输,分片报文到达接收方时,由接收方完成重组。

标识符(Identification)占 2 字节,在 ICMP 报文中 ICMP request 和对应的 reply 有同样的标识符;同一个 ICMP 报文的各分片具有同样的标识符。
标志占 3bit,包括 R 位、DF 位、MF 位(各占 1bit)
R 位:保留位;
DF 位:是否允许分片;为 0 表示分片,而为 1 表示不分片;
MF 位:该分片后是否还有其它分片;为 1 表示其后还有分片,为 0 表示这是最后一片。
2.捕获分组

查看 wireshark 抓包列表,在“应用显示过滤器”栏输入“icmp or ip”。选取一个 ICMP request分组,可以看到与其相连的分片分组。如下图所查看 wireshark 抓包列表,在“应用显示过滤器”栏输入“icmp or ip”。选取一个 ICMP request


表明 Frame 3319、3320、3321、3322 是同一个 ICMP 报文的分片。




3.结果分析

相关文章:
IP 协议分析《实验报告》
目录 一、 实验目的 二、实验设备和环境 三、实验记录 1、实验环境搭建 2、IP 协议分析 1.设置抓包接口 2.IP 报文分析 3.报文长度计算 4.生存时间 TTL 5.分析总结 3、IP分片 1.IP 分片简介 2.捕获分组 3.结果分析 一、 实验目的 1、掌握 IP 协议数据报格式&…...
人工智能开发实战matplotlib库应用基础
内容导读 matplotlib简介绘制直方图绘制撒点图 一、matplotlib简介 matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成高质量的图形。 matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。 我们只需几行代码…...
Android 源码集成可卸载 APP
android系统包含三类APP: 1、可自由卸载APP安装在 /data/app目录下。 2、系统APP放在 /system/app目录。 3、特权APP放在 /system/priv-app目录。 系统编译后,打包前, /data分区不起作用,因此系统打包前,可以先将APP全部拷贝到 /…...
cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带
编写方向:本人就不泛泛的编写一篇什么一文学会cJSON了,没什么突出点,也就我水水字数,你们看来看去也不懂,本人是从上阿里云传信息接触的cJSON的,我就此写一篇针对性的文章,希望对大家有用&#…...
【Git】Clone
当git clone失败时,出现 RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8) 错误,可能由于网络连接不稳定或仓库太大导致的。 可以尝试以下几种方法来解决这个问题: 增加 Git 的缓冲区大小: git confi…...
web开发 之 HTML、CSS、JavaScript、以及JavaScript的高级框架Vue(学习版2)
一、前言 接下来就是来解决这些问题 二、 Ajax 1.ajax javscript是网页三剑客之一,空用来控制网页的行为的 xml是一种标记语言,是用来存储数据的 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-…...
【课程学习】信号检测与估计II
b站 文章目录 1-概述 1-概述 线性、正交、平稳、高斯 研究线性模型,采用正交化方法,假设信号平稳,考虑信号的统计特性是高斯的。 本学期考虑,非线性、非正交、非平稳、非高斯。 阵列处理 1980-1990 MUSIC 稀疏性 2006-2012 LASS 时…...
【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释!
【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释! 【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释! 论文地址: https://arxiv.org/abs/1505.04597 代码地址&a…...
DPDK基础入门(十):虚拟化
I/O虚拟化 全虚拟化:宿主机截获客户机对I/O设备的访问请求,然后通过软件模拟真实的硬件。这种方式对客户机而言非常透明,无需考虑底层硬件的情况,不需要修改操作系统。 半虚拟化:通过前端驱动/后端驱动模拟实现I/O虚拟…...
OpenCV_图像旋转超详细讲解
图像转置 transpose(src, dst); transpose()可以实现像素下标的x和y轴坐标进行对调:dst(i,j)src(j,i),接口形式 transpose(InputArray src, // 输入图像OutputArray dst, // 输出 ) 图像翻转 flip(src, dst, 1); flip()函数可以实现对图像的水平翻转…...
关于 OceanBase 4.x 中被truncate的 table 不再支持进回收站的原因
近期,OceanBase的问答社区中收到了不少用户的询问,关于OceanBase 3.x版本支持被truncate的table进入回收站的功能,为何在升级到4.x版本后不再支持了?为了解答大家的疑惑,我们将通过这篇文章来浅析 OceanBase在4.x版本中…...
Numpy索引详解(数值索引,列表索引,布尔索引)
数值索引 数值索引类似列表索引操作使用[],参数为下标,[0,len-1),高维数组的索引使用多个[]连用分别代表一维索引,二维索引... import numpy as np import torchnp.random.seed(1) data1 np.arange(5) data2 np.arange(15).reshape(3,5) …...
大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
三年 Sparker 都不一定知道的算子内幕
一、如何在 mapPartitions 中释放资源 mapPartitions是一种对每个分区进行操作的转换操作,于常用的map操作类似,但它处理的是整个分区而不是单个元素。mapPartitions的应用场景适合处理需要在每个分区内批量处理数据的场景,通常用于优化性能…...
PG表空间
目录标题 PG表空间PostgreSQL表空间的最佳实践是什么?如何在PostgreSQL中创建和管理自定义表空间?PostgreSQL表空间对数据库性能的具体影响有哪些?在PostgreSQL中,如何迁移数据到不同的表空间以优化存储布局?PostgreSQ…...
谷粒商城のElasticsearch
文章目录 前言一、前置知识1、Elasticsearch 的结构2、倒排索引 (Inverted Index)2.1、 索引阶段2.2、查询阶段 二、环境准备1、安装Es2、安装Kibana3、安装 ik 分词器 三、项目整合1、引入依赖2、整合业务2.1、创建索引、文档、构建查询语句2.2、整合业务代码 后记 前言 本篇介…...
排队免单模式小程序开发
开发一个排队免单模式的小程序涉及多个方面,包括需求分析、界面设计、后端开发、数据库设计以及测试上线等。下面我将详细介绍每个步骤的概要: 1.需求分析 明确目标:首先确定小程序的核心功能,即排队免单模式的具体实现方式。例如…...
从OracleCloudWorld和财报看Oracle的转变
2024年9月9-12日Oracle Cloud World在美国拉斯维加斯盛大开幕 押注AI和云 Oracle 创始人Larry Ellison做了对Oracle战略和未来愿景的主旨演讲,在演讲中Larry将AI技术和云战略推到了前所未有的高度,从新的Oracle 23c改名到Oracle23ai,到Oracl…...
搭建 PHP
快速搭建 PHP 环境指南 PHP 是一种广泛用于 Web 开发的后端脚本语言,因其灵活性和易用性而受到开发者的青睐。无论是开发个人项目还是企业级应用,PHP 环境的搭建都是一个不可忽视的基础步骤。本指南将带您快速学习如何在不同平台上搭建 PHP 环境&#x…...
kubernetes技术详解,带你深入了解k8s
目录 一、Kubernetes简介 1.1 容器编排应用 1.2 Kubernetes简介 1.3 k8s的设计架构 1.3.1 k8s各个组件的用途 1.3.2 k8s各组件之间的调用关系 1.3.3 k8s的常用名词概念 1.3.4 k8s的分层结构 二、k8s集群环境搭建 2.1 k8s中容器的管理方式 2.2 k8s环境部署 2.2.1 禁用…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
