实例:有两台电脑?PC1和PC2,PC1要给PC2发送一个文本文件
Q:为什么目标MAC地址是网关的MAC地址?
A:建立逻辑连接,物理寻址寻到离我最近的,因为要访问不同的网络,所以就得把数据交给出口路由器,然后由出口路由器去帮忙转发。
总结:当访问不同网络时,目标MAC地址是自己网关的MAC地址;如果访问的是同一网络的,目标MAC地址就是目标主机的MAC地址。
每一层都是通过PDU传输数据单元来进行传输的
设备属于哪一层关键是看它工作在哪一层
层级 | PDU | 设备 |
应用层 | 原始数据 | 计算机 上网行为管理(可以控制应用层的流量) |
传输层 | 数据段 | 传统防火墙 |
网络层 | 数据包 | 路由器 、三层交换机(带有路由功能) |
数据链路层 | 数据帧 | 网桥、二层交换机? |
物理层 | 比特流 | 网卡 、集线器 、中继器 |
关于各层设备可参考这篇博客:
计算机网络各层网络设备(中继器、集线器、网桥、交换机、路由器、网关)总结_计算机网络各层设备-CSDN博客
主机A接交换机A,交换机A接路由器A,路由器A接路由器B,路由器B接交换机B,交换机B接主机B。
主机A发送数据给主机B,发现处于不同网络中,进行数据封装
数据封装:
应用层、传输层、网络层、数据链路层、物理层,一层层封装,然后通过网线传到交换机A。
根据交换机工作原理,交换机中维护了一张MAC地址表,查看源MAC地址,如果不在自己的表中,进行学习并记录到表中,再查看目标MAC地址,如果在自己表中,找到对应的接口直接将原始数据封装进行转发。查看源MAC地址和目的MAC地址,源MAC地址是PC1的MAC地址,目标MAC地址是路由器A的MAC地址,解封完之后重新封装到物理层。
来到路由器A,路由器A会解封到网络层,查看源IP地址和目标IP地址,源IP地址是主机A的,目标IP是主机B的,在路由器上会有路由表,在路由表去查看有没有到达主机B的路由条目,如果有直接从对应接口转发出去,如果没有返回给主机A目标不可达。如果可达接着继续封装到路由器B。
复杂中间的过程:
路由器A会去请求下一跳路由器的IP地址,请求来之后将源MAC地址换成路由器A的,将目标MAC地址换成路由器B的,重新进行二层封装,找到对应的接口转发出去。
只要是数据经过了路由器都会进行数据链路层的重新封装,网络层是不会重新封装的;网络层主要目的是去查看目标的IP地址是否可达,如果可达就直接转发,如果不可达就返回给源目标到不了。比如:路由器B发现目标不可达,它会返回给路由器A目标不可达,而不是直接返回给主机A。