网络协议——数据链路层
也叫媒体访问控制层或MAC层,作用是将物理层的数据安全可靠地传给网络层,依靠交换机等硬件设备支撑
1、数据链路控制
通过多路访问协议,解决多个节点的数据同时到达同一节点发生的帧碰撞的问题
1.1、信道划分协议
- 时分复用(TDMA):把时间域划分成多个固定长度的时间段,安排每个时间段对应传输一个节点的数据,从物理上看还是轮流占用信道,类似操作系统的线程调度
- 频分复用(FDMA):将信道分成若干子信道,并给配个节点分配一个专门的子信道用来传数据
- 码分复用(CDMA):发送方将数据编码,接收方即使在帧碰撞后依然能通过解码获取正确数据
1.2、随机接入协议
- 时隙ALOHA协议:将时间域划分为多个时间段,当一个节点在一个时间段发送数据遭遇了帧碰撞时,以一定概率在下一个时间段进行重传或等待
- 具有碰撞检测的载波侦听多路访问协议(CSMA/CD):节点发送数据时监听信道,如果有别的节点正在传输数据,就停止传输,并随机停止侦听一段时间后再重新侦听,直到信道空闲后再重新发送。以太网就使用了这种协议
1.3、轮流协议
- 轮询协议:选出一个主节点,挨个邀请子节点发送数据,并指定使用信道的时间
- 令牌传递协议:将令牌(一个小的帧)在节点中间次序传递,当某个节点需要发送数据时则持有令牌,否则转发令牌到下一个节点
2、组装目标MAC地址
从网络层过来的包只有目标IP地址,需要数据链路层通过目标IP地址获取目标MAC地址并组装进网络包中
地址解析协议(ARP)
一个节点发送包含目标ip的广播包,当对应ip的节点接收到广播包时,发送包含自己MAC地址的单播包作为响应
为了避免每次获取目标MAC地址都发送ARP请求,节点本地会进行缓存,一段时间后过期
2.1、MAC头部格式
包括源MAC地址、目标MAC地址、协议类型(0800表示IP数据报、0806表示ARP请求应答)、数据、CRC校验
3、处理发送时出现的错误
保证数据传输的正确性
循环冗余检测(CRC)
发送方在发送数据时,在数据后跟几位冗余码,接收方根据冗余码校验数据,并进行反馈
4、交换机
物理层的集线器只能发送广播包,发送方会将数据发送给所有节点,也会使非目标节点多出解析动作,非常浪费资源
在节点发送/接受请求时,交换机将记录节点的接入端口和MAC地址,并转发ARP请求。下次请求到达时,交换机会进行缓存匹配并进行定向转发,缓存映射的过程叫学习,缓存的信息叫转发表。
4.1、环路问题
多个交换机在物理上连接成环路,对于广播包的转发,在学习过程中会产生以下问题:
- 转发表翻摆:A、B、C三台交换机两两相连,当主机发送广播请求给交换机A时,A会发送广播请求给B和C,B和C再分别广播,形成A-B-C-A和A-C-B-A两条循环广播的路径,导致A的转发表不断被改来改去,消耗交换机资源
- 广播风暴:交换机没有成功学习主机的MAC地址,却不停地循环发广播,导致主机接收广播、校验广播消耗计算机资源
- 多帧复制:一台交换机从两条广播路径接收到两条重复的广播请求
生成树协议(STP)
根据交换机的网桥id、路径开销和端口id等,将物理环路在逻辑上自动排列成一个逻辑上的树型结构,解决环路问题
多链接透明互联协议(TRILL)
在大型复杂的网络结构中,STP收敛过慢会导致交换机误判对应节点故障,开放别的阻塞端口从而造成环路问题
通过模仿网络层的IP协议,在内部的MAC头外侧,再套一层动态的MAC头,用来表示当前MAC和下一跳的MAC地址,指引路由跳转
4.2、广播问题和安全问题
交换机的数量上来了,广播消耗的资源依然很大
虚拟局域网VLAN
在数据头中增加一个802.1.Q的Tag,Tag中包含VLAN ID,相同ID的节点互相可见
4.3、链路汇聚控制协议(LACP)
在交换机上安装多个网卡和多个网线,在通信的时候可以进行负载
本文介绍网络协议的数据链路层,也叫媒体访问控制层或MAC层,其作用是将物理层数据安全可靠传给网络层。涵盖数据链路控制,包括信道划分、随机接入和轮流协议;组装目标MAC地址;处理发送错误;还阐述了交换机的环路、广播和安全问题及解决办法,如STP、TRILL、VLAN等。
5058

被折叠的 条评论
为什么被折叠?



