🛩️🛩️🛩️ 快期末考试了,再不复习就寄了。
🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流!
✈️✈️✈️动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛
目录
一、数据链路层的设计问题
数据链路层的功能:提供给网络层的服务、成帧、错误控制、流量控制。
注:本章学习的许多原理(如错误控制、流量
控制等)也适用于传输层协议和其他层协议。
1.1 提供给网络层的服务
提供了三种基本服务:
- 无确认的无连接服务
- 有确认的无连接服务
- 有确认的面向连接的服务
1.1.1 无确认的无连接服务
源主机向目的主机发送独立的帧,而目的主机对收到的帧不进行确认。
- 不存在逻辑连接的建立和释放的过程
- 数据链路层对丢失的帧不作恢复工作
适用于:
- 误码率很低的场合,如以太网
- 实时通信,如视频传输或语音
1.1.2 有确认的无连接服务
对发送的每一帧进行确认,让发送方知道帧是否安全到达。
- 不存在逻辑连接的建立和释放的过程
- 可提高可靠性
适用于:
- 不可靠信道,如无线系统。
1.1.3 有确认的面向连接的服务
- 源主机和目的主机在传输数据前,先建立连接。
- 在该连接上发送的每一帧都进行编号,数据链路层保证所发的每一帧都被真正接收到,而且保证每帧都接收一次,并且所有帧按顺序接收。
- 数据传输结束后,释放连接。
适用于:
- 长距离且不可靠的线路。如卫星信道或长途电话电路。
1.2 成帧
什么是成帧?
- 数据链路层把比特流分成离散的帧。
为什么要成帧?
- 数据链路层接收的比特流可能有错误。
- 错误检测/控制适用于块,而不是比特流。
成帧的方法:
- 字节计数法
- 字节填充的标志字节法
- 位填充的标志位法
- 物理层编码违例法
1.2.1 字节计数法
在帧头部使用一个字段来标明帧中的字符数。
缺点:计数值有可能由于传输差错而被 “篡改”。
1.2.2 字节填充的标志字节法
- 每一帧以标志字节 FLAG 作为开头和结束分界符。
- 在传输数据中出现 FLAG 时,在字符前插入一个特殊的转义字符( ESC ),字节填充。
- 如果转义字符出现在传输数据中,则用一个转义字节来填充。