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

【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

文章目录

  • 实验6: IP数据报的发送和转发流程、默认路由和特定主机路由
    • 一、实验目的
    • 二、实验环境
    • 三、实验内容
      • (一)IP数据报的发送和转发流程
      • (二)默认路由和特定主机路由
    • 四、实验体会

实验6: IP数据报的发送和转发流程、默认路由和特定主机路由

一、实验目的

  1. 加深对网络体系结构的理解。

  2. 了解主机发送IP数据报的过程以及路由器转发IP数据报的过程。

  3. 通过调整窗口大小和查看ARP和路由表等信息,可以观察到路由器和主机之间的转发过程。同时详细了解各种记录和协议的作用。

  4. 验证默认路由和特定主机路由的作用

二、实验环境

Cisco Packet Tracer 模拟器

三、实验内容

(一)IP数据报的发送和转发流程

  1.  构建网络拓扑,并且在旁边标好IP地址、MAC地址、子网掩码、默认网关。如图1、2所示。
    


图 1 查看MAC地址的方式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图 2 在主机和路由器旁边注释方便实验
2. 切换实时模式,将其他的协议隐藏,只观察ARP协议和ICMP协议,如图3所示。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图 3 保留ARP和ICMP协议
3. 打开左上和右下主机的ARP表,打开左边路由器表的ARP表和路由表方便观察实验现象,在路由表中标记为"c"的表示直接连接,即路由器与相应网络直接相连;标记为"s"的表示静态路由,是管理员手动配置的路由规则。对于直接连接的路由规则,路由器通过查找目标网络地址来确定与之直接相连的接口,并将数据包发送到该接口。而静态路由则是管理员手动添加的路由规则,指定了数据包应该经过的路径,例如通过特定的接口或下一个路由器。如图4、5所示。

图4打开ARP表

图5打开路由表
4. 从左上角主机发送一个数据包给右下角主机,会发现产生一个ARP报文,但是其实是一个广播请求,主机在发送IP数据报之前,如果不知道目的主机的MAC地址,会发送ARP广播请求来获取目的主机的MAC地址,点击下一步会发现,报文被转发到交换机,然后转发给其他主机和路由器,除了目标主机外,其他主机都不会接收该报文,在报文被转发到路由器时会发现路由表多了一条记录,如图6、7、8所示。

图6产生一个ARP报文

图7报文被转发给主机和路由器
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图8路由表多了一条记录

  1.  点击下一步可以观察到一个数据包由路由器转发给交换机,如图9所示。
    

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图9数据包被转发给交换机
6. 点击下一步,观察到数据包被明确的转发给源主机,源主机的ARP表中出现了一条记录,如图10、11所示。

图10数据包被明确转发给源主机
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图11源主机ARP表
7. 点击下一步,观察到主机再次发送之前要发送但是没有发送的ICMP数据包,如图12~15所示。

图12 ICMP数据包

图13 数据包的具体信息
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图14 到达交换机

图15 到达路由器

  1.  点击下一步,因为路由器会根据目的IP地址在自己的路由表中查找对应的路径,并进行转发,如果目的主机与路由器在同一个网络,路由器会直接将数据包交付给目的主机,而不是再次封装,所以我们可以观察到数据包被转发给下面的交换机,再泛化转发给两台主机,但是只有目的主机可以接收数据包,还能看到目的主机的ARP表多了一条记录,目的主机返回一个单播,到路由器时可以观察到他的ARP高速缓存表多了一条记录,如图16~19所示。
    


图 16 数据包被转发给下面的交换机
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图 17 数据包经泛化被转发给主机

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

图19 路由器ARP高速缓存表多了一条记录
9. 再次让源主机给目的主机发送一个数据,可以观察到数据包被逐步直接转发给目的主机,不需要再经历ARP的过程,在返回响应时也是如此,如图20、21所示。

图20再次发送一个数据包

图21 数据包被逐步直接转发给目的主机

  1. 将原来打开的ARP表关闭,在实时模式下,让右上角的主机ping右下角的主机,观察到前两次都请求超时。

前两次超时的原因可以归结为以下几点:

  1.  路由器接口未知:第一次发送SMT请求报文时,路由器并不知道目的主机对应的接口的IP地址,因此无法立即转发数据包。在这种情况下,路由器需要通过询问其他设备(如发送ARP广播请求)来获取目的主机的MAC地址。这个过程会消耗一定的时间,从而导致超时。
    
  2.  ARP广播请求:第二次超时时,路由器需要发送ARP广播请求来获取目的主机的MAC地址。由于这个过程涉及到其他设备的响应,所以也会有一定的延迟。
    

再ping一次观察到都没有超时如图22~24所示。

图22 确定两个主机


图23 右上角的主机第一次ping右下角的主机


图24 右上角的主机第二次ping右下角的主机

(二)默认路由和特定主机路由

  1. 构建网络拓扑,并且在设备旁边注释好IP、默认网关以及路由表等,如图25所示。

    图25 构建网络拓扑

  2. 验证设备A和E的通信,在A设备上ping设备E,可以观察到前两次超时,这是因为当路由器需要转发数据包到某个网络时,如果该网络的接口的MAC地址未知,路由器会发送ARP广播请求来获取对应的MAC地址。在这个过程中,之前准备转发的数据包会被丢弃,因此第一次请求会超时。然后主机会再次发送ICMP询问报文。当路由器需要将数据包转发给主机E时,由于主机E的IP地址对应的MAC地址未知,路由器会再次发送ARP请求来获取MAC地址。同样地,之前准备转发的数据包会被丢弃,导致第二次请求超时。如图26所示。

    图26

  3. 验证设备B和设备D的通信,会发现和上面时一样的现象,如图27所示。


图27

四、实验体会

本次实验通过构建网络拓扑,观察主机发送IP数据报的过程以及路由器转发IP数据报的过程,深入了解了各种记录和协议的作用,并验证了默认路由和特定主机路由的作用。通过实验,我学到了以下几点:

1.**了解IP数据报的发送和转发流程。**在主机发送IP数据报时,首先要确定目标主机的MAC地址,如果不知道,会发送ARP广播请求来获取目的主机的MAC地址;而路由器需要根据自己的路由表来转发数据包,查找目标网络地址并确定与之直接相连的接口,并将数据包发送到该接口,或者根据管理员手动配置的静态路由规则指定数据包应该经过的路径。

2.**了解ARP协议和ICMP协议的作用。**ARP协议用于解析IP地址和MAC地址之间的映射关系,通过广播方式发送ARP请求来获取目的主机的MAC地址;而ICMP协议是为了确保网络通信的可靠性和稳定性,通过发送ICMP询问报文来确定连接是否正常或者寻找无法到达目标主机的原因。

3.**了解路由表中的记录类型。**直接连接表示路由器与相应网络直接相连,静态路由则是管理员手动添加的路由规则指定数据包应该经过的路径。

4.**了解默认路由和特定主机路由。**默认路由指所有未匹配的路由都将被转发到一个默认的接口,而特定主机路由则是将所有发送到特定主机地址的数据包都转发到指定接口。

通过本次实验,我深入了解了IP数据报的发送和转发流程以及相关协议和记录类型,加深了对网络体系结构的理解,提高了自己的实际操作能力和问题解决能力。

相关文章:

【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…...

freertos 源码分析一 list链表数据结构

链表和任务管理是freertos 的核心,先分析链表源码,freertos的链表是双向环形链表,定义与数据结构在list.h中,表项的初始化,插入与删除在list.c中。 数据结构 一、表项数据结构 struct xLIST_ITEM {listFIRST_LIST_IT…...

小程序uni-swiper-action-item滑动不了

<uni-swipe-action><uni-swipe-action-item :options"options"></uni-swipe-action-item></uni-swipe-action> 要在options前面加上right或left <uni-swipe-action><uni-swipe-action-item :right-options"options">&…...

【新课】安装部署系列Ⅲ—Oracle 19c Data Guard部署之两节点RAC部署实战

本课程由云贝教育-刘峰老师出品&#xff0c;感谢关注 课程介绍 Oracle Real Application Clusters (RAC) 是一种跨多个节点分布数据库的企业级解决方案。它使组织能够通过实现容错和负载平衡来提高可用性和可扩展性&#xff0c;同时提高性能。本课程基于当前主流版本Oracle 1…...

【从零开始的rust web开发之路 四】rust语言tokio异步使用redis教程

文章目录 前言一、首先引入依赖二、创建redis客户端三、相关操作设置值mset设置多个key值设置含有过期时间的值如果key不存在才设置获取基本类型值删除一个键删除多个键判断键是否存在 如何使用json序列化导入相关依赖代码相关实例 总结 前言 使用rust写web&#xff0c;自然是…...

uniapp本地存储的几种方式localStorage

在uniapp开发中&#xff0c;本地存储是一个常见的需求。本地存储可以帮助我们在客户端保存和管理数据&#xff0c;以便在应用程序中进行持久化存储。本文将介绍uniapp中本地存储的几种方式&#xff0c;以及相关的代码示例。 介绍 在移动应用开发中&#xff0c;我们经常需要将…...

扩展学习|统计学习理论(SLT)与极限学习机(ELM)应用于大社会数据分析

文献来源&#xff1a;[1] Oneto L , Bisio F , Cambria E ,et al.Statistical Learning Theory and ELM for Big Social Data Analysis[J].IEEE Computational Intelligence Magazine, 2016, 11(3):45-55.DOI:10.1109/MCI.2016.2572540. 提取链接&#xff1a;链接&#xff1a;h…...

配置实例—交换机VLAN聚合配置实例

一、组网需求 某公司拥有多个部门且位于同一网段&#xff0c;为了提升业务安全性&#xff0c;将不同部门的用户划分到不同VLAN中。现由于业务需要&#xff0c;不同部门间的用户需要互通。如图1所示&#xff0c;VLAN2和VLAN3为不同部门&#xff0c;现需要实现不同VLAN间的用户可…...

网络开发的隐形壁垒:如何巧妙解决跨域难题?

什么是跨域 跨域是浏览器受同源&#xff08;协议、域名、端口&#xff09;策略的限制&#xff0c;不允许不同源的站点之间进行某些操作&#xff08;如发送ajax请求&#xff0c;操作dom&#xff0c;读取cookie&#xff09;&#xff0c;如果不进行特殊配置是不能操作成功的&…...

【极简】conda同一个服务器上迁移环境 export / create

导出 直接看conda的document&#xff1a;https://docs.conda.io/projects/conda/en/latest/commands/env/export.html conda env export conda env export --file SOME_FILE重建 conda documentation: https://docs.conda.io/projects/conda/en/latest/commands/env/create.…...

HBase 数据导入导出

HBase 数据导入导出 1. 使用 Docker 部署 HBase2. HBase 命令查找3. 命令行操作 HBase3.1 HBase shell 命令3.2 查看命名空间3.3 查看命名空间下的表3.4 新建命名空间3.5 查看具体表结构3.6 创建表 4. HBase 数据导出、导入4.1 导出 HBase 中的某个表数据4.2 导入 HBase 中的某…...

(java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~

目录 冒泡排序(BubbleSort)&#xff1a; 代码详解&#xff1a; 冒泡排序的优化&#xff1a; 选择排序(SelectSort)&#xff1a; 代码详解&#xff1a; 插入排序&#xff08;InsertSort&#xff09;&#xff1a; 代码详解&#xff1a; 希尔排序(ShellSort)&#xff1a; 法一…...

服务器托管的作用是什么?

服务器托管是将企业的服务器和相关设备托管到具有完善机房设施、高品质网络环境与运营经验的网络数据中心内&#xff0c;服务器托管在维护方面一般是由客户负责的&#xff0c;或者是由其他的授权人进行远程维护。 那服务器托管的作用都有哪些呢&#xff1f; 服务器托管不需要企…...

美团启动架构调整:聚力核心本地商业,提升科技与境外业务优先级

2月2日&#xff0c;美团CEO王兴发布内部邮件宣布新的组织架构调整。邮件显示&#xff0c;美团对核心本地商业相关多项业务进行了整合&#xff0c;并进一步提升了科技与国际化相关业务的优先级。 在核心本地商业上&#xff0c;美团对过去相对独立的事业群进行了整合。主要调整包…...

监测Tomcat项目宕机重启脚本(Linux)

1.准备好写好的脚本 #!/bin/sh # 获取tomcat的PID TOMCAT_PID$(ps -ef | grep tomcat | grep -v tomcatMonitor |grep -v grep | awk {print $2}) # tomcat的启动文件位置 START_TOMCAT/mnt/tomcat/bin/startup.sh # 需要监测的一个GET请求地址 MONITOR_URLhttp://localhost:…...

道可云元宇宙每日资讯|北京:推进元宇宙在智慧城市应用

道可云元宇宙每日简报&#xff08;2024年2月2日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 石狮市检察院“元宇宙智慧展馆”正式启用 为深入实施数字检察战略&#xff0c;主动探索元宇宙技术在未成年人检察、公益诉讼检察等方面的应用&#xff0c;打造集案件…...

Logback学习

logback 1、logback介绍 Logback是由log4j创始人设计的另一个开源日志组件&#xff0c;性能比log4j要好。 lockback优点&#xff1a; 内核重写、测试充分、初始化内存加载更小&#xff0c;这一切让logback性能和log4j相比有诸多倍的提升。logback非常自然地直接实现了slf4j…...

【Chrono Engine学习总结】2-可视化

由于Chrono的官方教程在一些细节方面解释的并不清楚&#xff0c;自己做了一些尝试&#xff0c;做学习总结。 0、基本概念 类型说明&#xff1a; Chrono的可视化包括两块&#xff1a;实时可视化&#xff0c;以及离线/后处理可视化。 其中&#xff0c;实时可视化&#xff0c;又…...

pytorch创建tensor

目录 1. 从numpy创建2. 从list创建3. 创建未初始化tensor4. 设置默认tensor创建类型5. rand/rand_like, randint6. randn生成正态分布随机数7. full8. arange/range9. linspace/logspace10. Ones/zeros/eye11. randperm 1. 从numpy创建 2. 从list创建 3. 创建未初始化tensor T…...

Cmake语法学习3:语法

1.双引号 1.1 命令参数 1&#xff09;介绍 命令中多个参数之间使用空格进行分隔&#xff0c;而 cmake 会将双引号引起来的内容作为一个整体&#xff0c;当它当成一个参数&#xff0c;假如你的参数中有空格&#xff08;空格是参数的一部分&#xff09;&#xff0c;那么就可以使…...

双非逆袭!25年兰大计算机专硕上岸率超84%,我的跨考保姆级攻略(含806专业课避坑指南)

双非逆袭&#xff01;25年兰大计算机专硕上岸率超84%&#xff0c;我的跨考保姆级攻略&#xff08;含806专业课避坑指南&#xff09; 作为一名本科双非院校的跨考生&#xff0c;我在2025年成功上岸兰州大学计算机专硕。这一年&#xff0c;兰大计算机专硕的一志愿上岸率高达84.1%…...

读了libstdc++的regex源码,找到了C++标准库慢100倍的5个根因

很多写C++的人心里有个默认假设:标准库的东西,性能就算不是最优,至少不会太差。毕竟C++的卖点就是性能,标准委员会和标准库维护者不可能在这件事上翻车。 这个假设在大多数组件上成立。std::sort比手写快排更稳健,std::unordered_map大多数场景够用,std::vector的内存布…...

终极Windows驱动清理指南:DriverStore Explorer轻松释放20GB磁盘空间

终极Windows驱动清理指南&#xff1a;DriverStore Explorer轻松释放20GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来越少&#xff0c;却不…...

FireRedASR Pro实战案例:如何将1小时会议录音快速整理成文字稿

FireRedASR Pro实战案例&#xff1a;如何将1小时会议录音快速整理成文字稿 1. 场景痛点与解决方案 1.1 会议记录的传统困境 想象一下这样的场景&#xff1a;公司每周的部门例会刚刚结束&#xff0c;作为会议记录负责人的你&#xff0c;面对长达1小时的录音文件发愁。传统的人…...

电商客服+导购智能体的设计与开发指

这个代码的核心功能是&#xff1a;基于输入词的长度动态选择反义词示例&#xff0c;并调用大模型生成反义词&#xff0c;体现了 “动态少样本提示&#xff08;Dynamic Few-Shot Prompting&#xff09;” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

为什么92%的.NET团队在AI推理上卡在.NET 6/7?揭秘.NET 11新增AOT+TensorRT绑定+动态图编译三大硬核能力(附架构图对比表)

第一章&#xff1a;.NET 11 AI模型推理加速架构全景概览 .NET 11 将原生 AI 推理能力深度集成至运行时与 SDK 层&#xff0c;构建起端到端的高性能、跨平台模型执行栈。该架构摒弃传统“模型导出外部引擎调用”的松耦合模式&#xff0c;转而采用统一张量抽象&#xff08; Tenso…...

【数据结构与算法】堆(大顶堆小顶堆堆排序)

&#x1f468;‍&#x1f4bb; 关于作者&#xff1a;会编程的土豆 “不是因为看见希望才坚持&#xff0c;而是坚持了才看见希望。” 你好&#xff0c;我是会编程的土豆&#xff0c;一名热爱后端技术的Java学习者。 &#x1f4da; 正在更新中的专栏&#xff1a; 《数据结构与算…...

Arduino Nano + A4988驱动42步进电机:从接线到代码的完整避坑指南

Arduino Nano与A4988驱动42步进电机实战指南 刚拿到Arduino Nano和A4988驱动板时&#xff0c;看着那些密密麻麻的引脚和电机线缆&#xff0c;不少初学者都会感到无从下手。步进电机控制看似简单&#xff0c;但实际搭建时总会遇到各种意想不到的问题——电机抖动不转、方向控制失…...

Sonic云真机平台二次开发指南:自定义插件与扩展开发

Sonic云真机平台二次开发指南&#xff1a;自定义插件与扩展开发 【免费下载链接】sonic-server &#x1f389;Back end of Sonic cloud real machine platform. Sonic云真机平台后端服务。 项目地址: https://gitcode.com/gh_mirrors/so/sonic-server Sonic云真机平台是…...

Stimulsoft 报告和仪表盘2026.2即将推出,来看具体详情

Stimulsoft Reports & Dashboards 2026.2 版本即将发布。本次更新将围绕报表查看器、数据源能力、参数验证以及仪表盘设计等多个方向展开&#xff0c;进一步增强产品在报表开发与可视化分析场景中的灵活性与智能化水平。 从 React 报表查看器&#xff0c;到由人工智能驱动…...