数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报。
链路可以是有线链路,无线链路,局域网。
链路层服务
1.组帧
封装数据报构成数据帧,加头加尾
帧同步
2.链路接入
如果是共享介质,需要解决信道接入
帧头部的mac地址,用于标识帧的源和目的。
3.相邻节点间可靠交付
4.流量控制
5.差错检测
信号衰减和噪声会引起差错
接收端检测到差错: 通知发送端重传或者直接丢弃帧。
6.差错纠正
接收端直接纠正比特差错
7.全双工和半双工通信机制
全:链路两端结点同时双向传输
半:链路两端节点交替双向传输
链路层的具体实现
差错编码
CRC循环冗余校验码
多路访问控制mac协议
理想化的mac协议
三类mac协议
信道划分mac协议(tdma,fdma,cdma)
随机访问mac协议(信道不花粉,允许冲突,采用冲突恢复机制)
轮转mac协议(结点轮流使用信道)
信道划分
TDMA
FDMA
随机访问
时隙ALOHA
CSMA协议
信道空闲,发送完整帧。
信道忙,推迟发送(有1-坚持,就一直看信道啥时空。非坚持就不看了,随后根据协议的算法延迟一个随机时间再重新监听,p坚持就是有p的概率去看, 1-P的概率不看)
CSMA/CD
CSMA/CD是一种争用型的介质访问控制协议。它起源于美国夏威夷大学开发的ALOHA网所采用的争用型协议,并进行了改进,使之具有比ALOHA协议更高的介质利用率。主要应用于现场总线Ethernet中。另一个改进是,对于每一个站而言,一旦它检测到有冲突,它就放弃它当前的传送任务。换句话说,如果两个站都检测到信道是空闲的,并且同时开始传送数据,则它们几乎立刻就会检测到有冲突发生。它们不应该再继续传送它们的帧,因为这样只会产生垃圾而已;相反一旦检测到冲突之后,它们应该立即停止传送数据。快速地终止被损坏的帧可以节省时间和带宽。
CSMA/CD控制方式的优点是:
原理比较简单,技术上易实现,网络中各工作站处于平等地位 ,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。
CSMA/CD应用在 OSI 的第二层数据链路层
它的工作原理是: 发送数据前 先侦听信道是否空闲 ,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。
其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发
CSMA/CD采用IEEE 802.3标准。
它的主要目的是:提供寻址和媒体存取的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信而不相互冲突。
有人将CSMA/CD的工作过程形象的比喻成很多人在一间黑屋子中举行讨论会,参加会议的人都是只能听到其他人的声音。每个人在说话前必须先倾听,只有等会场安静下来后,他才能够发言。人们将发言前监听以确定是否已有人在发言的动作称为"载波监听";将在会场安静的情况下每人都有平等机会讲话成为“多路访问”;如果有两人或两人以上同时说话,大家就无法听清其中任何一人的发言,这种情况称为发生“冲突”。发言人在发言过程中要及时发现是否发生冲突,这个动作称为“冲突检测”。如果发言人发现冲突已经发生,这时他需要停止讲话,然后随机后退延迟,再次重复上述过程,直至讲话成功。如果失败次数太多,他也许就放弃这次发言的想法。通常尝试16次后放弃。