【计算机网络】实验6:IPV4地址的构造超网及IP数据报

实验 6:IPV4地址的构造超网及IP数据报

一、 实验目的

  1. 加深对IPV4地址的构造超网(无分类编制)的了解。

  2. 加深对IP数据包的发送和转发流程的了解。

二、 实验环境

• Cisco Packet Tracer 模拟器

三、 实验内容

1、了解IPV4地址的构造超网(无分类编制)

(1) 第一步:构建网络拓扑:拖动五个主机,两个路由器,一个交换机,使用自动连接类型将其连接起来。其中路由器使用2911。如图1所示。

img

图 1 构建网络拓扑

(2) 第二步:设置各个主机的IP地址,以及子网掩码,需要按照下图给出的要求来设计,题目要求如图2所示。

img

图2 配置IP及子网掩码的要求

(3) 第三步:先来分析一下最上面的网络,后面的25表示前面25个bit表示网络前缀,所以就可以得出最小的地址,也就是192.168.16.0,这个作为网络地址,而最大的地址就是192.168.16.127,这个最大的地址就作为广播地址。同理我们也可以由此原理得出各个网络的可分配给主机或路由器的地址的范围,以及求出对应的子网掩码。如图3所示。

img

图3 计算各个网络IP以及子网掩码

(4) 第四步:开始为各个主机以及路由器分配IP地址以及子网掩码。IP地址可以从可选范围任选一个,子网掩码使用上面计算出来的,填写一个如图4所示。全部设置完并且写好注释,如图5所示。

img

图4 填写主机IP地址以及子网掩码

img

图5 配置IP及子网掩码和路由器

(5) 第五步:此时处于同一个网络中的各个主机应该是可以互相进行通信的,因为都设置为了正确的IP地址以及子网掩码。使用左上角的主机ping一下IP地址为192.168.0.2的主机。如图6所示。如果不指定默认网关的话,那么左上角的主机不可以与最下方的网络中的其中任何一个主机进行通信,因为不知道该怎么从路由器转发出去。

img

图6 处于同一网络中的主机可以ping通

(6) 第六步:为主机配置好了默认网关之后,在使用左上角的主机去ping一下下面的任何主机中的一个。比如说ping 192.168.16.129。如图7所示。之所以第一次请求超时,是因为上面的主机首先判断发送过去的目的地址和自己是不是在同一个网络,所以上方主机就会把数据包交给自己网络的默认路由器(也就是默认网关所指向的那个路由器),但是找不到这个IP地址对应的MAC地址,所以就会发送一个ARP的广播请求来获得这个MAC地址,而路由器在收到这个请求之后,发现是传给自己的某一个端口的,然后路由器发回去一个单波响应把自己的MAC地址发送回去,同理路由器转发的时候,也是这个原理。

img

图7 配置完默认网关之后可以通信

(7) 第七步:在配置好了默认网关之后,使用ping指令,让左边的主机去ping一下最右边的主机,ping 192.168.16.198。如图8所示。

img

图8 此时计算机之间不能互通

(8) 第八步:可以看到上图收到的响应是来自IP地址为192.168.16.126的路由器,也就是说原主机发送的数据包先是转发到了路由器,然后路由器向原主机报告说目的主机不可以到达。之所以说路由器不知道如何转发,是因为路由器的路由表里面并没有存储相关信息。

(9) 第九步:查看路由器的路由表。如图9所示。这里面的6条数据,分别是和路由器直接相连的三个网络,以及记录了自己的三个接口的IP地址,之所以原主机发送请求给最右边的主机不成功,正是因为左边的路由器根本就不知道最右边的网络的存在,所以不知道如何转发。

img

图9 路由器的路由表

(10) 第十步:给最左边的路由器添加一个静态路由。如图10所示。

img

图9 为路由器添加静态路由

(11) 第十一步:此时再查看路由的路由表,如图10所示。就可以发现多了一条记录,此时路由器就知道当目的主机在另一个网络时,就知道下一跳该往哪里走了。

img

图10 路由器知道了另一个网络的路线

(12) 同理给右侧的路由也添加两条静态路由,添加的具体数据信息,上面的图片中已经给出,其中上面的那个静态路由告诉这个路由器怎么到达左上方的那个网络,而下面哪一个的静态路由是告诉怎么去左下方的网络。添加如图11所示。

img

图11 为右侧的路由器添加静态路由

(13) 为路由器添加好了所有的静态路由之后,理论上这个网络拓扑中的所有主机之间都是可以正常通信的,下面就来测试一下,使用左上角的主机ping一下最右边的主机,即ping 192.168.16.198,如图12所示。之所以会有两次超时的请求,也是因为ARP广播请求以及接收到的单波响应导致的。如果相同的指令在执行一次的话,就不会出现超时的情况。

img

图12 左上角主机成功ping通右边主机

(14) 可以发现右边的路由器的两个静态路由的下一跳地址是相同的,因此就可以实现路由聚会,也就是构造超网,路由聚合就是找到两个目的网络的共同前缀,路由聚合之后,如图13所示。此时路由器转发相当于是到达了一个更大的地址块,而不是到达两个分散的地址块。

img

图13 两个静态路由进行路由聚合

(15) 此时使用最右边的主机去ping一下左边的两台主机中的一个,如图14所示。成功ping通说明此次路由聚合是成功的。

img

图14 主机之间成功通信

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

(1) 第一步:构建网络拓扑:在逻辑工作空间上,拖动六个普通计算机和三个交换机以及两个路由器,选择自动连接把设备连接起来,并设置好IP,并在计算机旁边写好IP注释。并写好MAC地址注释。如图15所示。

img

图 15 构建网络拓扑并写好注释

(2) 第二步:切换到仿真模式,并且过滤协议,只保留ARP协议和ICMP协议。并且让左上角的主机去给左下角的主机发送一个ICMP的报文,发送之前,将原主机以及经过的路由器和目的主机的三个ARP高速缓存表给打开,另外还需要调整三个ARP高速缓存表的列的位置,还需要打开路由器的路由表,如图16所示。之所以路由器的ARP表不是空的,是因为存放着三个端口的IP地址以及对应的MAC地址,所以不是空的。路由表的里的类型C表示直接连接,L表示自己接口的IP地址,S表示的是静态路由。

img

图16 查看ARP高速缓存表及路由表

(3) 第三步:为左上角的主机添加一个简单的PDU,让其发送给左下角的主机。并打开ICMP的数据报。如图17所示。

img

图17 ICMP数据报里面的内容

(4) 第四步:原主机要发送一个ICMP的数据报给目的主机,首先需要封装成IP数据报,源地址就填原主机的IP,目的地址就填目的主机的IP,然后还需要封装成以太网的帧才可以发送走,以太网帧的首部的原MAC地址填的是原IP地址对应的MAC地址,但是目的MAC地址是不可以直接填写目的主机的MAC地址,因为并不知道。原主机将目的主机的IP地址和自己的子网掩码相与,得到一个网络地址,然后查看自己的网络地址和自己的是不是一样,若是一样,则可以直接交付,如是不一样,则原主机需要通过自己网络中的一台路由器来帮助自己转发。所以以太网帧的首部的目的MAC地址就应该填写的是路由器的某个接口的MAC地址,此时原主机就会去自己的ARP高速缓存表里面查找,若是空的,就会发送一个ARP的广播请求,通过已知的路由器的某个接口的IP地址去找对应的MAC地址,找到了,才可以将真正的数据报传送过去。

(5) 第五步:点击捕获前进,路由器收到广播请求,路由器的ARP表多出来一条记录,如图18所示。这条记录了原主机的IP地址以及MAC地址的对应关系。

img

图18 路由器的ARP表多出来一条记录

(6) 第六步:再次点击捕获前进,发现路由器将单波响应明确的经过交换机发回给了原主机,这样原主机就得到了与自己所在网络相连的路由器的端口的IP地址以及MAC地址。如图19所示。此时原主机的封装成帧的以太网的首部的目的MAC地址就可以填写了。此时就可以发送ICMP数据报,打开ICMP数据报如图20所示。

img

图19 原主机ARP表多了一条记录

img图20 以太网帧封装成功

(7) 第七步:点击捕获前进,当ICMP报文到达路由器之后,开始解封装,主要目的是为了提取IP数据报中的目的IP地址,然后根据自己的路由表中所指向的下一跳进行转发,如果下一跳的地址为空,说明此时这个接口和目的主机属于同一个网络,可以直接交付,此时路由器将这个数据重新封装成帧,此时帧的原MAC地址就应该填写当前转发的这个端口的MAC地址,而目的MAC地址也是需要路由器去自己的ARP高速缓存表里查找的,若是没有,那么路由器就会把封装的数据帧(其中带有ICMP报文)丢弃。紧接着就会发送ARP广播请求来获取。

(8) 第八步:点击捕获前进,目的主机收到广播请求,目的主机的ARP表多出来一条记录,如图21所示。这条记录了路由器的某个端口的IP地址以及MAC地址的对应关系,以备之后需要使用。

img

图21 目的主机的ARP表多了一条记录

(9) 第九步:点击捕获前进,路由器收到目的主机发回来的单波响应,路由器的ARP表多出来一条记录,如图22所示。这条记录了目的主机的IP地址以及MAC地址的对应关系。但是最终目的主机还是没有收到ICMP报,因为路由器将其丢弃了。

img

图 22 路由器记录目的主机IP及MAC地址

(10) 第十步:当高速缓存表以及路由表里面都有相关的信息之后,此时再发送简单的PDU,就可以很顺利的到达目的主机了。

(11) 第十一步:至使用IP地址为192.168.16.2的主机ping一下IP地址为192.168.16.193的主机,如图23所示。总共ping了四次,相当于是发送了四个简单的PDU,前两次超时是因为经过了两个路由器,每个路由器的高速缓存表里面都没有相关信息,所以就丢了两次数据报,丢弃原理上面说了,所以就超时了两次。此时如果再ping一次的话,就不会出现超时的情况了。

img

图 23 前两次超时,后两次成功

(12) 第十二步:对于主机而言,使用命令arp -d就可以成功清除自己的ARP高速缓存表,如果是交换机的话,就进入命令行界面,然后输入enable进入特权指令,然后输入指令clear mac-a可以清除交换机的MAC地址表,路由器也可以使用指令enable首先进入特权模式,然后输入指令clear arp,此时清除了高速缓存表和MAC地址表之后,就可以在仿真模式下再做一遍,以便更好地查看转发流程。

四、 实验体会

1. 这两个实验的步骤都遵循构建网络拓扑、配置网络环境、跟踪数据包和查看数据包这四个规则。

2. Cisco Packet Tracer 模拟器可以清晰地展示 PDU 在传送过程,设备是如何处理 PDU 的。通过仿真传送过程,有助于我们理解有关的知识。

3. 在学习IPv4地址的构造与超网(无分类编制)时,我深刻体会到其灵活性和高效性。超网技术通过将多个小网络合并为一个更大的网络,从而减少路由表的大小,提高路由效率。这种方法打破了传统的类A、类B、类C的限制,使得IP地址的分配更加灵活,能够根据实际需求进行合理划分,我了解到,超网的关键在于CIDR(无类别域间路由选择),它允许使用任意长度的前缀,而不是固定的类划分。这种灵活性使得网络管理员能够根据流量需求动态调整网络结构,优化资源利用。此外,超网还可以有效减少IP地址的浪费,特别是在IP地址资源紧张的情况下,显得尤为重要。

4. 在学习IP数据包的发送和转发流程时,我对网络通信的复杂性和高效性有了更深刻的理解。数据包的发送始于源主机,通过协议栈逐层封装,最终形成IP数据包。这一过程中,数据包携带了源地址和目标地址,确保信息能够准确传递,转发流程则涉及路由器的关键作用。当数据包到达路由器时,路由器根据目标地址查找路由表,决定最佳转发路径。这一过程不仅依赖于静态路由配置,还可能涉及动态路由协议,确保网络在变化时依然高效运作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483583.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

开发板选择 本次使用开发板模块丝印为ESP32-WROOM-32E 开发板库选择 Arduino IDE上型号选择为ESP32-WROOM-DA Module 显示屏选择 使用显示屏为8针SPI接口显示屏 驱动IC为ST7735S 使用库 使用三个Arduino平台库 分别是 Adafruit_GFXAdafruit_ST7735SPI 代码详解 首…

[C++设计模式] 为什么需要设计模式?

文章目录 什么是设计模式?为什么需要设计模式?GOF 设计模式再次理解面向对象软件设计固有的复杂性软件设计复杂性的根本原因如何解决复杂性?分解抽象 结构化 VS 面向对象(封装)结构化设计代码示例:面向对象设计代码示例&#xff1…

机器学习:精确率与召回率的权衡

高精度意味着如果诊断得了那种罕见病的病人,可能病人确实有,这是一个准确的诊断,高召回率意味着如果有一个还有这种罕见疾病的病人,也许算法会正确的识别他们确实患有这种疾病,事实中,在精确与召回之间往往…

03-13、SpringCloud Alibaba第十三章,升级篇,服务降级、熔断和限流Sentinel

SpringCloud Alibaba第十三章,升级篇,服务降级、熔断和限流Sentinel 一、Sentinel概述 1、Sentinel是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保…

基于vite6+ vue3 + electron@33 实现的 局域网内互传文件的桌面软件

目录 项目介绍项目部分截图介绍下基础项目搭建先搭建一个vite 前端项目 再安装 electron 相关依赖依赖安装失败解决方案修改 vite配置文件和 ts 配置文件修改packjsonts相关配置项目结构介绍 项目介绍 前端 基于 vue3 ts windicss 后端 就是node 层 项目地址: h…

安装MySQL 5.7 亲测有效

前言:本文是笔者在安装MySQL5.7时根据另一位博主大大的安装教程基础上做了一些修改而成 首先在这里表示对博主大大的感谢 下面附博主大大地址 下面的步骤言简意赅 跟着做就不会出错 希望各位读者耐下心来 慢慢解决安装中出现的问题~MySQL 5.7 安装教程(全…

CSS函数

目录 一、背景 二、函数的概念 1. var()函数 2、calc()函数 三、总结 一、背景 今天我们就来说一说,常用的两个css自定义属性,也称为css函数。本文中就成为css函数。先来看一下官方对其的定义。 自定义属性(有时候也被称作CSS 变量或者级…

6.824/6.5840 Lab 1: MapReduce

宁静的夏天 天空中繁星点点 心里头有些思念 思念着你的脸 ——宁夏 完整代码见: https://github.com/SnowLegend-star/6.824 由于这个lab整体难度实在不小,故考虑再三还是决定留下代码仅供参考 6.824的强度早有耳闻,我终于也是到了挑战这座高…

MongoDB集群分片安装部署手册

文章目录 一、集群规划1.1 集群安装规划1.2 端口规划1.3 目录创建 二、mongodb安装(三台均需要操作)2.1 下载、解压2.2 配置环境变量 三、mongodb组件配置3.1 配置config server的副本集3.1.1 config配置文件3.1.2 config server启动3.1.3 初始化config …

一种多功能调试工具设计方案开源

一种多功能调试工具设计方案开源 设计初衷设计方案具体实现HUB芯片采用沁恒微CH339W。TF卡功能网口功能SPI功能IIC功能JTAG功能下行USB接口 安路FPGA烧录器功能Xilinx FPGA烧录器功能Jlink OB功能串口功能RS232串口RS485和RS422串口自适应接口 CAN功能烧录器功能 目前进度后续计…

三维测量与建模笔记 - 5.3 光束法平差(Bundle Adjustment)

此篇笔记尚未理解,先做笔记。 如上图,在不同位姿下对同一个物体采集到了一系列图像, 例子中有四张图片。物体上某点M,在四幅图像上都能找到其观测点。 上式中的f函数是对使用做投影得到的估计点位置。求解这个方程有几种方法&…

力扣hot100道【贪心算法后续解题方法心得】(三)

力扣hot100道【贪心算法后续解题方法心得】 十四、贪心算法关键解题思路1、买卖股票的最佳时机2、跳跃游戏3、跳跃游戏 | |4、划分字母区间 十五、动态规划什么是动态规划?关键解题思路和步骤1、打家劫舍2、01背包问题3、完全平方式4、零钱兑换5、单词拆分6、最长递…

ElasticSearch学习篇19_《检索技术核心20讲》搜推广系统设计思想

目录 主要是包含搜推广系统的基本模块简单介绍,另有一些流程、设计思想的分析。 搜索引擎 基本模块检索流程 查询分析查询纠错 广告引擎 基于标签倒排索引召回基于向量ANN检索召回打分机制:非精确打分精准深度学习模型打分索引精简:必要的…

Ambrus 游戏工作室将应对气候变暖与游戏变现完美结合

当 Ambrus Studio 创始人兼 CEO Johnson Yeh 计划打造他称之为“第一款伟大的 Web3 游戏”时,他设立了两个关键目标:游戏需要在传统大型工作室忽视的市场中盈利,以及它需要具备超越娱乐的意义。 在 Sui 的帮助下,Johnson 和他的团…

KAN-Transfomer——基于新型神经网络KAN的时间序列预测

1.数据集介绍 ETT(电变压器温度):由两个小时级数据集(ETTh)和两个 15 分钟级数据集(ETTm)组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 traffic(交通) :描…

UEFI Spec 学习笔记---3 - Boot Manager(3)

3.2 Boot Manager Policy Protocol EFI_BOOT_MANAGER_POLICY_PROTOCOL----EFI应用程序使用该协议请求UEFI引导管理器使用平台策略连接设备。 typedef struct _EFI_BOOT_MANAGER_POLICY_PROTOCOL EFI_BOOT_MANAGER_POLICY_PROTOCOL; struct _EFI_BOOT_MANAGER_POLICY_PROTOCOL…

wordpress网站首页底部栏显示网站备案信息

一、页脚文件footer.php 例如,wordpress主题使用的是simple-life主题,服务器IP为192.168.68.89,在wordpress主题文件中有个页脚文件footer.php,这是一个包含网站页脚代码的文件。 footer.php 路径如下: /www/wwwroot/192.168.68…

QT实战-qt各种菜单样式实现

本文主要介绍了qt普通菜单样式、带选中样式、带子菜单样式、超过一屏幕菜单样式、自定义带有滚动条的菜单样式, 先上图如下: 1.普通菜单样式 代码: m_pmenu new QMenu(this);m_pmenu->setObjectName("quoteListMenu"); qss文…

数据结构实训——查找

声明: 以下是我们学校在学习数据结构时进行的实训,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法…

指针(上)

目录 内存和地址 指针变量和地址 取地址(&) 解引用(*) 大小 类型 意义 const修饰 修饰变量 修饰指针 指针运算 指针- 整数 指针-指针 指针的关系运算 野指针 概念 成因 避免 assert断言 指针的使用 strl…