简介:二层以太交换技术
以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET。
以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是共享式以太网,第二类是交换式以太网,交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现。
以太网的标准拓扑结构为总线型拓扑,但快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问/碰撞侦测)的总线技术。
MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 。
MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性 。
在以太网的发展过程中,以太网的帧格式出现过很多个版本,目前正在广泛应用的为DIX(Dec, Intel, Xerox)的ethernetII帧格式和802.3帧格式
EthernetII型的帧格式由DEC, Intel和xerox在1982年公布,由ethernetI修订而来,EthernetII型帧格式下图所示
Type值 | 上层协议内容 |
---|---|
0x0800 | IP报文 |
0x0806 | ARP协议报文 |
0x8035 | RARP协议报文 |
0x8137 | IPX和SPX协议报文 |
你会发现 Wireshark 展现给我们的帧中没有校验字段,Wireshark在抓包前,在物理层网卡已经去掉了一些东西,比如FCS等,之后利用校验码CRC校验,正确时才会进行下一步操作,这时才开始抓包,因此,抓包到的是去掉前导码、FCS之外的数据,没有校验字段。
假设有这样一种总线型网络:
电脑1要发送消息给电脑3,在电脑1发送给电脑3消息时,中间的电缆被占用,其他电脑之间就无法通信,如果电脑4和5之间想通信,就需要先检测中间的电缆是否没占用,如果没有被占用才可以发送。
再假设有这样一种网络:
四个电脑同同时接到一个设备上,但是这个设备不具备”智能记忆”能力和”学习”能力,它从任何一个接口上线收到以太帧,都会从其他三个接口发出去。这样也会遇到上述总线型网络的问题,任意两个电脑之间通信,都会影响其他电脑。
所以此时需要一种协议,来规范上述类型网络多台设备之间的冲突。这个协议就是CSMA/CD协议,CSMA/CD协议的工作过程如下:
集线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。
从3.2章节的描述可以看到,集线器类型的以太网实质是一种共享式以太网,多个设备共享一个线路,会有严重的弊端,比如说冲突严重,广播泛滥,无任何安全性
我们把由交换机组成的以太网称作交换式以太网,交换式以太网大大解决了共享式以太网的缺陷,减小了冲突域的范围,显著提高了网络性能,并提高了网络的安全性。
交换机与3.1章节中的hub在接线方式上是一样的,是一个具有多个端口,可以连接多个电脑的以太帧转发设备。但是相对于集线器来说,交换机具有三个主要功能:
交换机中有一张MAC地址表,这个表中维护了交换机端口与该端口直连的设备的MAC地址的对应关系。如下图和表所示。
交换机基于以太帧的目的MAC做出转发选择,例如电脑A要发送给电脑C一个IP消息,则以太帧内容如下。
交换机收到这个报文以后,在自己的MAC地址表中查找目的MAC(MAC-C)对应的端口,查找到对应的端口是port3, 然后交换机就把报文从port-3转发给电脑C。
相对于总线型以太网(共享式以太网)来说,这个优点就很明显了,A和C之间通信,B和D感知不到,B和D的线路仍然是空闲的,A,C通信不影响BD, 报文也不会被广播给B,D,从而安全性也得到了提高。
4.1章节中描述了交换机根据自己的MAC地址表选择以太帧从哪个端口转发出去,但是此时问题来了。交换机在刚上电的时候,MAC地址表是空的,对于任何一个以太帧,它都无法找到目的MAC对应的出端口。这就要用到MAC地址表的自学习功能了。
当交换机与物理网络连接好并且上电以后,它的工作过程如下所示。
一开始,MAC地址表为空。
此时A要发送给C一个以太帧,帧中源MAC是MAC-A,目的MAC是MAC-C,报文从port-1进入交换机,交换机检查到MAC-A不在自己的MAC地址表中,则会在MAC地址表中新增一条记录,MAC-A对应转发端口port-1。
然后交换机要查找目的MAC(MAC-C)从哪个端口转发出去,但是MAC地址表中没有查到,此时交换机就执行泛洪操作,将这个以太帧从所有端口转发出去。B和D检测到以太帧的目的MAC不是自己,直接丢弃。
C收到以太帧以后,将报文提交给上层协议栈处理完毕,回复A,电脑C回复给电脑A的报文内容是:
交换机会从port-3收到电脑C发送给电脑A的回复帧,收到帧以后,交换机依然会检查源MAC(MAC-C)是否在自己的MAC地址表中,如果不在,则将MAC-C和port-3的对应关系记录到MAC地址表中。做完MAC表的学习后,交换机会在自己的MAC地址表中查目的MAC(MAC-A)对应的转发端口,可以查到是port-1, 则把以太帧从port-1转发出去。
如上述,只要一个电脑主动发一个以太帧,交换机就可以根据源MAC地址知道这个电脑的MAC地址对应的交换机端口。