目录
滑动窗口协议: 选择重传
选择重传协议
选择重传协议
点对点协议 PPP
PPP 的主要特点
PPP 协议有三个组成部分
PPP 协议的帧格式
PPP 有一个 2 个字节的协议字段
透明传输问题
PPP 的字符填充
PPP 的工作状态
滑动窗口协议: 选择重传
选择重传协议
GBN相对简单,但一个分组的差错可能引起大量分组的重传,这些分组可能已经被接收方正确接收了,但由于未按序到达而被丢弃。
显然GBN对这些分组的重传是对通信资源的极大浪费。
为进一步提高性能,可设法只重传出现差错的分组。这时接收窗口大小不再为1,以便接收失序到达的分组--选择重传协议。
选择重传协议
接收窗口大小>=1,接收到失序分组,如果序号在接收窗口中,先缓存,等到所缺分组收齐后再一并交付上层。
由于采用的是选择确认,只重传出现差错的分组。
发送窗口只有收到最左侧序号的确认才能右移,而接收窗口只有收到最左侧序号的数据分组才能右移。
点对点协议 PPP
在通信线路质量较差的年代,能实现可靠传输的高级数据链路控制(High-level Data Link Control,HDLC)成为了当时比较流行的数据链路层协议。HDLC是一个比较复杂的协议,实现了滑动窗口协议,并可支持点对点和点对多点两种连接方式。
对于现在误码率已非常低的点对点有线链路,HDLC已很少使用了,而简单得多的点对点协议(Point-to-Point Protocol,PPP)则是目前使用最广泛的点对点数据链路层协议。
用户计算机和ISP进行通信时,所使用的数据链路层协议通常就是PPP协议。
PPP协议是IETF在1992年制定的,经多次修订,现在已成为互联网的正式标准。
PPP 的主要特点
简单 ——不提供可靠传输服务。
封装成帧 ——规定特殊的字符作为帧定界符。
透明性 —— 能够保证数据传输的透明性。
多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
多种类型链路 —— 能够在多种类型的点对点链路上运行。
差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。
最大传送单元 ——对每种链路设置最大传送单元 MTU 的标准默认值。
网络层地址协商 ——提供机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
PPP 协议有三个组成部分
一个将上层数据(如 IP 数据报)封装到串行链路的方法。
一个链路控制协议 LCP (Link Control Protocol)用来建立、配置和测试数据链路连接。
一套网络控制协议 NCP (Network Control Protocol)每个网络控制协议支持不同的网络层协议。
PPP 协议的帧格式
标志字段 F = 0x7E (01111110) ,PPP帧的定界符,规定为0x7E, 表示一个帧的开始或结束。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 规定为 0x03。控制字段实际上也不起作用。
PPP 有一个 2 个字节的协议字段
当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。
若为 0xC021, 则信息字段是 PPP 链路控制协议(LCP)数据。
若为 0x8021,则表示这是网络控制协议(NCP)数据。
透明传输问题
当 PPP 用在SONET/SDH等面向比特的同步传输链路时,协议规定采用硬件来完成比特填充。
当 PPP 用在面向字符的异步传输时,使用一种特殊的字符填充法,其转义符定义为0x7D。
PPP 的字符填充
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)。
若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
PPP 的工作状态
->当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
->PC机向路由器发送一系列的LCP分组,以便建立LCP连接,并协商一些配置选项。
->协商结束后就进入“鉴别”状态。若通信的双方鉴别身份成功,然后进行网络层配置。
->NCP给新接入的PC机分配一个临时的IP地址,使PC机成为互联网上的一个主机。
->通信完毕时,NCP释放网络连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。