第三章数据链路层
`
前言
在研究数据链路层的问题时,在许多情况下我们可以只关心在协议栈水平方向的各数据链路。
当主机H1向主机H2发送数据时,我们可以想象数据就在数据链路层从左向右沿水平方向传送。
即上图数据传送的路径为:
H1的链路层 R1的链路层 R2的链路层 R3的链路层 H2的链路层
数据链路层负责通过一条链路从一个结点向另一个结点物理链路直接相连的相邻结点传送数据报。
一、功能
1.封装成帧和透明传输
封装成帧
就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在受到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。
透明传输
是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
2.差错控制
实际通信链路都不是理想的,比特在传输过程中可能会产生差错,1可能会变成0,0也可能会变成1,这就是比特差错。比特差错是传输差错中的一种。
通常利用编码技术进行差错控制,主要有两类:自动重传请求ARQ和前向纠错FEC。在ARQ方式中,接收端检测到差错时,就设法通知发送端重发,直到接收到正确的码字为止。在FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。因此,差错控制又可分为检错编码和纠错编码。
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
3.流量控制与可靠传输机制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
数据链路层控制是两个相邻结点之间而传输层控制是两个主机之间的。
二、应用
1.两种链路
广域网
点对点(广域网)两个结点通过一个链路相连,没有第三者 应用:PPP协议
局域网
所有主机共享通信 应用:早期的总线以太网、无限局域网,常用于局域网 典型的拓扑结构:总线型、星型(逻辑总线型)。
2.介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
重点掌握:CSMA/CD协议、CSMA/CA协议
3.链路层设备
交换机 网桥(绪论里提及)