《计算机网络》笔记:数据链路层
设计要点
- 为网络层提供服务:无确认的无连接服务、有确认的无连接服务、有确认的面向连接服务
- 处理传输错误
- 流控制:基于反馈的流控制、基于速率的流控制
错误检测与纠正
纠错码
- 包含冗余信息,使接收方知道肯定包含哪些信息(前向纠错)
- 海明距离:两码字中不同位数
- 编码方案的海明距离:合法码字列表中最小的海明距离
- 纠错码;为检测d个错误,需要海明距离为d+1的编码方案;为纠正d个错误,需要海明距离为2d+1的编码方案
- 海明码:纠正单个错误、突发性错误(每次传送一列,分散错误)
检错码
- 包含冗余信息,使接收方知道发生了错误并请求重传。
- 多项式编码(polynomial code),也称CRC(cyclic redundancy check,循环冗余校验码):在帧尾加入校验和使追加后的帧可以被生成多项式G(x)除尽。
基本数据链路协议
- 无限制的单工协议
- 单工的停-等协议:等待确认
- 有噪声的单工协议:PAR(positive acknowledgement with retransmission,支持重传的肯定确认协议)又称ARQ(automatic repeat request,自动重复请求协议),确认超时后重传
滑动窗口协议
- 稍待确认
- 发送窗口、接收窗口
1位滑动窗口协议
- 收到确认后发送下一帧
使用回退n帧技术的协议
- 回避往返延时
- 管道化技术:管道容量=带宽*往返延迟
- 回退n帧:接收方只接受下一帧
- 选择性重传:接收方缓存错误帧后的所有帧
- 否定的确认帧(NAK,negative acknowledgement):避免发送方等待确认超时
协议验证
有限状态机模型
- 可达性分析、协议机、初始状态
- 模型内容
- S:进程与信道可能的状态集合
- M:能在信道上进行交换的帧的集合
- I:进程初始状态的集合
- T:状态之间转换的集合
Peri网模型
- 模型内容
- 库所(place):状态
- 变迁(transition)
- 弧(arc)
- 标记(token):系统当前的状态
- 转换用垂直或水平线表示,标记用粗黑点表示,库所用圆圈表示,
- 激活的转换:转换的输入库所中有至少一个输入标记。激活的转换随时可以激发。
- 文法:转换用箭头表示,两边为输入输出库所,每一转换对应一条文法。eg. BD->AC
数据链路层协议示例
HDLC
- 历史
- IBMSDLC(synchronous data link control,同步数据链路控制)协议
- ADCCP(advanced data communication control procedure,高级数据通信控制规程):ANSI修改
- HDLC(high-level data link control,高级数据链路控制):ISO修改
- CCITT采纳并修改HDLC作为LAP(link access procedure,链路访问规程),及LAPB
- 面向位的协议的帧结构:分界标志序列+地址+控制+数据+校验和+分界标志序列
- 三种帧:信息帧、管理帧、无序号的帧
Internet 中的数据链路层
- internet连接过程:PC中使用TCP/IP的进程->调制解调器->拨号电话线(使用PPP的TCP/IP连接)->调制解调器->路由器->路由选择进程…
- PPP(point-to-point protocol,点到点的协议)功能
- 成帧的方法:无歧义分割、错误检测
- 链路控制协议:LCP(link control protocol)
- 协商网络层选项的方法:对每一支持的网络层给出NCP(network control protocol,网络控制协议)
- PPP帧格式与HDLC非常相似
本文采用 知识共享署名 4.0 国际许可协议(CC-BY 4.0)进行许可,转载注明来源即可: https://harttle.land/2014/04/07/computer-network-link-layer.html。如有疏漏、谬误、侵权请通过评论或 邮件 指出。