简介
数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报。链路层封装网络层数据报,叫做帧(frame)。
链路层提供的服务:
- 组帧(封装数据报构成数据帧,加首部和尾部,帧同步)
- 链路接入(若是共享介质,需要解决信道介入)
- 相邻接点间可靠交付(在低误码率的有线链路上很少采用,在无线链路上,误码率高,需要可靠交付)
- 流量控制(协调相邻的发送结点和接收)
- 差错检测(信号衰减和噪声会引起差错,接收到检测到差错,通知发送端重传或直接丢弃)
- 差错纠正(接收端直接纠正比特差错)
- 全双工和半双工通信控制(全双工:链路两端结点同时双向传输;半双工:链路两端结点交替双向传输)
链路层的实现是在每个主机或路由器接口处,可能是网络接口卡或者芯片(以太网网卡,无线网卡)
差错编码
基本原理:设源数据为D,通过某固定算法算得R,将DR一同传输到接收端D’R’,接收端通过同一算法计算f(D’)是否等与R’。若不等,则表明出错了。若相等,不一定正确。
差错编码可分为检错码和纠错码。
对于检测码,若编码集的汉明距离Ds=r+1,则该差错编码可以检测r位的差错。
对于纠错码:若编码集的汉明距离Ds=2*r+1,则该差错编码可以纠正r位的差错
奇偶检验码
使用1bit校验位,检测奇数位差错,若源字符有奇数个1,则后面补0,若有偶数个1,则后面补1。接收端接收到后检查是否是奇数个1。
二维奇偶检验,检测奇数位差错,部分偶数位差错,纠正同一行/列的奇数位错。
Internet校验和
在UDP差错校验时学习过。
CRC(循环冗余校验码)
检错能力更加强大的差错编码,广泛应用于实际网络(以太网,802.11WiFi,ATM)。
步骤:
-
将数据比特D视为一个二进制数
-
选择一个r+1位的比特模式G
-
选择r位的CRC比特R,满足<D,R>刚好可以被G整除,接收端检错:利用G除<D,R>,余式为全0,无错,否则有错。可以检测所有突发长度小于r+1位差错
R = 余式[(D * 2^r)/G]
以上学习过程中不是很懂其原理,只是抄下来记录一下。后续有机会再深入学习
MAC协议
多路访问控制协议(multiple access control protocol)采用分布式算法决定节点如何共享信道,即决策节点合适可以传输数据,必须基于信道本身,通信信道共享协调消息。其主要解决在单一共享广播信道,多个节点传输冲突问题。
理想MAC协议:给定R bps的广播信道,当只有1个结点希望传输数据时,它可以以速率R发送;当有M个结点发送数据时,每个节点平均发送数据的平均速率为R/M;完全分散控制;简单!
MAC协议分类
- 信道划分MAC协议:多路复用技术,TDMA,FDMA,CDMA,WDMA
- 随机访问MAC协议:信道不划分,允许冲突,采用冲突恢复机制
- 轮转MAC协议
信道划分MAC协议
TDMA
周期性接入信道,每个站点在每个周期,占用固定长度的时隙,未用时隙空闲。
FDMA
信道频谱划分为若干频带,每个站点分配一个固定频带,无传输频带空闲。
很明显得知:信道划分MAC协议效率很低,而且浪费!
随机访问MAC协议
当节点要发送分组时,利用信道全部数据速率R发送分组,没有事先的结点间协调。需要解决如何检测冲突,如何从冲突中恢复。典型的随机访问MAC协议如下:
- 时隙ALOHA
- ALOHA
- CSMA,CSMA/CD,CSMA/CA
时隙ALOHA
假定所有帧大小相同,时间被划分为等长的时隙。结点只能在时隙开始时刻发送帧,结点间时钟同步,如果2个及以上结点在同一时隙发送帧,结点检测到冲突。
当节点有新的帧时,在下一个时隙发送,如果无冲突,则该节点可以在下一个时隙发送新的帧。若发生冲突,则节点在下一个时隙以概率p重传该帧,直到成功。
优点:单个节点活动时,可以连续以信道全部速率传输数据;高度分散化,只需要同步时隙。
缺点:冲突时,浪费时隙,空闲时隙,时钟同步;节点也许能以远小于分组传输时间检测到冲突。
信道被成功利用的时间为37%!
ALOHA协议
又叫做非时隙ALOHA协议,更加简单,无需同步。
当有新的帧生成时,立即发送。冲突可能性增大。
最高效率为18%!其意义在于是最早提出来的随机访问MAC协议,是在夏威夷被提出,ALOHA是当地你好的意思!
CSMA
载波监听多路访问协议(carrier sense multiple access)
发送帧之前,监听信道,信道空闲:发送完整帧,信道忙:推迟发送,这里分为1-坚持CSMA,非坚持CSMA,P-坚持CSMA。由于信号传播延迟,仍然可能发生冲突
CSMA/CD(Collision Detection)
可以短时间内检测到冲突,并且冲突后传输终止,减少信道浪费。在有线局域网中,测量信号强度,比较发射信号与接收信号即可进行冲突检测。无线局域网很难实现:接收信号强度淹没在本地发射信号强度下。采用的策略是
边发边听,不发不听
网络带宽:R bps,数据帧最小长度:Lmin (bits),信号传播速度:V (m/s)
L / R ≥ 2dmax / V
Lmin / R = 2dmax / V
Lmin / R = RTTmax
当量个结点间的最大传播延迟趋近于0,或者最长帧趋近于无穷大时,效率趋近于1!
轮转访问MAC协议
信道划分MAC协议在网络负载重时,共享信道效率高,且公平。随机访问MAC协议在网络负载轻时,共享信道效率高,单个节点可以利用信道的全部带宽。因此轮转访问MAC协议综合两者的优点。
轮询
主节点轮流邀请从属节点发送数据,典型应用是哑从属设备(eg:电话机),问题是轮询开销,等待延迟,单点故障。
令牌传递
令牌是一个特殊帧,控制令牌依次从一个节点传递到下一个节点。问题有:令牌开销,等待延迟,单点故障。