路由转发过程
记住路由转发过程结论:报文ip是不变,mac改变。
- mac地址在同一个广播域传输过程中是不变的;在跨越广播域的时候会发生改变的;
- 而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 协议 - 知乎