数据帧在网络中传输,变化的是源MAC地址和目的MAC地址,而源和目的IP地址是不变的。当然,也有例外的情况:二层网络MAC地址不会变化,NAT网络源IP地址会发生变化。
这里举个简单的例子,网络结构如下:
A——(B1,B2)——(C1,C2)——E
终端A和E通信,中间经过路由器B和C,B1和B2是路由器B的两个接口,C1和C2是路由器C的两个接口。
初始状况
主机A形成的数据包的目的IP就是E的IP地址,源IP地址就是主机A的IP地址;
目的MAC地址是B1的MAC地址,源MAC地址是A的MAC地址。
转发过程
A->B:由A发送给路由器B,B经过重新封装之后,源IP地址和目的IP地址是不变的,源MAC地址变成B2的MAC地址,目的MAC地址变成C1的MAC地址,封装之后发送给路由器C;
B->C:路由器C收到数据包之后,源IP地址和目的IP地址保持不变,源MAC地址变成C2的MAC地址,目的MAC地址变成主机E的MAC地址,然后发送给主机E。
在二层网络中,通过MAC地址寻址,不需要改变源MAC地址和目的MAC地址。
比如在二层网络中A和B通信,A发出的数据包时,首先发送ARP数据包询问B的MAC地址,这样A发出的数据包,目的MAC地址就是B的MAC地址,数据包直接转发即可。
如果网络出口采用了NAT路由转发方式,那么在网络出口将会改变源IP地址,源端口,映射到网络出口的映射IP公网IP地址和端口。NAT转发之后,将会根据路由转发的规则转发数据。
总之,在二层网络中源MAC地址和目的MAC地址保持不变,在三层网络路由转发时,源MAC地址和目的MAC地址要发生改变,目的MAC地址指向下一跳路由器的接口MAC地址。
联系客服