数据链路层

发布 : 2021-06-13 分类 : 笔记 浏览 :

多路访问控制(MAC)协议

两类链路:

  • 点对点链路:拨号接入的PPP,以太网交换机与主机间的点对点链路
  • 广播链路(共享介质):早期的总线以太网,HFC的上行链路,802.11无限局域网

单一共享广播信道

两个或两个以上节点同时传输:干扰,产生冲突,导致接受失败

多路访问控制协议(multiple access control protocol)

  • 采用分布式算法决定节点如何共享信道,即决策节点何时可以传输数据
  • 必须基于信道本身,通信信道共享协调信息

MAC协议分类

  1. 信道划分 (channel partitioning) MAC协议
    • 多路复用技术
    • TDMA,FDMA,CDMA,WDMA等
  2. 随机访问 (random access) MAC协议
    • 信道不划分,允许冲突
    • 采用冲突“恢复”机制
  3. 轮转 (taking turns) MAC协议
    • 节点轮流使用信道(保证节点在使用信道时不冲突,同时在使用的时候用的是信道的全部带宽)

信道划分MAC协议

TDMA: time division multiple access

  1. “周期性”接入信道
  2. 每个站点在每个周期占用固定长度的时隙(这里的长度是指分组传输时间)
  3. 未用的时隙空闲(idle)
  4. 例如,6-slot的LAN,1、3、4传输分组,2、5、6空闲

FDMA: frequency division multiple access

  1. 信道频谱划分为若干频带(frequency bands)
  2. 每个站点分配一个固定的频带
  3. 没有传输数据的频带空闲
  4. 例如,6站点LAN,1、3、4频带传输数据,2、5、6频带空闲

随机访问MAC协议

当节点要发送分组时,利用信道全部数据速率R发送分组,没有事先的节点间协调。

会发生冲突。

随机访问MAC协议需要定义:如何检测冲突、如何从冲突中恢复(通过延迟重传)

典型的随机访问MAC协议:

  • 时隙(sloted)ALOHA
  • ALOHA
  • CSMA, CSMA/CD, CSMA/CA

时隙ALOHA协议

假定:

  • 所有帧大小相同
  • 时间被划分为等长的时隙(每个时隙可以传输1个帧)
  • 节点只能在时隙开始时刻发送帧
  • 节点间时钟同步
  • 如果2个及以上的节点在同一时隙发送帧,则检测到冲突

运行:

  • 当节点有新的帧时,在下一个时隙(slot)发送
  • 如果无冲突:该节点可以在下一个时隙继续发送新的帧
  • 如果冲突,该节点在下一个时隙以概率p重传该帧,直至成功

优点:

  • 单个节点活动时,可以连续以信道全部速率传输数据
  • 高度分散化:只需同步时隙
  • 简单

缺点:

  • 冲突,浪费时隙
  • 时钟同步
  • 空闲时隙
  • 节点也许能以远小于分组传输的时间检测到冲突

非时隙ALOHA

更加简单,无需同步

当有新的帧生成时,立即发送

因此比时隙ALOHA协议更差。

CSMA协议

载波监听多路访问协议CSMA(carrier sense multiple access)

发送帧之前,监听信道(载波):

  • 信道空闲:发送完整帧
  • 信道忙:推迟发送

    • 1-坚持CSMA
    • 非坚持CSMA
    • P-坚持CSMA
  • 冲突可能仍然发生:存在信号传播延迟

CSMA/CD协议

CSMA/CD: CSMA with Collision Detection

  • 短时间内可以检测到冲突
  • 冲突后传输中止,减少信道浪费

冲突检测:

  • 有线局域网易于实现:测量信号强度,比较发射信号与接收信号
  • 无线局域网很难实现:接收信号强度淹没在本地发射信号强度下

网络带宽:R bps

数据帧最小长度:$L_min$ (bits)

信号传播速度:V(m/s)

“边发边听,不发不听”

主机A、B之间的距离是$d_{max}$,A向B发送数据帧,快到达B时,B又向A发送了一个数据帧,两者在靠近B的地方相遇,于是发生了冲突。A发送的数据帧到达B时,B检测到了冲突,但此时B发送的数据帧还未到达A,因此A还没有检测出冲突。最后,两者都检测到冲突时,用了$2d_{max}/V$的时间。

满足:$L/R >= 2d_{max}/V$

那么:

$L_{min}/R >= 2d_{max}/V$

$L_{min}/R = RTT_{max}$

$t_{prop}$趋近于0或$t_{trans}$趋近于∞时,效率趋近于1.

远优于ALOHA,并且简单、分散。

ARP协议

MAC地址

32位IP地址:

  • 接口的网络层地址
  • 用于标识网络层(第3层)分组,支持分组转发

MAC地址(或称LAN地址,物理地址,以太网地址)

  • 作用:用于局域网内标识一个帧从哪个接口发出,到达哪个物理相连的其他接口
  • 48位MAC地址(用于大部分LANs),固化在网卡的ROM中,有时也可以软件设置
  • 将48bits分为6个字节,16进制表示,e.g.: 1A-2F-BB-76-09-AD

局域网中的每块网卡都有一个唯一的MAC地址。

MAC地址由IEEE统一管理与分配。

网卡生产商购买MAC地址空间(前24比特),后24比特生产商依次分配。

类比:

  • MAC地址:身份证号
  • IP地址:邮政地址
  • MAC地址是“平面”地址,可”携带“,可以从一个LAN移到另一个LAN
  • IP地址是层次地址,不可“携带”,IP地址依赖于节点连接到哪个子网

ARP:地址解析协议

在同一个LAN内,如何在已知目的接口的IP地址前提下确定其MAC地址?

ARP表:LAN中每个IP节点(主机、路由器)维护一个表

  • 存储某些LAN节点的IP/MAC地址映射关系。如:
  • 存活时间TTL(time to live):经过这个时间后,该映射关系会被遗弃(典型时间是20min)

ARP协议:同一局域网内

  • A想要向同一局域网中的B发送数据报,但B的MAC地址不在A的ARP表中
  • A广播ARP查询分组,其中包含B的IP地址。LAN中所有节点都会接收到ARP查询。
  • B也接收到了,IP地址匹配成功,B向A应答B的MAC地址。利用单播帧向A发送应答。
  • A在自己的ARP表中缓存B的IP-MAC地址对,直至超时。超时后,再次刷新。
  • ARP是“即插即用”协议,节点自主创建ARP表,无需干预。
本文作者 : preccrep
原文链接 : https://preccrep.github.io/2021/06/13/%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
留下足迹

博客已萌萌哒运行(●'◡'●)ノ♥
Theme - BMW | Made With 💗 | Powered by GodBMW