报文的路由过程

news2024/11/28 0:34:19

路由转发过程 

记住路由转发过程结论:报文ip是不变,mac改变。

  1. mac地址在同一个广播域传输过程中是不变的;在跨越广播域的时候会发生改变的;
  2. IP地址在传输过程中是不会改变的(除NAT的时候)。

        ip地址本质上是终点地址,目的ip地址不会变。而mac地址是下一跳地址,每经过一次路由器都会发生变化(mac地址起到了记录下一跳的作用)

        mac地址在链路层通过以太网协议封装,链路层只负责设备到设备之间的通信,这层是真正意义上的通信,所以称为物理通信。

 

路由表

ARP协议:通过报文的目标IP,获得下一跳的目标MAC。完成报文封装。

一个主机如何获取另一个主机的MAC地址呢?

这就需要用到ARP(Address Resolution Protocol)协议,它是一种用于根据IP地址获取MAC地址的协议。ARP协议的工作原理和过程如下:

当一个主机要发送数据给另一个主机时,首先会检查自己的ARP缓存表(ARP cache),看是否已经有目标主机的IP地址和MAC地址的对应关系。如果有,则直接使用该MAC地址封装帧并发送出去。

如果没有,则需要发起ARP请求(ARP request),向局域网内广播一个特殊的帧,其中包含了自己的IP地址和MAC地址,以及目标主机的IP地址。该帧的目标MAC地址为广播地址FF-FF-FF-FF-FF-FF,表示所有设备都要接收该帧。

局域网内的所有设备都会收到该ARP请求帧,并根据其中的目标IP地址判断是否是自己。如果不是自己,则丢弃该帧,并且将发送者的IP地址和MAC地址加入自己的ARP缓存表中。如果是自己,则回复一个ARP应答(ARP reply),向发送者单播一个特殊的帧,其中包含了自己的IP地址和MAC地址,以及发送者的IP地址。该帧的目标MAC地址为发送者的MAC地址。

发送者收到该ARP应答帧后,就知道了目标主机的MAC地址,并将其加入自己的ARP缓存表中。然后就可以使用该MAC地址封装帧并发送出去。
————————————————
原文链接:https://blog.csdn.net/weixin_43025343/article/details/130840277

路由转发过程-案例(有问题,未完善):

假设拓扑图是这个样子,B1和B2是路由器B上的两个接口(LAN、WAN口),C1和C2是路由器C上的两个接口(WAN、LAN口),A和E是PC,由主机A向主机E发送数据包。

A-----(B1-B2)-----(C1-C2)-------E

么在主机A形成的数据包的目的IP就是E的IP,源IP就是主机A的IP地址,源MAC地址就是A的MAC地址,此时目的(下一跳)MAC还不知道那么A首先要在局域网中通信(如果目标机在同一局域网最好)。

根据路由转发的宏观思路,A需要先找到目标IP所在的网段。通过网络层,先将报文中目标IP跟自身路由表第一条路径的子网掩码按位与得到网络号,这么做的目的是判断目标IP所处子网(网关路由) 是否等于 当前路由器直接相连的子网。如果是,就通过本机ARP表,获得子网中目标IP机的MAC地址,封装好报文广播在子网中,目标机直接比对MAC就收到包了;依次比对如果都不是,就把网关MAC直接封装到报文,广播到子网中。

该局域网中的每一台主机都会收到这个报文。先对这个报文进行解包取出里面的目的MAC地址,一比对发现MAC地址不对,于是直接将这个报文丢弃。最终只有路由器B在数据链路层解包取出MAC地址,一比对发现这个报文是给自己的。于是再次向上交付,到网络层解析出目的IP。路由器比对自己的路由表,判断下一跳网段,决定要将报文发送给C设备。此时需要再次向下封装,换上新的目的MAC地址,由B发给路由器C。

路由器C接收到数据包后和B做的操作是一样的,路由器比对自己的路由表,发现C的IP与目的IP是一致的,最终源MAC地址变成C2的MAC地址,目标MAC地址变成主机E的MAC地址,然后发送给主机E,这样E就收到了这个数据包。

当E回复数据包的时候,就是把收到的数据包的源IP地址(主机A的IP地址)和源MAC地址(接口C2的MAC地址)作为他的目标IP和目标MAC地址。

转:      路由转发过程的IP及MAC地址变化-chinaltang-ChinaUnix博客

非同一局域网下两台内网设备之间的网络通信

两台电脑都处在自己的一片局域网下,ip地址可能是碰巧“同网段”,也可能不同网段。这种情况下单纯只靠两个内网ip显然是不能准确到达对方主机的。很可能寻到错误的地址。

我们可以很毫无差错的从自己的主机访问到处于公网的一台服务器,因为公网ip地址的唯一性。这个过程中,你的报文会经过自己内网的路由器(报文中把源ip,从你自己的替换成路由器的WAN ip;并且路由器记住一个映射关系,你是哪个LAN的(猜测),你的局域ip是多少。这样将来报文返回的时候,里面的目的ip是你路由器,你应该要知道把这个报文给内网里面的谁),可能会穿过路由器所在的更大的内网,最终到达一个公网节点,最后到达目的服务器。【这样也就实现了我们可以和处在公网中的“中介”服务器互发消息】

这样就可以在上面的方式,通过同一台公网中介转发,同一个端口的方式,实现两个来自不同内网的主机通话。

01、处于不同局域网下的Socket通信(配置)_c++socket可以连接不在一个局域网中的ip地址吗-CSDN博客文章浏览阅读6.7k次,点赞14次,收藏85次。目录原理一、公网IP二、frp配置1、在服务器上配置2、在客户端配置配置安全组参考学习的网站原理拥有一台有公网IP的云服务器作为中转站,将局域网下的电脑将数据信息发送给中转的服务器,然后这个中转的服务器将收到的数据转给另外一台电脑,这样就可以实现两台电脑之间的互相通信。原因:我们可以实现在局域网下的通信而不能在不是同一局域网下的通信是因为,不同的私网之间是无法通信的,我们使用的192.168.x.x都是私网,但是所有的私网却都可以和公网ip直接通信的。所以..._c++socket可以连接不在一个局域网中的ip地址吗https://blog.csdn.net/weixin_44917390/article/details/106685219?ops_request_misc=&request_id=&biz_id=102&utm_term=TCP%E5%AE%9E%E7%8E%B0%E5%9C%A8%E4%B8%8D%E5%90%8C%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84%E4%B8%A4%E5%8F%B0%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1%20(c/c++)&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-106685219.142%5Ev96%5Epc_search_result_base7&spm=1018.2226.3001.4187

家庭路由器的常见组网方式

https://ask.zol.com.cn/x/4745715.html

如果电脑是通过路由器上网,本地连接的IP地址是内网IP,它与路由器的LAN IP 同网段,通过路由器的LAN IP(也叫网关)与上一级路由器通讯。
一、电脑通过路由器上网,基本链路如图:
1、电脑IP地址:192.168.0.100为内网IP
2、路由器LANIP:192.168.0.1同样为内网IP,wanIP :200.200.200.200为公网IP即外网IP
3、电脑在互联网中使用IP :200.200.200.200为出口
 


二、部分营运商IP资源不足,一般常用搭建城域网共享互联网方式,如图:
1、电脑IP地址:192.168.0.100为内网IP
2、路由器LANIP:192.168.0.1同样为内网IP,wanIP :10.1.2.3为城域网IP。
3、电脑在互联网中使用IP :200.200.200.200为出口,与运营商的其它用户共用IP。
 


三、路由器做为家庭的桥接设备,链路与第二种相似,只是营运商路由器换成了家庭的主路由器。

主路由器和路由器是一个局域网的。桥接模式(bridge),是把副路由的DHCP功能关闭了的,连接副路由器的设备自然是使用的主路由分配的IP地址,连接副路由的设备的IP和连接主路由的IP它们依旧是一个网段,可以无障碍地互相访问的。


四、宽带为静态IP方式,营运商提供外网IP地址,电脑配置本地连接的IP地址即可上网,那这个IP地址就是外网地址,不再是内网地址。
 

二层交换机与三层路由器

二三层转发的二三层?

一层交换机:只支持物理层协议。
  二层交换机:支持物理层和数据链路层协议。
  三层交换机:支持物理层,数据链路层及网络层协议。
  也就是说,二层交换机主要执行二层数据链路层(但也参与物理层功能的执行,即一层交换机)的功能,所以叫二层交换机。
  如集线器是一层设备,因为只执行物理层的功能。

  从ISO/OSI的分层结构上说,交换机可分为二层交换机、三层交换机等,没有一层交换机的说法。
  二层交换机指的就是传统的工作在OSI参考模型的第二层--数据链路层上交换机,主要功能包括物理编址、错误校验、帧序列以及流控。

        应该不具有分ip功能吧?
  三层交换机是一个具有三层交换功能的设备,即带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。

虚拟网卡:

虚拟网卡_虚拟网卡是什么-CSDN博客

网络访问防火墙原理?

参考:

以太网帧格式 以及 认识MAC地址(局域网的通信原理)_目的mac地址-CSDN博客

浅谈IP地址和MAC地址的区别,路由转发过程_路由器通信是通过ip还是mac-CSDN博客

既然有了IP地址,为什么还需要MAC地址?两者到底有啥区别,深入分析后终于明白了!_为什么要有mac地址_wljslmz的博客-CSDN博客

【精选】路由转发的过程-CSDN博客

以太网帧格式 以及 认识MAC地址(局域网的通信原理)_目的mac地址-CSDN博客

【精选】认识ARP协议_源mac地址和目的mac地址怎么填-CSDN博客

有空时候消化下这几个 :?

【精选】【虚拟机】桥接模式下,让虚拟机和宿主机相互ping通(对比NAT模式)_桥接模式主机和虚拟机互ping-CSDN博客

ubuntu网络配置(桥接模式, nat模式, host主机模式)_桥接模式和nat模式过程u.untu-CSDN博客

路由模式和桥接模式的区别_道系 青年的博客-CSDN博客

20张图说清楚什么是 IP 协议 - 知乎 

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

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

相关文章

解析mfc100u.dll文件丢失的修复方法,快速解决mfc100u.dll问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“缺少某个文件”的错误。最近,我也遇到了一个这样的问题,那就是“mfc100u.dll丢失”。这个问题可能会导致某些应用程序无法正常运行,给我们带来困扰。…

怎样解决“缺失msvcp110.dll”错误,msvcp110.dll的修复教程

在计算机使用过程中,我们可能会遇到一些系统错误提示,比如“msvcp110.dll文件丢失”。这是因为msvcp110.dll是Microsoft Visual C 2012的一个动态链接库文件,如果这个文件丢失或者损坏,就可能导致某些程序无法正常运行。那么&…

一种FSK信号符号同步的思想

FSK原理 FSK利用频率传输信息,即将信息流调制到频率上。以最简单的2FSK通俗来讲,用2个不同的频率 f 1 f_1 f1

淘宝协议最新版

我可以为您提供一些示例代码,以演示一些与电商平台相关的功能。请注意,以下代码仅为示例,具体实现还需要根据您的应用程序的架构、技术栈和需求进行调整和扩展。 1. 用户注册功能: - 后端实现:在后端,您可…

浅谈OSG的默认视点方向

目录 1. 前言 2. OPenGL坐标系和OSG坐标系 3. 默认视点有关的几个案例 4. 视点操作 4.1. 视点调整 4.2. 左右转动 4.3. 向前走 5. 总结 6. 参考资料 1. 前言 在OSG开发中,对视点的理解透彻是必须可少的,特别是在进行自定义操控器类的开发中&…

【组件】身份证卡片

效果展示 组件代码 <div class"cardOneRoot"><img :src"itemInfo.psnPicUrl ? itemInfo.psnPicUrl : " alt""/><div class"infoDiv" v-if"itemInfo.noInfo 1"><div v-for"(item2, index2) in …

“第五十七天”

不出意外的话&#xff0c;机组这周也就过完了&#xff0c;不过就真的是简单过一遍&#xff0c;先简单有个印象吧&#xff0c;这样看的话还是放假之前还是有机会把四大件都过一遍的。 这个思路&#xff0c;真的太神了&#xff0c;当然也是自己太弱了&#xff0c;就这我还为自己想…

VulnHub DC-3

一、信息收集 1.nmap扫描 只开放了80端口&#xff0c;所以只能从80入手 访问web页面 提示&#xff1a;只有一个flag&#xff0c;并且只有一个入口 wappalyzer插件 知道站点使用Joomla框架 使用该框架扫描工具 2.Joomla工具 joomscan --help joomscan -u 192.168.103.192 -e…

HNU-计算机网络-实验1-应用协议与数据包分析实验(Wireshark)

计算机网络 课程基础实验一 应用协议与数据包分析实验(Wireshark) 计科210X 甘晴void 202108010XXX 一、实验目的&#xff1a; 通过本实验&#xff0c;熟练掌握Wireshark的操作和使用&#xff0c;学习对HTTP协议进行分析。 二、实验内容 2.1 HTTP 协议简介 HTTP 是超文本…

《算法通关村——缓存机制了解LRU实现》

《算法通关村——缓存机制了解LRU实现》 介绍 LRU是"Least Recently Used"&#xff08;最近最少使用&#xff09;的缓存机制&#xff0c;它是一种常用的缓存算法&#xff0c;用于管理缓存中的数据项。LRU缓存机制的基本思想是&#xff0c;当缓存达到其容量限制时&a…

ChatGPT对未来发展的影响?一般什么时候用到GPT

ChatGPT以其强大的自然语言处理能力对未来的发展具有重要影响。以下是ChatGPT的潜在影响和一般使用情况&#xff1a; 改善自然语言理解和生成&#xff1a;ChatGPT和类似的模型可以改善机器对人类语言的理解和生成。这将有助于改进各种应用领域&#xff0c;包括智能助手、聊天机…

功放电路有这么多种,哪种音质最好呀?

功放电路种类很多&#xff0c;首先得知道各个功放电路的特点。 第一种&#xff0c;A类功放&#xff08;甲类功放&#xff09;&#xff0c;在信号的整个周期内都不会出现电流截止(即停止输出)的一类放大器。 但是A类放大器工作时会产生高热&#xff0c;效率很低&#xff0c;优…

使用postman进行接口自动化测试

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

数据结构之栈的实现

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇: Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”…

干货分享,大厂内部压测方案设计!

01、为什么要做压测 1、什么是压力测试&#xff1f; 不断向被测对象施加压力&#xff0c;测试系统在压力情况下的表现。 2、压力测试的目的是什么&#xff1f; 测试得出系统的极限性能指标&#xff0c;从而给出合理的承诺值或者容量告警&#xff1b; 找出系统的性能瓶颈&a…

5.1 实体完整性

思维导图&#xff1a; 前言 第5章 数据库完整性笔记 定义&#xff1a; 完整性&#xff1a;确保数据的正确性和相容性。 正确性&#xff1a;数据与现实世界语义相符、反映实际状况。相容性&#xff1a;同一对象在数据库的不同关系表中数据逻辑上是一致的。 示例&#xff1a; 学…

【发表案例】2区正刊,网络安全、智能系统领域,2个月3天录用,11天见刊,16天检索!

计算机类SCIE 【期刊简介】IF&#xff1a;4.0-5.0&#xff0c;JCR2区&#xff0c;中科院3区 【检索情况】SCIE 在检&#xff0c;正刊 【征稿领域】提高安全性和隐私性的边缘/云的智能方法的研究&#xff0c;如数字孪生等 【截稿日期】2023.11.30 录用案例&#xff1a;2个月…

LCD驱动程序——Framebuffer应用编程

1.LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。Frame 是帧的意思&#xff0c;buffer 是缓冲的意思&#xff0c;这意味着 Framebuffer 就是一块内存&#xff0c;里面保存着一帧图像。Framebuffer 中保存着一帧图像的每一个像素颜色值&#xff0c;假设 L…

怎样利用 AI 大模型,辅助研发管理与效能提升?

AI 大模型已经逐渐渗透到各行各业的应用场景中&#xff0c;在软件研发领域也不例外。在软件研发领域&#xff0c;从需求分析到软件设计&#xff0c;从软件开发到测试&#xff0c;以及最后发布上线&#xff0c;AI 在各个环节都发挥着重要作用。10 月 21 日&#xff0c;思码逸首席…

react条件渲染

目录 前言 1. 使用if语句 2. 使用三元表达式 3. 使用逻辑与操作符 列表渲染 最佳实践和注意事项 1. 使用合适的条件判断 2. 提取重复的逻辑 3. 使用适当的key属性 总结 前言 在React中&#xff0c;条件渲染指的是根据某个条件来决定是否渲染特定的组件或元素。这在构…