内外网数据的流转大体方式

一、同网段设备之间的数据流向:

数据从A设备到同网段的B设备,必须知道A和B的IP及他们的物理地址即MAC,

通常情况下,A发往B的数据中已经包含的A的IP和MAC(源IP和MAC),以及B的IP(目的IP),缺少B的MAC(目的MAC),此时需要获取B的MAC

而此时通过计算得知,AB位于同网段。故而,A会向B发送一个ARP请求,与A同网段的所有设备都会收到此请求,

只有B在收到A的ARP请求后,才会将自己的MAC打包并发送给A,

A接收到后解包并获取B的MAC,再将B的MAC打包到前述未发送的数据中,

此时A再发送的数据被同网段的所有设备都接收到,但只有B能解析成功,完成发送。

 

二、不同网段设备的数据流向:

A向与A不同网段的B设备发送数据,此时A不知道B的MAC地址,故而无法将数据包的MAC直接拿到,

此时,就用到了网关!!

A计算发现与B设备不在同网段,故而会向网关发送ARP请求,获取到网关的MAC,并将MAC打包的A未发送的数据包中

即 A设备的IP和MAC(源IP和MAC),B设备的IP和网关的MAC(目的IP和网关),发送数据

此时网关收到A的数据后, 发现MAC是自己的,而IP是别人的,所以网关无法解析数据包

此时网关就会将数据发给他的下一跳路由器

下一跳路由器再经过若干转发用同样的数据将数据发送到目的设备B,完成发送。

 

注意:

  在还没有出内网时,目标MAC必须写成网关的MAC地址发出去,

  当网关收到时,再把目标MAC地址改成下一跳的MAC地址发出去,同时源MAC地址要始终保持为发出端口的MAC地址,

  而源IP及目标IP不曾改变,就算到达了公网上,目标MAC仍然在不断改变着,直到最后,这个数据包到达目标IP的网络,最终通信结束!

 

参考:https://blog.csdn.net/yinshitaoyuan/article/details/51794567

 

posted @ 2021-08-04 14:37  bhz  阅读(366)  评论(0编辑  收藏  举报