PS:大标题的索引号并不有序,主要方便本人资料对看,请勿介意
3.1 数据链路层的功能
概念:
1. 链路:结点到相邻结点的物理线路
2. 数据链路:链路+实现协议的硬件/软件
3.1.1 为网络层提供服务
state | suit | eg | |
---|---|---|---|
无确认的无连接服务 | 可靠性由高层负责 | 适合误码率较低的信道 | 以太网(数据链路层)、有线网络、UDP(运输层)、IP(网际层) |
有确认的无连接服务 | 源主机在规定时间内没有收到确认,就重传丢失的帧 | 适合误码率较高的信道 | 无线网络(数据链路层) |
有确认的面向连接服务 | 帧传输:建立链路——传输帧——释放链路 | 可靠性较高 | TCP(运输层) |
有连接则一定要有确认!
补充:点对点协议PPP(湖科大视频P28)
- ——目前使用最广泛的数据链路层协议,是因特网的正式标准,主要有三个部分:
- 各种封装方法——封装成帧
- 一套网络控制协议NCPs——支持不同的网络层协议
- 链路控制协议LCP——建立、配置及测试数据链路的连接
3.1.2 透明传输
——不论传什么数据,都无差错在链路上传输
- 实现透明传输的方法
- 面向字节的异步电路——字节填充法
- 面向比特的同步链路——比特填充法
3.1.3 封装成帧
——给数据前后加上 首部 和 尾部
- 帧:也叫组帧,数据链路层对等实体间的协议数据单元PDU
- 首部和尾部:含控制信息
- 帧定界:用首部和尾部确定帧的界限
帧同步:接收方根据首部和尾部确定起终- 最大传输单元:帧的数据部分的长度上限。帧长↑,传输差错↑,因此要有最大传输单元
- 帧格式
- 首部
- 标志首字段(1字节)
- 地址字段(1)
- 控制字段(1)
- 协议字段(2)
取0021,数据部分为IP数据报
取C021,数据部分为LCP分组
取0x8021,数据部分是NCP分组
- 数据部分(<=1500字节)
- 尾部
- 校验位FCS(2字节)
- 标志尾字段(1)
- 首部
- “封装成帧”的目的——在出错时只重传出错的帧,提高效率
-
实现组帧的方法 state adv dis eg 字符计数法 帧首部记录帧的字节数,叫做“计数字段”(包含自身的1字节) “计数字段”出错,同步将中止 字节填充法 两种特定字节标志起终:1. 若数据中由特殊字符,在其前面加转义字符ESC区分,实现透明传输;2. 接收方会自动删去转义字符;3. 若ESC也出现在数据中,则在ESC前插入另一个转义字符 复杂、不兼容性 零比特计数法 1.先扫描数据,遇5个1就在后面插入1个0;2.起终加上特定比特串0111 1110 硬件易实现,性能由于字节填充法 HDLC协议 违规编码法 借用违规编码高-高电平和低-低电平 不采用任何填充技术 只适用采用冗余编码的环境 局域网IEEE802标准
冗余编码:在数据传输和存储中用于检错和纠错,通过添加额外的冗余信息来提高通信的可靠性。
3.1.4 差错控制
进行差错控制的编码技术 | 冗余编码 | adv | dis | remark | |
---|---|---|---|---|---|
自动重传请求ARQ(检错) | |||||
奇偶校验码 | 在末尾加一位使1的个数为奇数——奇校验码;为偶数——偶校验码 | 1. 只能检验出奇数位出错但不知道具体哪几位;2. 不能发现偶数位出错 | |||
循环冗余码CRC | 1.生成多项式r位,在原数据串后加r-1个0;2. 加0后的数据串除以生成多项式(模2除:即异或,加法不进位,减法不借位);3. 除到余数为r-1位,取余数作为FCS加在原数据串后 | 1. 发送方生成FCS、接收方的CRC检验都是硬件实现,迅速;2. 接收方只接收无差错的帧,即接收方接收的都是无差错的 | CRC有纠错功能,在数据链路层只使用了检错功能 | ||
前向纠错FEC(纠错) | |||||
海明码 | 加入几个检验位并把检验位放入奇偶校验组中 |
- 海明码纠错: