本文主要是介绍Linux入门真经-042以太网帧与交换机转发原理基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前两节简述了网络整体的样貌以及分层模型,大致属于纲领性的文章,很多细节并没有详说。
本节给大家介绍的是以太网帧的转发方式与交换机的简要工作原理。
我们在前面的小节讲过,交换机可以在同一个广播域里交换数据,从OSI七层模型的角度看,它工作在第二层数据链路层,数据流最多被解封至数据帧,只用做在局域网内的选路,至于IP、运输层、应用层的内容,交换机默认统统都看不到。数据链路层使用MAC地址来进行寻址。还记得MAC地址么?MAC地址由48位二进制数组成,常用12位的16进制数字来表示
一、帧转发方式
局域网内的帧主要通过三个方式发送:单播、广播、组播。
单播
单播是一对一的转发,从单一的源发往单一的目的地
单播帧的源MAC地址的第8个位如果为0,则表示这是一个单播帧。只有真正的目的主机才会接收并处理这个数据帧,其他主机接收后发现目的MAC与本机MAC不一致,则会直接将这个数据帧丢弃,不会做进一步的处理。
广播
广播是一对多的转发。数据从单个源发送给局域网内的所有主机。广播帧的目的MAC为全1,即FF:FF:FF:FF:FF:FF,所有收到这个帧的主机都会处理这个帧的数据。
当局域网里的所有主机都要接收相同的数据并处理的情况下,会用到广播方式。广播方式会产生大量的流量,严重时甚至可能产生网络拥塞,前面也讲过,路由器可以分割广播域。
组播
源MAC的第8位为1,表示这是一个组播帧。组播帧从单一源发往局域网内侦听该组播地址的主机。某些协议会用到组播这一技术,这里我们可以不做过多的了解。
二、交换网络原理
交换机是工作在数据链路层的设备。单播、广播、组播无非是数据帧的种类,他们都会由交换机去传递。
交换机的转发行为大致可分为三种:泛洪、转发、丢弃
我们前面也提到过,交换机里有一个CAM表,记录了MAC地址和交换机端口的映射关系。交换机对于数据帧的处理机制可以概括如下:
1、进入交换机的是单播帧,交换机会在CAM表中查找去往该MAC应该从哪个端口转发:
如果在CAM表里找不到该MAC的相关信息,交换机会执行泛洪操作。(注意,泛洪和广播是两码事,泛洪也能传播单播数据帧)
如果能找到,则对比一下,该mac对应的端口是不是接收该数据帧的端口,如果不是,就从这个端口转发,如果是,则丢弃。
2、如果进入交换机的是广播帧,则不查表,直接泛洪。
3、如果是组播帧。。此处不讨论,不在基础范围内了。
交换机的工作原理就是这么简单。当然,这只是最基础最基础的内容,也是你必须知道的东西。现实生活中还会运用到更多的交换技术。比如,可以隔离广播域的vlan、防止交换机环路产生广播风暴的stp等等。这些大多数是给专攻网络的网络工程师去操心的。感兴趣的朋友可以去看《CCNA学习指南》,看完这本书后掌握的网络知识就足够使用了。这本书还会向你介绍如何配置思科的路由器和交换机,如果你不是网络工程师,可以只看原理不看配置。因为不同厂商的路由交换设备,设备特性和配置方式都会有所不同。这也是搞网络的工程师头疼点之一。所幸的是,这些设备正常工作所遵循的TCP/IP协议族是相同的,厂商也会提供详尽的配置手册和技术支持。网络也是IT行业的一个方向,博大精深。我认为,如果主攻系统运维/数据库/云计算方向,CCNA的知识就绰绰有余了。如果工作有特殊需要,按需学习即可。
这篇关于Linux入门真经-042以太网帧与交换机转发原理基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!