【网络】数据在同网段和跨网段通信流程

news2024/11/18 3:38:27

在这里插入图片描述

情景一:同一广播域内,两台主机通信过程:
当NO要和N1通信时,假如N0知道N1的IP但却不知道它的MAC地址,那NO就会发送一个ARP的广播请求<1>(里面源IP是NO 目标IP是N1 源MAC是N0 目标MAC是12个F)给同一广播域中的所有成员,当交换机SW0从自己的1接口上收到这个广播包,然后它会读取这个帧的源MAC地址和目标MAC地址,由于交换机SW0刚启动加电时,它的MAC表为空的。所以它会把NO的MAC地址与之相对应的接口1放到一张表里,这张表就是MAC地址表<2>。然后他再从别的接口广播这个数据帧<3>,当别的主机收到这个广播时,查看目标IP不是自己的,就会丢弃此包。如果N1接收到这个数据帧,它检查目标IP和这个的IP是一样的,就会回应这个ARP请求(单播)<5>,把自己的IP和MAC封装成源IP和源MAC,N0的IP和N0的MAC地址为目标IP与目标MAC,并记录NO的MAC与IP,放进自己的ARP缓存表中<4>。此时,这个应答包经过交换机SWO时,它又会检查源MAC、目标MAC,把N1的MAC和自己接口2放进MAC地址表中<6>,再查看自己的MAC地址表,发现存在目标MAC与自己的1接口对应(由于刚开始有记录过N0的MAC),那它就会直接把这个应答包从接口1送出去了<7>。主机N0收到这个包后发现目标MAC是自己,就会处理这个包。并把N1的MAC与IP放进自己的ARP缓存表中<8>。这时主机N0就知道N1的MAC地址了,以后要发送数据,就直接把N1的IP与MAC封装进帧中进行点对点的发送了<9>。

情景二:跨路由,两台主机的通信过程:
当NO要和N2通信时,此时NO会检查N2的IP地址跟自己是否处在同一网段<0>,由于N2和自己处在不同网段,所以,N0会把数据包发给它的网关<1>,也就是R0上的e0/0接口了。源IP和源MAC地址是N0自己的,目标IP是N2的,目标MAC是R0上接口e0/0的(如果N0不知道e0/0的MAC,就会跟情景一相似,发个ARP广播来得到e0/0的MAC地址)。当这个数据包到达R0时,路由器R0会查看目标IP的是否是自己,由于目标不是自己,所以,会查看自己的路由表<2>,找出到达N2网段的路由;如果没有相关条目,就直接丢弃。当查看路由表后发现到达N2网段的出接口是e0/1。于是,把数据包转到e0/1接口上,再由接口e0/1传给R1<3>。这个过程,数据包的源IP是N0 源MAC是e0/1 目标IP是N2 目标MAC是R1的e0/1接口IP 。

当R1收到这个数据包后,同样也要检查包的目标IP是否是自己,它会主动查找自己的路由表<4>,发现目标IP跟自己e0/0接口处在同一网段,于是就把包传到e0/0接口上去发给N2<5>(假如R1上的ARP缓存表中没有N2的MAC,则接口e0/0会发送一个ARP广播给跟它相连的广播域中;这个ARP广播包的源IP是接口e0/0的IP 源MAC也是e0/0的MAC 目标IP是N2 目标MAC为12个F),假如N2的MAC地址已经在R1的ARP缓存中了,那就会直接把数据包封装成:源IP为N0 源MAC为R1的e0/0 目标IP为N2 目标MAC为N2了。

到了这里,包的跨路由传输就会结束了,当包到达N2,做反向操作即可把包发给N0了。

总结:

  • 同一广播域中,数据包的源/目标IP;源/目标MAC都是真实的两台主机上的IP与MAC地址。
  • 跨路由中,数据包的源/目标IP始终不会发生变化,但源/目标MAC会根据所经过的路由接口不同而发生相应变化。

扩展解释:
1.为什么跨网段需要修改源mac地址?
需要修改源MAC地址是因为在跨路由时,数据包需要经过不同的网络接口进行转发。每个网络接口都有自己的MAC地址,用于在局域网中唯一标识设备。当数据包从一个网络接口转发到另一个网络接口时,需要将源MAC地址修改为当前路由接口的MAC地址,以确保数据包能够正确到达目标主机。

如果不修改源MAC地址,而是保持不变,那么数据包在经过路由器时,目标主机可能无法正确识别数据包的来源,因为目标主机可能不在同一个局域网中,无法直接与源主机通信。通过修改源MAC地址,可以使数据包在跨越不同网络时,能够正确地被目标主机接收和处理。

另外,修改源MAC地址还可以提高网络安全性。通过修改源MAC地址,可以隐藏源主机的真实身份,防止攻击者通过分析MAC地址来追踪源主机的位置或进行其他恶意行为。

因此,为了确保数据包能够正确到达目标主机,并提高网络安全性,需要在跨路由时修改源MAC地址。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 分析— 使用 LeuvenMapMatching 包进行地图匹配用于道路导航

在道路导航中,我们有了街道网络地图。轨迹/GPS 数据必须与街道相匹配才能进行导航,因为 GPS 读数提供纯粹的纬度和经度坐标,但我们想知道车辆行驶的具体道路。 我首先尝试了一种简单的方法来匹配点,将每个点独立地匹配到最近的路段。如果没有道路,只需扩大缓冲距离…

耐腐蚀特氟龙塑料材质PFA烧杯超纯试剂反应杯

PFA烧杯在实验过程中可作为储酸容器或涉及强酸强碱类实验的反应容器&#xff0c;用于盛放样品、试剂&#xff0c;也可搭配电热板加热、蒸煮、赶酸用。 外壁均有凸起刻度&#xff0c;直筒设计&#xff0c;带翻边&#xff0c;便于夹持和移动&#xff0c;边沿有嘴&#xff0c;便于…

amv是什么文件格式?如何播放amv视频?

AMV文件格式源自于中国公司Actions Semiconductor&#xff0c;最初作为其MP4播放器中使用的专有视频格式。产生于数码媒体发展的需求下&#xff0c;AMV格式为小屏幕便携设备提供了一种高度压缩的视频存储方案。 AMV文件格式的主要特性与使用场景 AMV格式以其独特的特性在小尺寸…

SpringCloudAlibaba 网关gateway整合sentinel日志默认路径修改

SpringCloudAlibaba 网关gateway整合sentinel 实现网关限流熔断 问题提出 今天运维突然告诉我 在服务器上内存满了 原因是nacos日志高达3G,然后将日志文件发给我看了一下之后才发现是gateway整合sentinel使用了默认日志地址导致日志生成地址直接存在与根路径下而且一下存在多…

搜索引擎3Dfindit.com让艰难的工程数据搜索变得简单

3Dfindit让设计师在搜索零件中体验乐趣 Thomas是一位机械工程专业毕业的新人&#xff0c;他迎来了他的第一份工作&#xff0c;兴高采烈地开始着手他的第一个项目&#xff1a;甲方要求设计一个建造在工业区的全新洗车房---龙门式洗车房&#xff1a; 汽车先被喷满泡沫&#xff0c…

安装配置Kafka

一个典型的Kafka集群中包含若干Producer&#xff08;可以是Web前端FET&#xff0c;或者是服务器日志等&#xff09;&#xff0c;若干Broker&#xff08;Kafka支持水平扩展&#xff0c;一般Broker数量越多&#xff0c;集群吞吐率越高&#xff09;&#xff0c;若干ConsumerGroup&…

css相邻元素边框重合问题,解决方案

1、如下图所示&#xff0c;在给元素设置边框后&#xff0c;相邻元素会出现重合的问题 2、解决方案 给每个元素设置margin-top以及margin-left为负的边框 <div style"width: 300px;display: flex;flex-wrap: wrap;margin-top: 50px;"><div style"border…

layoutlmv3训练CDLA数据集

一.LayoutLMv3介绍 LayoutLMv3&#xff08;文档基础模型&#xff09; 自监督预训练技术在文档人工智能方面取得了显着的进步。大多数多模态预训练模型使用掩码语言建模目标来学习文本模态的双向表示&#xff0c;但它们在图像模态的预训练目标上有所不同。这种差异增加了多模态…

JAVA全面基础知识(第七部分)

大家好我是程序员阿存&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款&#xff0c;项目源码以及部署相关请联系存哥&#xff0c;文末附上联系信息 。 这篇文章给大家分享的是JAVA的基础知识&#xff0c; &#x1f495;&#x1f495;作者&#xff1a;程序员阿存 &…

qemu快速入门

前提&#xff1a; 我们做嵌入式软件的时候&#xff0c;往往可能会缺少嵌入式的硬件&#xff0c;那我们希望提前开始准备代码的话&#xff0c;就需要qemu这个开源软件&#xff0c;它可以模拟各种型号的芯片 。那么我们可以提前在这个模拟器上面去开发代码、验证、调试。 正片开始…

什么是高级编程语言?——跟老吕学Python编程

什么是高级编程语言&#xff1f;——跟老吕学Python编程 高级编程语言简介高级编程语言发展历程高级编程语言特点高级编程语言分类命令式语言函数式语言逻辑式语言面向对象语言 常见的高级编程语言及其特点和应用领域高级编程语言性能分析高级编程语言的工作方式 高级编程语言简…

深耕版本控制、代码质量与安全等领域,龙智荣获“Perforce 2023年度合作伙伴”奖项

在近日举行的Perforce 2024合作伙伴峰会上&#xff0c;龙智被评选为“Perforce 2023年度合作伙伴”。这一奖项不仅是对龙智在中国市场开拓中的进取精神与丰硕成果的高度认可&#xff0c;也是Perforce公司对于龙智持续创新精神及专业技术与服务的表彰。 自2012年成为Perforce中…

中探:事件循环相关内容(因为不仅仅是初步认识,但也不至于是深入探讨,所以命名为“中探”)

下面内容写于 2022 年&#xff0c;文本描述过多&#xff0c;可能不适合有经验的人看。新的文章在 个人网站 中。 对了&#xff0c;说到事件循环&#xff0c;怎么可以离开这个最知名的视频呢&#xff01;视频是英文的&#xff0c;但即使你听不懂&#xff0c;单纯看他的操作&…

使用gin框架,编写一个接收数据的api接口

功能&#xff1a;这里主要编写一个接口&#xff0c;将其json 数据存入对应的redis队列中&#xff0c;并统计每天的每小时请求数量 环境&#xff1a; go version go1.22.0 linux/amd64 平台 linux X64 步骤一 新建目录 命令如下&#xff1a; mkdir FormData 步骤二 新增…

【Linux】Linux上的一些软件安装与环境配置(Centos7配置JDK、Hadoop)

文章目录 安装JDK配置环境变量1. 卸载已安装的JDK查询已安装的 jdk 列表删除已经安装的 jdk 2. 上传安装包3. 创建 /usr/local/java 文件夹4. 将 jdk 压缩包解压到 /usr/local/java 目录下5. 配置 jdk 的环境变量6. 让配置文件生效7. 校验8.拍个快照吧&#xff0c;免得后面哪里…

2024 年系统规划与管理师(全套资料)

2024年11月系统规划与管理师全套视频、历年真题及解析、章节分类真题及解析、论文写作及范文、教材、模拟题、答题卡等资料 1、2023年5月、2022年5月、2021年5月、2020年5月四套基础精讲视频&#xff0c;案例分析及论文答题套路视频讲解。 2、系统规划与管理师2017-2023年真题…

【go语言开发】redis简单使用

本文主要介绍redis安装和使用。首先安装redis依赖库&#xff0c;这里是v8版本&#xff1b;然后连接redis&#xff0c;完成基本配置&#xff1b;最后测试封装的工具类 文章目录 安装redis依赖库连接redis和配置工具类封装代码测试 欢迎大家访问个人博客网址&#xff1a;https://…

labview的常用小技巧

1.切换&#xff1a;labview中控件函数与函数选板的使用非常频繁&#xff0c;而使用菜单来调用他们非常不方便。最简单的调用方法是&#xff1a;右击前面板&#xff0c;弹出控件选板&#xff1b;右击程序框图&#xff0c;弹出函数选板。然后按住CtrlE组合键&#xff0c;即可快速…

工业数据采集网关的功能与应用-天拓四方

工业数据采集网关是一种专门用于采集、处理、传输工业现场数据的设备。它能够实时收集来自各种传感器、仪表和设备的数据&#xff0c;并通过网络将这些数据传输到云端或数据中心。同时&#xff0c;数据采集网关还具备数据清洗、转换和压缩等功能&#xff0c;确保数据的质量和传…

MySQL将两条记录根据相同条件合并

知识点&#xff1a;在MySQL中&#xff0c;可以使用GROUP BY子句和聚合函数如CONCAT或CONCAT_WS来将多条记录基于相同条件合并为一条记录 【主要是GROUP_CONCAT这个函数的运用】 例如将员工信息表中相同门店的员工信息合并为一条记录 MySQL语句如下&#xff1a; SELECT dept_…