当前位置: 首页 > news >正文

【计算机网络】lab4 Ipv4(IPV4的研究)

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光

目录

1. 前言

2. 实验目的

3. 实验需求

4. 实验过程

4.1 Tracert命令

4.2 Inspect the trace

4.3 IP Packet Structure

4.4 Internet Paths

4.5 Header Checksum

5. 总结 


1. 前言

本系列重点针对山东大学-软件学院-计算机网络实验的任务。

希望通过实验,一方面加强大家对理论知识的认识,另一方面提升大家的动手能力。

也希望我的博客能够给学弟学妹们的学习提供一些帮助。

2. 实验目的

        了解 IP(互联网协议)的详细信息。IP 是整个互联网使用的网络层协议。我们将研究 IP 第 4 版,因为它已普遍部署,而 IP 第 6 版只是部分部署。

3. 实验需求

        Wireshark:本实验使用Wireshark软件工具来捕获和检查数据包跟踪。数据包跟踪是对网络上某个位置的流量的记录,就好像对通过特定线路的所有位拍了快照一样。数据包跟踪记录每个数据包的时间戳,以及组成数据包的位,从低层报头到高层内容。Wireshark可以在大多数操作系统上运行,包括Windows、Mac和Linux。它提供了一个图形用户界面,显示数据包的顺序以及解释为协议报头和数据的位的含义。它根据包的类型对包进行颜色编码,并有多种方法来过滤和分析包,让您调查网络协议的行为。Wireshark广泛用于排除网络故障。

        wget / curl: 本实验室使用 wget(Linux 和 Windows)和 curl(Mac)来获取网络资源。wget 和 curl 是命令行程序,可让你获取 URL与获取和执行整个网页的网页浏览器不同,wget 和 curl 可让你精确控制获取的 URL 以及获取的时间。在 Linux 下,可以通过软件包管理器安装 wget。在Windows下,wget以二进制形式提供;请在http://www.gnu.org/software/wget/ 上查找下载信息。在 Mac 下,curl 会随操作系统一起安装。两者都有很多选项(请尝试使用 “wget --help” 或 “curl --help” 查看),但只需使用 “wget URL ”或 “curl URL ”就能获取URL。

wget获取网页并不解释网页,同时可以获取时间准确位置等URL信息

        traceroute / tracert: 本实验室使用 “traceroute ”来查找从计算机到远程互联网主机的路由器级路径traceroute 是一种标准的命令行工具,用于查找计算机使用的互联网路径。它广泛用于网络故障排除。它预装在 Window 和 Mac 上,在 Linux 上可以使用软件包管理器进行安装。在 Windows 上,它被称为 “tracert”。它有多种选项,但只需发出 “traceroute www.uwa.edu.au ”命令,计算机就会找到并打印出远程计算机的路径(此处为 www.uwa.edu.au)。

4. 实验过程

4.1 Tracert命令

        在远程服务器上选择一个 URL,例如 http://www.uwa.edu.au/,然后检查是否能用 wget 或 curl 抓取内容,例如 “wget http://www.uwa.edu.au/”或 “curl http://www.uwa.edu.au/”。这将获取资源并将其写入文件(wget)或屏幕(curl)。使用 wget 时,需要一个状态代码为 “200 OK ”的响应。如果获取失败,请尝试不同的 URL;请记住,您可能是用快捷方式引用 URL,而浏览器必须通过操作才能找到想要的内容,例如,http://mit.edu 可能实际上是 http://web.mit.edu/index.html。如果任何 URL 似乎都不起作用,那么请调试 wget/curl 的使用或网络连接。

        假定你的计算机具有 IPv4 连接,则按以下步骤捕获跟踪;或者,你也可以使用提供的跟踪。我们要收集的跟踪是一个从远程服务器获取的简单网页,这将导致计算机发送和接收 IP 数据包,然后对远程服务器进行跟踪路由,以找到它在互联网上使用的路径

        对同一远程服务器进行跟踪路由,检查是否能发现网络路径信息。在 Windows 上,键入 “tracert www.uwa.edu.au”。在 Linux / Mac 上,键入 “traceroute www.uwa.edu.au”。如果你使用的是 Linux / Mac 系统,并且在 NAT 后面(如大多数家庭用户或虚拟机用户),那么在 traceroute 中使用 -I 选项(大写 i),例如,“traceroute -I www.uwa.edu.au”。这将使 traceroute 发送类似 tracert 的 ICMP 探测,而不是通常的 UDP 探测;ICMP 探测能更好地通过 NAT 盒。下面是一个成功的例子;请保存输出结果,因为后面的步骤会用到它。请注意,traceroute 的运行时间可能长达一分钟。每一行都显示了从运行 traceroute 的计算机到目标目的地的下一 IP 跳的信息。带 “*”的行表示网络没有回应,无法识别互联网路径中的该网段。一些未识别的网段是意料之中的。但是,如果 traceroute 无法正常工作,那么几乎所有路径都会出现 “*”。在这种情况下,请尝试不同的远程服务器、试验 traceroute 或使用提供的跟踪。

这里我执行的命令是:

wget https://www.sdu.edu.cn/
tracert www.sdu.edu.cn

wget https://www.sdu.edu.cn/:

ip.addr == 202.194.7.118 :

 tracert www.sdu.edu.cn:

ip.addr == 202.194.7.118 && icmp:

使用 tcp port 80 过滤数据包,得到Http和Web服务器的数据包:

4.2 Inspect the trace

Version: 版本号,0100,即为ipv4

Header length: IP报头长度,20字节

Differentiation Services:包含位标志,表示数据包是否应该是处理路由器的服务质量和拥塞指示。

Total Length: IP包总长,这里是92字节。

Identification: 用于分组片段,当一个大的IP数据包作为多个更小的片段发送,称为片段。

Flags:偏移量字段,也与碎片相关。观察它们共享字节。

Fragment Offset: 片偏移,这里是0。表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包。

Time to Live: 生存时间,这里是2。当IP包进行传送时,先会对该字段赋予某个特定的值。当IP包经过每一个沿途的路由器的时候,每个沿途的路由器会将IP包的TTL值减少1。如果TTL减少为0,则该IP包会被丢弃。这个字段可以防止由于路由环路而导致IP包在网络中不停被转发。

Protocol: 协议,这里是0x06表示TCP协议

Header Checksum: 头部校验,这里是0x0000。16bit的首部校验和字段用来使接收端检验收到的报文是否正确。该字段只对IP首部计算校验和不包含后面的数据字段。原因是IP的上层协议比如ICMP、IGMP、TCP、UDP协议的各自首部中均含有同时覆盖首部和数据的校验和。

Source: 源地址

Destination: 目的地址

4.3 IP Packet Structure

问题1:What are the IP addresses of your computer and the remote server?

我的计算机IP地址10.27.196.173 ,远程服务器地址10.27.255.254

问题2:Does the Total Length field include the IP header plus IP payload, or just the IP payload?

        包括IP报头和IP有效载荷

问题3: How does the value of the Identification field change or stay the same for different packets? For instance, does it hold the same value for all packets in a TCP connection or does it differ for each packet? Is it the same in both directions? Can you see any pattern if the value does change?

        在TCP连接的不同数据包之间,标识字段通常会有所变化。这是因为标识字段的目的是帮助接收方将分段的数据包重新组装成完整的数据流。通过改变标识字段的值,接收方能够识别并正确组装数据包。标识字段在同一方向上的数据包中会保持连续的递增序列,但在不同方向上的数据包之间可能会有不同的值。这就是TCP协议三次握手的内容,标识字段双方一开始是由自己确定的,但是seq会影响对方的ack,彼此牵制。

问题4:What is the initial value of the TTL field for packets sent from your computer? Is it the maximum possible value, or some lower value?

        初始值为254。我认为是可能的最大值。

问题5: How can you tell from looking at a packet that it has not been fragmented? Most often IP packets in normal operation are not fragmented. But the receiver must have a way to be sure. Hint:you may need to read your text to confirm a guess.

        根据DF位(Don’t fragment)来判断,若其为1,则不分片(禁止分片)

问题6:What is the length of the IP Header and how is this encoded in the header length field? Hint: notice that only 4 bits are used for this field, as the version takes up the other 4 bits of the byte.You may guess and check your text.

        Ip报头长度为20byte,0101表示5,由于IP头部长度是以4字节为单位进行编码的,所以实际的IP头部长度需要将该字段的值乘以4才能得到正确的长度。即5*4=20byte

4.4 Internet Paths

        traceroute是一种用于发现网络路径的实用工具。它通过向源主机到目标主机的每一跳路由器发送请求(ICMP TTL超时消息),然后逐跳地获取响应。响应中会标识出每个路由器的IP地址。traceroute的输出通常每行打印一跳的信息,包括往返时间、路由器的IP地址和DNS名称。DNS名称有助于确定路由器所属的组织。由于traceroute利用了常见的路由器实现方式,因此不能保证在路径上的所有路由器上都能正常工作,当某些部分无法正常工作时,通常会看到"*"的响应。

4.5 Header Checksum

        现在,我们将通过验证数据包来查看 IP 报头校验和计算。校验和算法每次增加 16 位的报头字节。重新计算整个 IP 报头的和(包括校验和值)将产生零的结果。对我们来说,一个复杂的因素是,这是使用 1s 补数运算完成的,而不是通常用于计算的 2s 补数运算。

  • 将字段分成10个2Byte。
  • 使用常规加法将这 10 个单词相加。
  • 要计算到目前为止的加法的1 位补和,取任何前导数字(超过单词大小的4位)并将它们加回余数。例如:5a432 将变成 a432 + 5 = a437。
  • 最终的结果 应该是 0xfff。这实际上是0的1s补码形式,或者更准确地说 0xffff 是 -0(负零 ),而 0x0000 是 +0(正零)。

分组结果为:4500 0028 53d6 4000 2606 431e 6ef2 4634 0a1b fe9a

相加结果为:76f1f

取出超过16位的前导数字,并加回余数:f1f + 7 = f26

最终结果应该是0xffff(-0)的形式。结果不是,校验和错误。与wireshark中显示的结果相同

5. 总结 

本文到这里就结束啦~~
如果觉得对你有帮助,辛苦友友点个赞哦~

相关文章:

【计算机网络】lab4 Ipv4(IPV4的研究)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...

Python Json格式数据处理

示例:查看和编辑 JSON 文件的 Python 程序 import json from pprint import pprintdef load_json(file_path):"""加载并解析 JSON 文件。:param file_path: JSON 文件路径:return: 解析后的 JSON 对象(字典或列表)"&quo…...

【声音场景分类--论文阅读】

1.基于小波时频图特征在声音场景分类 基于小波时频图特征在声音场景分类任务中的表现 2.增强增强高效音频分类网络 https://arxiv.org/pdf/2204.11479v5 https://github.com/Alibaba-MIIL/AudioClassfication 音频分类网络如图4所示。在此阶段,主要重点是建立一…...

Web前端界面开发

前沿:介绍自适应和响应式布局 自适应布局:-----针对页面1个像素的变换而变化 就是我们上一个练习的效果 我们的页面效果,随着我们的屏幕大小而发生适配的效果(类似等比例) 如:rem适配 和 vw/vh适配 …...

模式识别与机器学习

文章目录 考试题型零、简介1.自学内容(1)机器学习(2)机器学习和统计学中常见的流程(3)导数 vs 梯度(4)KL散度(5)凸优化问题 2.基本概念3.典型的机器学习系统4.前沿研究方向举例 一、逻辑回归1.线性回归2.逻辑回归3.随堂练习 二、贝叶斯学习基础1.贝叶斯公式2.贝叶斯决策3.分类器…...

eNSP之家----ACL实验入门实例详解(Access Control List访问控制列表)(重要重要重要的事说三遍)

ACL实验(Access Control List访问控制列表)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机。 准备工作 在eNSP里面部署设备&a…...

STM32 I2C硬件配置库函数

单片机学习! 目录 前言 一、I2C_DeInit函数 二、I2C_Init函数 三、I2C_StructInit函数 四、I2C_Cmd函数 五、I2C_GenerateSTART函数 六、I2C_GenerateSTOP函数 七、I2C_AcknowledgeConfig函数 八、I2C_SendData函数 九、I2C_ReceiveData函数 十、I2C_Sen…...

特制一个自己的UI库,只用CSS、图标、emoji图 第二版

图&#xff1a; 代码&#xff1a; index.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>M…...

Hologres 介绍

Hologres 是 阿里云 提供的一款 实时数据分析平台&#xff0c;它结合了数据仓库&#xff08;Data Warehouse&#xff09;和流式计算&#xff08;Stream Processing&#xff09;的优势&#xff0c;专为大规模数据分析和实时数据处理而设计。Hologres 基于 PostgreSQL 构建&#…...

oracle闪回表

文章目录 闪回表案例1&#xff1a;&#xff08;未清理回收站时的闪回表--成功&#xff09;案例2&#xff08;清理回收站时的闪回表--失败&#xff09;案例3&#xff1a;彻底删除表&#xff08;不经过回收站--失败&#xff09;案例4&#xff1a;闪回表之后重新命名新表总结1、删…...

蓝桥与力扣刷题(283 移动零)

题目&#xff1a;给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: …...

每日学习30分轻松掌握CursorAI:Cursor AI自然语言编程入门

Cursor AI自然语言编程入门 1. 自然语言编程概述 自然语言编程是一种革命性的编程方式&#xff0c;让开发者能够使用日常语言描述需求&#xff0c;由AI将其转换为可执行的代码。让我们通过系统化的学习来掌握这项技能。 2. 自然语言编程基础 2.1 工作原理流程图 2.2 指令模…...

Ubuntu22.04 离线安装:gcc、make、dkms、build-essential

挂载启动U盘 查看U盘对应的设备名称 sudo fdisk -l 1 # 以下就是需要挂载的U盘 Disk /dev/sdc: 14.9 GiB, 15938355200 bytes, 31129600 sectors Units: sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): …...

【竞技宝】CS2:HLTV2024选手排名TOP4-NiKo

北京时间2025年1月11日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP4选手为G2(目前已转为至Falcons)战队的NiKo。 选手简介 NiKo是一名来自波黑的CS职业选手,现年26岁。作为DOTA2饱负盛名的职业选手,NiKo在CS1.6时代就已经开始征战职业赛场。2012年,年仅15岁…...

Kali系统(Debian 10.3) 遇到的问题

目录 问题一&#xff1a;非问题 kali 基础官网与安装 问题二&#xff1a; 问题三&#xff1a; Kali系统 MySQL问题Cant connect to local MySQL server through socket /run/mysqld/mysqld.sock (2) 问题四&#xff1a;重新安装MySQL 也就是MariaDB(MariaDB 含 MySQL相关…...

【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 c语言

题目&#xff1a; P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 题目描述 伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作&#xff0c;因为他有一个漂亮的新伐木机&#xff0c;可以如野火一般砍伐森林。不过&#xff0c;Mirko…...

【神经网络中的激活函数如何选择?】

在神经网络中&#xff0c;激活函数的选择对于模型的性能和学习效率至关重要。以下是一些关于如何选择激活函数的建议&#xff1a; 一、隐藏层中的激活函数选择 ReLU及其变体&#xff1a; ReLU&#xff08;Rectified Linear Unit&#xff0c;修正线性单元&#xff09;&#xff…...

服务器多节点 Grafana、Prometheus 和 Node-Exporter Docker版本部署指南

要在多台服务器上部署 Grafana、Prometheus 和 Node-Exporter&#xff0c;并且其中一台服务器专门用于 Grafana 和 Prometheus 的部署 1. 准备工作 服务器信息&#xff1a; Server 1&#xff1a;用于部署 Grafana 和 Prometheus。 Server 2-n&#xff1a;用于部署 Node-Export…...

<C++学习>C++ Boost 算法集合操作教程

C Boost 算法集合操作教程 Boost 提供了一些非常强大的算法库&#xff0c;用于对集合进行高效的操作。这些集合算法库主要提供了便捷的接口&#xff0c;支持常见的集合运算&#xff08;如并集、交集、差集等&#xff09;、排列组合和更高级的容器操作。 1. Boost 算法库简介 …...

Jaeger UI使用、采集应用API排除特定路径

Jaeger使用 注&#xff1a; Jaeger服务端版本为&#xff1a;jaegertracing/all-in-one-1.6.0 OpenTracing版本为&#xff1a;0.33.0&#xff0c;最后一个版本&#xff0c;停留在May 06, 2019。最好升级到OpenTelemetry。 Jaeger客户端版本为&#xff1a;jaeger-client-1.3.2。…...

设计一个利用事务特性可以阻塞线程的排他锁,并且通过注解和 AOP 来实现

设计思路&#xff1a; 利用数据库表记录锁标识&#xff1a;通过唯一标识符&#xff08;如方法名 参数&#xff09;&#xff0c;我们可以在数据库中插入一条记录&#xff0c;表示当前方法正在执行。这条记录需要记录插入时间。 注解&#xff1a;通过注解标识哪些方法需要加锁&a…...

【2024年华为OD机试】 (A卷,100分)- 对称美学(Java JS PythonC/C++)

一、问题描述 题目描述 对称就是最大的美学&#xff0c;现有一道关于对称字符串的美学。已知&#xff1a; 第1个字符串&#xff1a;R第2个字符串&#xff1a;BR第3个字符串&#xff1a;RBBR第4个字符串&#xff1a;BRRBRBBR第5个字符串&#xff1a;RBBRBRRBBRRBRBBR 相信你…...

【教程】数据可视化处理之2024年各省GDP排名预测!

过去的一年里&#xff0c;我国的综合实力显著提升&#xff0c;在新能源汽车、新一代战机、两栖攻击舰、航空航天、芯片电子、装备制造等领域位居全球前列。虽然全国各省市全年的经济数据公布还需要一段时间&#xff0c;但各地的工业发展数据&#xff0c;财政收入数据已大概揭晓…...

Java 将RTF文档转换为Word、PDF、HTML、图片

RTF文档因其跨平台兼容性而广泛使用&#xff0c;但有时在不同的应用场景可能需要特定的文档格式。例如&#xff0c;Word文档适合编辑和协作&#xff0c;PDF文档适合打印和分发&#xff0c;HTML文档适合在线展示&#xff0c;图片格式则适合社交媒体分享。因此我们可能会需要将RT…...

深度学习的原理和应用

一、深度学习的原理 深度学习是机器学习领域的一个重要分支&#xff0c;其原理基于多层神经网络结构和优化算法。以下是深度学习的核心原理&#xff1a; 多层神经网络结构&#xff1a;深度学习模型通常由多层神经元组成&#xff0c;这些神经元通过权重和偏置相互连接。输入数据…...

CAPL语法基础

CAPL语法基础 目录 CAPL语法基础1. 引言2. 数据类型、变量与常量2.1 数据类型2.2 变量2.3 常量2.4 案例1&#xff1a;使用变量和常量计算圆的面积 3. 运算符与表达式3.1 算术运算符3.2 关系运算符3.3 逻辑运算符3.4 位运算符3.5 案例2&#xff1a;使用运算符实现简单的逻辑判断…...

安卓studio生成apk步骤

在写完app之后虽然能在真机上运行 但是在文件夹中找不到相应的apk &#xff0c;注意&#xff01;&#xff01;&#xff01;安卓 studio中可以自动生动生成 apk 下面是生成步骤&#xff1a; 步骤1&#xff1a;build ->make project 步骤2&#xff1a;build ->Generate si…...

Azure主机windows2008就地升级十步

Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径&#xff1a;win2008-->win2012-->win2016-->win2022 第一步&#xff1a;创建快照备份&#xff0c;防止升级失败第二步&#xff1a;升级托管磁盘&#xff0c;在VM管理的地方将磁盘升级成托管磁盘…...

解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库

一、开篇&#xff1a;邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域&#xff0c;数据管理如同建筑的基石&#xff0c;而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说&#xff0c;面对琳琅满目的数据库选项&#xff0c;如何抉择常常令人头疼。今…...

公司网站建设需要考虑什么问题/百度云盘搜索引擎入口

线性表相关&#xff1a; 线性表是一种逻辑结构&#xff0c;相同数据类型的N个数据元素的有限序列&#xff0c;除了第一个元素外&#xff0c;每个元素有且仅有一个直接前驱&#xff0c;除了最后一个元素外&#xff0c;每个元素有且仅有一个直接后继。 线性表的特点&#xff1a; …...

宁波电器网站制作/新闻稿撰写

mybatis3中增加了使用注解来配置Mapper的新特性&#xff0c;本篇文章主要介绍其中几个Provider的使用方式&#xff0c;他们是&#xff1a;SelectProvider、UpdateProvider、InsertProvider和DeleteProvider。MyBatis 3 User Guide中的最后一章描述了注解的简单用法&#xff0c;…...

wordpress商店网页/整合营销策略

9月20日&#xff0c;一外卖小哥在广东深圳福田区一大厦送外卖&#xff0c;为节省时间用障碍物卡住电梯。但电梯未感应到物品&#xff0c;自动关闭后夹着该物品运行&#xff0c;最后电梯门被卡裂。21日&#xff0c;紧急呼叫 从中介处获悉&#xff0c;电梯目前尚未修复。网友评论…...

建设网站的市场环境/东莞seo外包公司

1.安装bind包 yum install bind 2.创建住配置文件/etc/named.conf 在/var/named/chroot/etc目录下&#xff0c;创建配置文件named.conf 具体内容如下&#xff1a; options { directory "/var/named"; #工作目录 }; zone "****" IN …...

南京专业网站设计公司/超级外链

老版本NDK下载列表 我们在开发或编译旧版本NDK项目时&#xff0c;需要使用一些老版本的NDK&#xff0c;在这里提供了旧版NDK的列表及下载链接&#xff1a; https://developer.android.com/ndk/downloads/older_releases...

上海建站中心/网络营销专业就业公司

题目描述 请设计一个函数&#xff0c;用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始&#xff0c;每一步可以在矩阵中向左&#xff0c;向右&#xff0c;向上&#xff0c;向下移动一个格子。如果一条路径经过了矩阵中的某一…...