前面已经为大家介绍了OSI分层思想,也多次提到了集线器、交换机、路由器这些设备。那么今天就作个总结,通过一个实例,具体分析一下互联网通讯过程中,集线器、交换机、路由器分别是怎么工作的,希望能让大家对这些日常生活中的设备有一个更深的了解。

假想一个场景,两个局域网准备进行跨网段通讯。数据从源设备发出,分别经过集线器、交换机、本网段路由器、另一个网段路由器从而到达目标设备,了解这个过程中数据传输的整个细节,也就理解了集线器、交换机、路由器的工作原理。
首先介绍数据的封装、准备过程。在发送端,应用层准备好要传输的文件,在传输层进行分段、编号,这时候是数据段。进入网络层对分段的数据加上IP地址,包括源地址和目标地址,这时候是数据包。在数据链路层还要写上物理访问的地址,即mac地址,同时进行差错校验,这时候是数据帧。数据链路层再往下传输就要分两种情况了。第一种,源设备与目标设备在同一个网段(通过比较IP与子网掩码来判断),这样就不需要过路由器,直接通过广播获取目标设备的mac地址,封装的时候就根据目标设备的mac地址直接封装。第二种,源设备与目标设备不在一个网段,也就是我们所假设的情况,这时就要把数据帧转发给路由器了。由于交换机是根据mac地址转发数据的,所以此时原设备仍然需要就需要广播询问路由器的mac地址,此时封装的就是路由器的mac地址。这一过程还用到了前几节所讲到的网关。至此,数据链路层完成了封装。在物理层,数据会变成比特流,才能以数字信号传播。

OSI参考模型与TCP/IP模型对照
接下来介绍数据封装完成后的传输过程。数据帧在物理层变成比特流后,首先经过集线器进行传输。集线器的作用只是负责传输比特流,不做任何判断,功能上可以简单理解为与网线类似,唯一比网线多的功能就是放大信号。接下来数据经要过交换机。交换机的接口收到比特流,会进行存储,再根据目标的mac地址,决定由哪个口转发出去。所以交换机的工作可以概括为存储转发。交换机发出比特流后,由路由器进行接收。由于路由器有网卡,可以看懂数据链路层的地址,所以先通过mac地址确认是不是给自己的,收下数据帧后,路由器会去掉mac,只查看数据包,根据数据包的地址选择路径,根据路由表选择出口。但是路由器看不懂数据包中的数据内容。这与收发快递的原理一样,只负责传输,不关心内容。
选择好后,由路由器的网卡重新封装为数据帧。路由器再次把数据帧变成比特流传输到另一个网段的路由器,另一个路由器同样去掉mac,根据数据包再次选择路径,重新封装,根据目标mac地址传输到目标设备。比特流到达目标设备后,再一层一层解封装,最终数据到达应用层。

简单的说,网络层的IP地址决定了数据的起点和终点,而物理地址(mac)决定了下一步传到哪个设备。
好了今天就为大家科普到这里。希望能对大家理解这些概念有所帮助,同时建议大家在遇到困惑时,不要纠结于概念本身,多结合实践去思考,也许问题就会迎刃而解。谢谢关注!