学习总结-计网-数据链路层-封装成帧(透明传输)
基本概念
链路:一条点到点的物理线路段,中间没有任何其他的交换结点。
- 一条链路只是一条通路的一个组成部分。
数据链路:除了物理线路外,还需要有通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 现最常用的方法就是使用适配器(即网卡)来实现这些协议的硬件和软件
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
帧:数据链路层的传输单位。
- 帧头 帧尾 物理层地址 校验值
数据链路层功能
将物理层提供的传输原始比特流的物理连接改造成逻辑上无差异的数据链路,以向网络层提供透明的、可靠的数据传输服务。
- 封装成帧
- 差错控制
- 流量控制
- 链路管理
封装成帧(帧同步)
概念: 在一段数据(网络层递交给数据链路层的)的前后分别添加首部和尾部,构成一个帧。(确定帧的界限)
方法:
- 字节计数法
- 使用字符填充的首尾定界法
- 使用比特填充的首尾标志法
- 违规编码法
Ps:数据的透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。(透明的就是看不见的,只要保证数据传输过去了)
方法 | 原理 | 注意点 | 如何实现数据的透明传输 |
---|---|---|---|
字节计数法 | 利用头部的一个域(计数字段)来指定该帧中的字节数。 | 如果计数字段的值出错,则会引起帧边界的识别错误,导致无法找到下一帧的正确起始位置。(目前已经很少使用) | 无需采取任何措施 |
使用字符填充的首尾定界法 | 使用一些特定的字符(例如 SOH 、EOT)来定界一帧的开始与结束、分隔不同的段和控制整个信息交换过程,被传输的数据是由若干个字符组成的数据块。 | 如果帧中的数据部分刚好包含特殊定义的字符,则可能引起识别误解。 | 字节填充法(在数据部分出现的特殊字符前填充一个转义字符 ESC,使其不再具有通信控制能力) 缺点:和特定的字符编码集关系过于密切,不利于兼容 |
使用比特填充的首尾标志法 | 用一组特定的比特模式(标志)(如 01111110)来标志数据帧的开头和结束 | 数据中可能包含特定的比特模式 | 比特填充法(当发送方的数据链路层碰到5个连续的1时,自动在其后填充一个0;接收方则进行相反的0比特删除,即每收到连续的5个1,自动删除后跟的0) 优点:不依赖于字符编码集;由硬件实现较方便,可用于双向同时通信;可连续发送不必等待;能实现较完善的控制功能 |
违规编码法 | 在物理层采用特定的比特编码方法时使用。借用一些违规编码序列(冗余编码) 来定界帧的起始与终止 | 只适用于存在冗余编码的环境 | 无需任何填充技术 |
Ps:由于字节计数法中技术字段的脆弱性和字符填充实现上的复杂性和不兼容性,目前普遍使用的帧同步法是 首尾标志法和违规编码法。