计算机网络学习——数据链路层
准备计网考试,总结一下知识点。
参考书 《计算机网络原理》第二版 王志文 陈研
数据链路控制
是什么?
数据链路层是OSI模型的第二层,基于物理层。
数据链路是相对于物理链路而言的,在逻辑上信息传输时设定的链路。例如把物理链路们比喻成四通八达的马路,物理链路为脚下的路,那么数据链路们则为马路抽象出来的地图,数据链路则为想象中的路线。
在数据链路上传输的信元为帧。
需要完成什么
- 数据链路管理(建立、维持和释放)
- 帧定界(在比特流上准确分出一个帧的开始、结束)
- 流量控制(避免拥塞或者接收方无力接受溢出)
- 差错控制(检测出错的帧,进行重传)
- 区分数据和控制信息
- 透明传输(确保无论数据是怎么样的比特组合,都能在数据链路上传输)
- 寻址
功能怎么实现的?
帧定界
- 字符计数法
- 首位界符法
- 首尾标志法
- 物理编码违例法
通常使用字符计数法+另一种来保证帧定界安全,通过字符计数定位到结束符处,只有当这个位置出现正确的结束符才会识别为一个帧,否则寻找下一个帧的起始符
差错控制的方式
存在突发性和随机性差错,前者影响局部,后者始终存在。
- 检错反馈重发
- 停等ARQ
- 连续ARQ
- 选择重传ARQ
- 自动纠错(前向纠错FEC)
- 混合,少量自动纠错,大量反馈重发
检错或纠错码
垂直水平奇偶检验码
循环冗余检验码(CRC)
将要传输的二进制数数据转换为多项式,并左移扩展 r 位,除以一个双方约定的生成多项式(r位)
并把r位余数加在左移扩展 r 位的数据上构成冗余检验码
校验和
发送方16位一组进行循环进位累加后取反
接收方同样方式并比较校验和
具体协议?
具体协议需要实现两个要求
- 链路理想,不会出差错,不会丢失
- 确保接收方能接受发送方的发送速度
停等协议
首先了解怎么进行传输数据的模型(停等协议),再来谈是怎么控制的
全双工通信双方都有一个缓存,主机并行向缓存写入、读出数据,数据链路串行写入数据
怎么进行流量控制
发送方传输一个数据帧,直至接收方返回确认信息后再传输下一帧
怎么进行差错控制
通过检错码确认差错,然后接收方若出错则返回NAK说明出现错误需要重传,若正确则返回ACK确认收到。
帧丢失
避免确认帧丢失,则发送方设置超时计时器进行定时重传
避免重传时重复帧,则标记帧发送序号,若出现重复,丢掉重复帧,重新发送确认帧
效率
错误概率为p,发送时间为tf时,平均传送一个正确数据帧的概率为tf/1-p(几何分布)
连续重传ARQ协议
不再等待确认帧,一旦传完数据立刻传下一个数据。
给每一个帧计时,若超时则从第一个超时的帧进行重传。
收到确认帧后,向主机确认该帧已经传输成功。收到错误后,从错误帧进行重传
效率
假设重传时间为t,发送时间为tf,则平均成功传输一个帧的时间为tf + pt/1-p
滑动窗口
为了避免大量帧重传,大量编号计时造成的低效并进行流量控制,对未得到确认,继续传送的帧数进行限制
滑动窗口采用发送窗口和接受窗口,在窗口外的帧不允许接受、发送。通常设置窗口长度为1,当发送方得到接收方确认帧时向右滑动。允许接收方用一个帧来确认多个帧的情况。也允许接收方和发送方沟通发送窗口长度
选择重传ARQ协议
随着存储器价格下降,可以采用增大接受窗口来进行只将错误帧选择重传的方式进行
发送接受窗口大小相同(>1),并且为了避免ACK丢失造成的重复,窗口大小必须小于最大序列号的一半
点对点数据链路接入控制
串行线路网际协议(SLIP)
通过电话线进行拨号,ISP验证后分配IP地址
IP数据报首位加上特殊标识符封装成SLIP帧,并对相同字符进行转义
不支持差错检测,只支持IP
点到点协议(PPP)
由头部,内容和尾部组成。头部有控制字段
内容可能有三部分
- 链路控制协议LCP(协商PPP参数)
- 网络控制协议NCP(进行网络层配置)
- IP数据报(数据)
同步传输时进行比特填充,异步传输进行字符填充。
先发送LCP封装的PPP包,然后发送NCP封装的PPP包,然后就能通过ISP来进行通信了。