目录
一、概述
1、多路访问链路
2、介质访问控制子层的由来
二、介质访问控制子层(Media Access Control, MAC层)
1、逻辑链路控制子层
2、以太网(Ethernet)
3、世界上最早的无线电计算机通信网:ALOHA
4、CSMA(Carrier Sense Multiple Access)协议:载波监听多路访问协议
三、以太网的MAC层协议
1、发送帧的方法:CSMA/CD(Carrier Sense Multiple Access With Collision Detection)协议,即1-persistent CSMA
2、二进制指数退避算法(binary exponential backoff)
3、802.3的MAC帧格式(802.3标准是以太网的一个协议)
4、地址类型
5、以太网接收帧的方法
6、其他知识点
四、以太网的物理层
1、冲突域和广播域
2、集线器(hub)和交换机(switch)
3、交换机的转发方法:
4、交换机的自动翻转:
五、透明网桥
1、相关概述
2、三种操作:
3、MAC地址表
4、透明网桥算法
5、自学习
6、自学习的合理性:
六、生成树协议(Spanning Tree Protocol)
七、虚拟局域网VLAN
八、令牌环网
一、概述
1、多路访问链路
多路访问链路(广播链路)采用共享介质连接所有站点。发送站点通过广播方式发送数据并占用整个共享介质的带宽。每个站点只需要一条线接入网络就可以访问该链路上的所有站点。【局域网LAN使用的就是多路访问链路】
2、介质访问控制子层的由来
在多路访问链路中多个站点同时发送数据会造成冲突,因此OSI(开放式系统互联通信参考模型)为解决冲突问题,专门在数据链路层划分出一个子层:介质访问控制子层,以控制和协调所有站点对共享介质的访问,避免或减少冲突。即MAC层定义了主机何时以及如何访问共享介质。
1、逻辑链路控制子层
MAC子层不提供可靠的数据传输,在这一层之上又定义了一个子层:逻辑链路控制子层(logic link control, LLC)用来为上层协议提供服务。如滑动窗口就是在LLC层中实现的,其中LLC2提供了有确认的面向连接的服务(TCP)。【LLC:提供可靠的数据传输】
2、以太网(Ethernet)
以太网属于OSI参考模型的数据链路层,是为了实现局域网通信而设计的一种技术,它规定了包括物理层的连线、电子信号和介质访问层协议,是目前应用最普遍的局域网技术。
3、世界上最早的无线电计算机通信网:ALOHA
- 纯ALOHA协议(随机访问/竞争发送协议):想发送就发送,超时未收到确认则认为发送了冲突。
- 分槽ALOHA协议:把时间分为长度相同的时槽(slot),每个站点只在时槽开始时发送,信道空则立即以概率P发送,以概率1-P延迟一个时槽;若信道忙则延迟一个时槽。
4、CSMA(Carrier Sense Multiple Access)协议:载波监听多路访问协议
CSMA协议属于随机访问协议(Random Access Protocol)的一种,它遵循发送前先监听信道的规则:
- 1-persistent CSMA(以太网使用):信道空则立即发送,信道忙则持续监听(所以如果信道为空时有两个站点同时发送数据则它们一定会产生冲突);
- non-persistent CSMA:信道空则发送,信道忙则延迟一段随机长度的时间(这种方式在信道较忙时最省电)。
- p-persistent CSMA(分槽ALOHA):信道空则立即以概率P发送,以概率1-P延迟一个时槽,信道忙则延迟一个时槽。
三、以太网的MAC层协议
1、发送帧的方法:CSMA/CD(Carrier Sense Multiple Access With Collision Detection)协议,即1-persistent CSMA
- 发送数据帧之前先监听信道,如果信道空闲则立即发送,如果信道忙则持续监听,直到信道空闲,立即发送。(发送前持续监听时,如果监听到96bits的空闲则说明当前信道空闲,立即发送信号。96bits的空闲可以用于区分帧,即以太网采用了inter-frame space的成帧方法)
- 边发送边检测冲突,如果发送完毕都没有检测到冲突则发送成功。
- 如果检测到冲突,则停止发送,并发送32位干扰位(jamming signal)以加强冲突信号。采用二进制指数退避算法随机延迟一段时间后执行第一条操作。(因此第一个冲突的概率无法计算)
注意两个概念:
- 监听信道:指的是在未发送信号时监听,监听的是主机接入到多路访问链路上的共享链路的位置是否有数据在传输;
- 边发送边检测冲突:指的是在帧的发送延迟这段时间内检测是否有冲突;
2、二进制指数退避算法(binary exponential backoff)
这里引入最短帧的问题:
以太网(10Mbps)相距最远的两个站点之间的信号往返时间为51.2微秒。如果A发送的数据在快到B时与其发送的数据冲突(因为B检测到其上方的共享链路为空则发送,此时可能A还没传到B,但B一发送A就到了),因为发送站点只有在发送的时候才检测冲突,为了检测到返回的冲突信号,要求此时站点A仍在发送数据帧,故一个数据帧至少为512bit(64B,由51.2微秒乘上10Mbps所得),即一个往返时间的字节长度。这也就是最短帧的长度,这个长度同时也被称为争用窗口长度(contention window)。
为什么二进制指数退避算法选择最短帧的发送时间作为其时间槽/片的长度?
因为,最短帧的发送时间保证了首先发送的信号可以到达最远的站点,如果先发送的只有一个站点,那么其他站点要不就是检测到发送站点的信号而不能发送自己的信号,要不就是因为发送站点发送完毕而检测到信道空闲,总之不会与之冲突。即时间槽的长度为最短帧发送时间或者大于最短帧发送时间,则可以保证两个发送数据的站点不会发生冲突。
分析下面问题:
最长帧1520B,一个64B(最短帧)的帧的传送需要一个时间片,所以一个最长帧需要23个时间片。故最少情况下第一次冲突时,只有一个站点发送成功,其他四个站点继续监听信道,直到信道空闲时立即发送,产生第二次冲突,...,以此类推,由于前四次冲突后各站点最多可以延迟15个时间片再发送,15<23,故每一次延迟后信道上仍有帧在发送,故每一次冲突只能成功发送一个信号,所以总共需要四次冲突。
3、802.3的MAC帧格式(802.3标准是以太网的一个协议)
- 前导字符(preamble):包含同步字符和起始定界字符;
- 有效载荷(payload):是用户数据,不足46字节时加入填充字节至46字节;
- 类型/长度:若值大于1500,则用于指明上层协议;若值<=1500,则用于指明有效载荷长度;
4、地址类型
- 单播地址:全球唯一,每个网卡(或接口)有一个单播地址,最高字节的最低有效位是0,也称为网卡地址,烧录地址BIA,MAC地址、硬件地址、物理地址;共48位
- 多播地址:0号字节的第0位为1;
- 广播地址:48位地址全为1;
5、以太网接收帧的方法
- 以太网站点会缓存所有的帧;
- 如果缓存的帧有错则丢弃;
- 如果缓存的帧的目的地址为单播地址且与接收该帧的网卡的MAC地址一致,则接收它;如果目的地址为多播地址且为网卡预设的多播地址之一,或者目的地址为广播地址,也接收该帧。其他情况则丢弃该帧。
- 如果把网卡设置为混杂模式则会接收所有无错的帧。
6、其他知识点
- 以太网的物理层采用的是异步传输,采用曼彻斯特编码。命名规则为10BaseT,表示10Mbps,base=基带传输,T表示双绞线
- 以太网中的一个站点有可能一直不能成功发送信号
- 规定最短帧是为了使得发送站点可以检测到所有冲突;
- 属于同一个以太网的所有站点可以收到广播帧;
- 以太网、快速以太网和千兆以太网主要在OSI的物理层不同(传输介质);
- 以太网传输速率的提高会使得可传输距离缩短,因为速率越高,对信号干扰的规定越严格,而线路越长抗干扰能力越弱,想要在长距离上进行高速传输只有靠光纤,无法使用双绞线。
四、以太网的物理层
1、冲突域和广播域
- 如果通过两个接口同时发送数据会产生冲突,则这两个接口属于同一个冲突域(collision domain),属于同一个冲突域的以太网部分称为网段;
- 一个广播帧可以到达的所有接口属于同一个广播域;
2、集线器(hub)和交换机(switch)
- 集线器收到一个bit就立刻转发给所有其他接口,其所有接口都属于同一个冲突域。而交换机的每个接口属于一个冲突域,但所有接口属于同一个广播域。
- 集线器是将信号收集放大后传输给所有其他端口,即集线器的传输线路是共享的;而交换机能够选择目标端口,在很大程度上减少了冲突的发生,能够为通信双方提供一条独占的线路。(即交换机增加了冲突域的数量,但减小了冲突的范围);
- 集线器上的数据传输属于半双工传输,交换机上的数据传输属于全双工传输;
- 集线器只属于物理层;
- 交换机跟踪与它直接相连的设备的MAC地址;
3、交换机的转发方法:
- 存储转发:交换机接收整个数据帧后转发它;
- 直通(cut through):交换机收到帧的硬件地址后立即转发它,如果输出忙则会转为存储转发;
- 无碎片(fragment free):交换机收到帧的前64个字节(最短帧长度)后立即转发它
- 适应性交换:自动在上面三种方式进行选择;
4、交换机的自动翻转:
指的是网线接口的切换。网线分为直通线和交叉线。当同种设备连接时需要用到交叉线(如电脑之间的直连),当不同设备连接时需要用到直通线(如电脑和交换机相连),自动反转指的是交换机的端口会自动根据接入的线对信号进行调整。
五、透明网桥
1、相关概述
- 用网桥连接若干个局域网可以建造一个更大的局域网,称为桥接的局域网或扩展局域网,原来的局域网称为扩展局域网的一部分,称为一个网段(一个网段是一个冲突域);
- 透明网桥采用的是广播模式;
- 网桥由交换机实现,因为对于终端来说它们不知道网桥的存在,不需要通过修改自己的配置来适应网桥,所以称为透明网桥;
2、三种操作:
- 扩散(flood):网桥把收到的帧转发到除了该帧的接收端口之外的所有其他端口;
- 转发(forward):把收到的帧转发到查到的端口;
- 过滤(filter):当根据帧查到的端口(即网桥要转发该帧的端口)与收到该帧的端口一致则丢弃该帧,防止重复传输帧;
3、MAC地址表
查询收到的帧的MAC地址需要从哪个端口转发,查不到则扩散。
4、透明网桥算法
当网桥收到一个单播帧时,则用该帧的目的地址查询MAC地址表,如果没查到则扩散该帧;如果查到了则看查看到的端口是否为收到该帧的端口,如果是则丢弃该帧,否则把该帧从查到的端口发送出去;
5、自学习
- MAC地址表初始为空;
- 网桥从端口接收所有的帧,并把接收到的帧的源地址和接收端口记录到MAC地址表中。如果该源地址在MAC地址表中不存在,则增加一个新记录并启动超时定时器;如果存在则更新接口并重置超时定时器;
- 网桥会自动删除超时的记录;
6、自学习的合理性:
- 网桥从一个接口收到一个帧,则该帧中源地址的主机一定与该接口连通;
- 如果整个扩展局域网没有回路,则该接口处于从该网桥到达该主机唯一的路径上,该网桥只有把目的地址为该源地址的帧转发到该接口才能使该帧可能到达目的地;
六、生成树协议(Spanning Tree Protocol)
- 网桥ID:BID,优先权+网桥的MAC地址;
- 端口ID:PID,优先权+序号;
- 根端口:网桥上离根网桥最近的端口;
- 指定网桥:网段上离根网桥最近的网桥;(这是从网段的角度去看的)
- 指定端口:指定网桥与对应网段之间相连的端口(网桥只在根端口和指定端口之间传输数据)
- 可以这样理解,网桥上的端口只有三种:根端口、指定端口和阻塞端口,阻塞端口就是无法转发帧的端口;
- 根网桥的确定:一开始生成树中所有网桥都以广播形式传帧,各个网桥只要接收到了比其BID还小的网桥发送的帧,就停止发送。
【只要两个网桥之间有通路,在构造生成树的时候它们就会连接在同一棵树中】
七、虚拟局域网VLAN
据上图,如果网桥只在具有相同颜色的端口之间转发帧,就会把原来的局域网分割成多个相互隔离的局域网,称为虚拟局域网。
所谓的颜色其实就是VLAN ID,是由管理员为每个端口配置的一个标识。具有相同的VLAN ID的端口处于同一个VLAN,端口的默认VLAN为VLAN1;
要点:
- 一个VLAN的帧只能转发到属于同一个VLAN的端口或者干道端口;
- 干道(trunk)可以接收所有颜色的帧,但每一帧需要加上自己的VLAN ID;
- 只有发往干道端口的帧才需要加上VLAN ID;
- 从干道收到的帧中如果没有VLAN ID,则认为是本征VLAN(Native VLAN),默认为VLAN 1;
- 发往干道的Native VLAN不需要加VLAN ID;
上图中VLAN可以从E发信息给A也可以从A发信息给E。
如果从A发给E,因为S2转发到S3的端口是VLAN10的端口,所以可以转发,而S3与S2连接的端口是VLAN20,所以S3会认为接收到的帧都是VLAN20的帧,然后转发给E。(因为只有发往干道端口的帧才需要加上VLAN ID)
八、令牌环网
- 令牌环网采用了Take Turns Protocol,是一个通过在站点之间传递令牌防止冲突并且具有优先权的VLAN,其标准为IEEE 802.5。(令牌指的是帧)
- 令牌环网需要设置监控站点(以竞选的方式决定),用于检测令牌是否丢失。
- 同时监控站点也用于监控数据帧,每次收到一个数据帧就对其标记,当再次接收到被标记的数据帧时说明数据帧的传输出现问题(该数据帧没有被任何站点接收),把该帧删除。
- 监控站点也需要定时发送帧给其他站点让其他站点检测监控站点是否失效。
- 光纤分布式数据接口是一种采用了令牌环的局域网。
数据传送过程:
- 令牌绕环而行;
- 只有截获令牌的站点才可以发送数据帧;
- 发送的数据帧通过所有的活动站点;
- 目的站点拷贝数据帧;
- 当没有数据帧要发送或者持有时间到,当前的发送站点要释放令牌。