3.1数据链路层的功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,主要作用是为网络层提供逻辑上无差错的数据链路
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务
功能二:链路管理,即连接的建立,维持和释放(用于面向连接的服务)。
功能三:组帧
功能四:流量控制
功能五:差错控制
3.2 组帧
封装成帧
透明传输:
就是不管什么样的比特组合,都可以在链路上传送,链路层就当看不见信件里面的内容一样
透明传输在组帧中的应用:
1.字符计数法:
第一个数字代表要几个字节
缺点:当第一个字节代表的数值出错时,即5变为4,整个帧都会读取错误
2.字符填充法
发送时有开始标识符SOH和结束标识符EOT,接收中间的字符,而当中间的字符有与EOT类似的字符时,在这个字符(EOT)前填充一个Esc,然后接收方在接收时就划去Esc,得到信息
3.零比特填充法
4.违规编码法
3.3差错控制
差错从何而来:
- 线路的电器特性产生的随机噪声(例如热噪声)
- 外界短暂原因产生的冲击噪声(主要原因)
差错可能的形式:
位错:比特位出错,1变0,0变1
要传送1,2,3三个帧
帧错:丢失(1,3),重复(1,2,2,3),失序(1,3,2)
3.3.1 检错编码(针对比特错)
奇偶校验码
是由n-1位信息元和1位校验元组成,如果是奇校验,在附上一个校验元后,1的个数为奇数个
偶校验同理
这种方法,奇校验只能校验奇数位出错的情况,偶校验只能校验偶数位出错的情况
循环冗余码CRC
凡事接收端数据链路层接收到的帧均无差错
CRC只能实现无比特差错的传输,这还不是可靠传输
3.3.2纠错编码
海明码
发现双比特错,纠正单比特错