0 摘要
本节主要介绍了数据链路层及交换机基本工作原理。其中,对于数据链路层,简要介绍了数据链路层相关概念,重点介绍了帧结构及其原理。而对于交换机基本工作原理,以一个局域网为例详细介绍了交换机完整工作流程。最后总结了交换机的工作原理,并同时举例介绍了MAC地址表老化时间默认值的含义。
1 数据链路层
1.1 概述
(1)Data Link Layer
(2)属于TCP-IP5层协议栈的第2层。
(3)传输单元:帧。
1.2 帧结构及其原理
(1)帧结构
(2)上三层数据到了数据链路层,网卡为上三层加上帧头与帧尾,再发给交换机。
(3)帧格式有两种:802.3和802.11。
- 1)有线网卡遵循802.3协议,为上三层数据加火车头与火车尾;
- 2)无线网卡遵循协议802.11,为上三层数据加飞机头与飞机尾。
(4)帧头数据中包含三个字段:目标MAC、源MAC、类型。
- 1)MAC地址:也叫物理地址,出厂时已定,全球唯一!如:A0-CE-C8-11-AA-39,12位16进制,换算为二进制是12*4=48位,因此长度48位,6字节。
- 2)类型的作用:识别上层协议,解封装时为上层提供服务。
①0x0800:表示上层为IP协议。其中,0x代表后面的数据是十六进制。
②0x0806:表示上层为ARP协议。其中,0x代表后面的数据是十六进制。
(5)MTU值(最大传输单元):一个帧中上三层数据的最大大小(以字节为单位)。各国不尽相同,中国MTU=1500字节。对于数据大于MTU的,需要切片传输。
(6)帧头与帧尾在出了局域网后会发生变化,当源端与目标端距离很远时,帧头与帧尾经常变化。因此相对于上三层数据而言,帧头与帧尾没那么重要,只是运载工具而已。
tips:
8个二进制是1一个字节。即8bit=1Byte.
2 交换机工作原理
2.1 交换机详细工作流程
在PacketTracer中构建两个简单的局域网如下图,当AA要向DD发送数据时,交换机工作流程如下。
(1)AA要向DD发送信息,经层层封装形成帧(假设AA已经知道DD的IP和MAC地址)。
(2)AA将帧发送给SW1。
(3)SW1在Fa0/1端口收到帧,首先学习帧中的源MAC地址来形成MAC地址表(如果没有该MAC地址则新增,如有,若与MAC地址表中一致则不管,若与MAC地址表中不一致则更新),发现表中没有,SW1将该源MAC与接收端口匹配记录到MAC地址表中。
(4)SW1检查MAC地址表中是否有帧中的目标MAC地址,表中无匹配项,则向除接收端口外的各个端口进行广播。
(5)SW1将帧以广播方式发送给BB和SW2。
(6)BB将目标MAC与自己的mac匹配,发现不是自己,将帧干掉。
(7)SW2在Fa0/1端口收到帧,首先学习帧中的源MAC地址来形成MAC地址表(如果没有该MAC地址则新增,如有,若与MAC地址表中一致则不管,若与MAC地址表中不一致则更新),发现表中没有,SW2将该源MAC与接收端口匹配记录到MAC记录表中。
(8)SW2检查MAC地址表中是否有帧中的目标MAC地址,表中无匹配项,则向除接收端口外的各个端口进行广播。
(9)SW2将帧数以广播方式发送给CC和DD,CC发现目标MAC不是自己的mac地址,将帧干掉。
(10)DD发现目标MAC是自己的,开始解封装。
(11)DD经层层解封装后,要向AA回复信息,信息经层层封装形成帧。
(12)DD将帧发送给SW2。
(13)SW2在Fa0/3端口收到帧,首先学习帧中的源MAC地址来形成MAC地址表(如果没有该MAC地址则新增,如有,若与MAC地址表中一致则不管,若与MAC地址表中不一致则更新),发现表中没有,SW2将该源MAC与接收端口匹配记录到MAC记录表中。
(14)SW2检查MAC地址表中是否有帧中的目标MAC地址,发现MAC地址表中有匹配项,则向该端口发送帧。
(15)SW1在Fa0/3端口收到帧,首先学习帧中的源MAC地址来形成MAC地址表(如果没有该MAC地址则新增,如有,若与MAC地址表中一致则不管,若与MAC地址表中不一致则更新),发现表中没有,SW2将该源MAC与接收端口匹配记录到MAC记录表中。
(16)SW1检查MAC地址表中是否有帧中的目标MAC地址,发现MAC地址表中有匹配项,则向该端口发送帧。
(17)AA收到帧。
SW1 MAC地址表 | 生成步骤 | SW2 MAC地址表 | 生成步骤 |
---|---|---|---|
MAC(AA) Fa0/1 | 步骤3 | MAC(AA) Fa0/1 | 步骤7 |
MAC(DD) Fa0/3 | 步骤15 | MAC(DD) Fa0/3 | 步骤13 |
2.2 交换机工作原理
(1)总结:交换收到一个数据帧后,首先学习帧中的源MAC地址来形成MAC地址表(如果没有该MAC地址则新增,如有,若与MAC地址表中一致则不管,若与MAC地址表中不一致则更新),然后检查帧中的目标MAC地址,并匹配MAC地址表,如表中有匹配项,则单播转发,如表中无匹配项,则除接收端口外广播转发。
(2)当设备接上交换机时,只要一开机,各端口就会有开始通信,交换机很快就能学完所有端口上的MAC地址。
(3)mac地址表,首列为mac地址,第二列为对应的端口号,该表可以手动修改。
(3)MAC地址表的默认老化时间为300s(可修改)。即若某mac地址300s内没有发送帧,该mac地址就会消失。
(4)若交换机的MAC地址表中已有AA对应的端口为FA0/1,当BB走了,而AA换到BB的位置后,发现AA后面发的帧中的源MAC地址对应的端口为FA0/2,则会自动更新,而原BB的对应端口号需要等300s后消失。因此只有MAC地址对应的端口号冲突时会立即更新。
(5)交换机每一个端口上可以对应多个MAC地址,但是每一个MAC地址只能对应一个端口号。若众多MAC地址对应一个端口,则该端口连接的一般是交换机。
参考文章
[1] 第25节 数据链路层
[2] 第26节 交换机基本原理