网络协议——数据链路层

本文介绍网络协议的数据链路层,也叫媒体访问控制层或MAC层,其作用是将物理层数据安全可靠传给网络层。涵盖数据链路控制,包括信道划分、随机接入和轮流协议;组装目标MAC地址;处理发送错误;还阐述了交换机的环路、广播和安全问题及解决办法,如STP、TRILL、VLAN等。

网络协议——数据链路层


也叫媒体访问控制层或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)

在交换机上安装多个网卡和多个网线,在通信的时候可以进行负载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wheat_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值