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

在这里插入图片描述

情景一:同一广播域内,两台主机通信过程:
当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.mfbz.cn/a/448307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【仿真总结】基于matlab的传递函数计算与绘图

前言 在DC-DC电路控制算法中&#xff0c;PID控制是最常见且实用的&#xff0c;但实现前提有二&#xff0c;一是需要手算电路传递函数&#xff0c;二是需要将实际电路元件数值代入计算&#xff0c;第一步无法避免&#xff0c;但是在进行第二步时&#xff0c;存在大量基础、细致的…

使用Amazon Bedrock托管的Claude3 学习中国历史

最近被Amazon Bedrock托管的Claude3 刷屏了&#xff0c;那么先简单介绍下什么是Claude 3。 Claude 3是Anthropic 推出了下一代 Claude模型&#xff0c;针对不同用例进行优化的三种先进模型&#xff1a;Claude 3 Haiku、Claude 3 Sonnet 和 Claude 3 Opus&#xff0c;使用户能够…

Python速度大比拼:与主流编程语言的速度对决

在评估用于具体业务的编程语言时&#xff0c;经常考虑的一个关键指标之一是执行速度。Python以其简单性和可读性而闻名&#xff0c;但有时却因其性能而受到质疑。在这个领域&#xff0c;我们需要深入比较分析Python在执行速度方面与其他流行的编程语言相比的情况。 程语言执行速…

遥感与ChatGPT:科研中的强强联合

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已逐渐渗透到各个领域&#xff0c;为传统行业带来了前所未有的变革。其中&#xff0c;遥感技术作为观测和解析地球的重要手段&#xff0c;正逐渐与AI技术相结合&#xff0c;为地球科学研究与应用提供了全新的…

金蝶天燕 AMDC 替代redis

上传控制台文件到linux opt目录 解压安装包 tar -zxvf amdc_console_release_v2_x86_64.tar.gz 进入解压后的文件夹 cd amdc-console .执行启动命令 nohup ./amdc-console >nohup.out 2>&1 & 地址访问 http://ip:9001 三员管理中的三员初始密码 三员分别指&…

day16_Set_Map

今日内容 零、 复习昨日 一、Set 二、Map 零、 复习昨日 集合特点 长度不固定存储的数据类型不限制有丰富api方法可以调用有些有序,无序,或者有些允许重复有些会去重 集合体系图List 集合, 规定了所存储的元素 有序且允许重复常用的ArrayList 底层是数组,初始容量10存满后扩容,…

LLM 技术图谱(LLM Tech Map) Kubernetes (K8s) 与AIGC的结合应用

文章目录 1、简介2、基础设施3、大模型3、AI Agent&#xff08;LLM Agent&#xff09;4、AI 编程5、工具和平台6、算力7、Kubernetes (K8s) 与人工智能生成内容 (AIGC) 的结合应用7.1、摘要7.2、介绍7.3、K8s 与 AIGC 的结合应用7.4、实践案例7.5、结论 1、简介 LLM 技术图谱&…

Elastic Stack--05--聚合、映射mapping

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.聚合(aggregations)基本概念桶&#xff08;bucket&#xff09;度量&#xff08;metrics&#xff09; 案例 11. 接下来按price字段进行分组&#xff1a;2. 若想对所…

C语言:预处理详解(知识点和代码演示)

和黛玉学编程........> 预定义符号 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C&#xff0c;其值为1&#xff0c;否则未定义 比如&#xff1a; #define定义常量 #def…

Visual Studio2022使用(后续使用到再更新)

安装 从官网安装&#xff0c;下载即可。注意&#xff1a;选择社区版。&#xff08;免费够用&#xff09; 安装好后打开安装包&#xff0c;会继续下载东西&#xff0c;挂几个小时差不多就下好了。 使用 1、打开VS&#xff0c;点击“创建新项目”&#xff0c;选择“空项目”。…

【图论】 【割点】 【双连通分类】LCP 54. 夺回据点

本文涉及知识点 图论 割点 双连通分类 割点原理及封装好的割点类 LeetCode LCP 54. 夺回据点 魔物了占领若干据点&#xff0c;这些据点被若干条道路相连接&#xff0c;roads[i] [x, y] 表示编号 x、y 的两个据点通过一条道路连接。 现在勇者要将按照以下原则将这些据点逐一…

5分钟搭好一个易支付,个人最简单的对接支付宝方式

最近在疯狂折腾网站相关的知识,搭建了另一个平台后,需要涉及支付相关的内容。即 用户在某个平台请求支付时候,对接第三方支付支付宝,收款信息是我的,然后支付成功后给与回调。网上很多易支付网站,但是这玩意儿,既然咱碰到了,咱就自己弄。那么说搞咱就搞。 假设你已经搭…

Kafka MQ 生产者和消费者

Kafka MQ 生产者和消费者 Kafka 的客户端就是 Kafka 系统的用户&#xff0c;它们被分为两种基本类型:生产者和消费者。除 此之外&#xff0c;还有其他高级客户端 API——用于数据集成的 Kafka Connect API 和用于流式处理 的 Kafka Streams。这些高级客户端 API 使用生产者和消…

BUUCTF---easyre1

1.记录一下第一次做逆向题目 2.题目描述&#xff0c;下载附件 3.解压之后是一个可执行文件&#xff0c;先用PE查看是否有壳 4.没有壳&#xff0c;接下来用ida打开&#xff0c;直接拖进ida即可&#xff0c;接下来使用快捷键fnshiftf12查看字符&#xff0c;若是没有出现搜索框&a…

收割机案例-简单的动态规划

#include<iostream> using namespace std; // 创建土地 short land[32][32]; short n,m;// 实际使用的土地大小 short landA[32][32];//用A收割机收割数量记录 short landB[32][32];// 用B收割机收割数量记录 int main(){cin>>n>>m;// 存储农作物产量for(sho…

GNN-Transformer新突破!全局与局部的完美融合

图神经网络&#xff08;GNN&#xff09;和Transformer的结合是近年来的研究热点。这类结合不仅能够让两者发挥各自的优势&#xff0c;还能推动模型的创新&#xff0c;提高处理图数据的效率和性能。 具体点讲&#xff0c;通过利用Transformer&#xff0c;我们可以扩展GNN的感受…

Spring boot 操作 Redis

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

nginx-排查一次大文件无法正常下载问题

目录 问题现象&报错信息 问题现象以及分析 nginx报错信息 问题解决 方法1&#xff1a;配置proxy_max_temp_file_size 方法2&#xff1a;关闭proxy_buffering 参考文档 问题现象&报错信息 问题现象以及分析 文件正常从后端服务器直接下载时&#xff0c;一切正常…

【git bug】warning: auto-detection of host provider took too long (>2000ms)

【git bug】warning: auto-detection of host provider took too long (>2000ms) 报错问题&#xff1a; warning: auto-detection of host provider took too long (>2000ms) 报错截图&#xff1a; 报错描述&#xff1a; 在windows操作系统&#xff0c;未连接互连网电…

java之mybatis

准备工作 上面4步骤 XML映射文件 动态SQL
最新文章