目前使用最广泛的协议:点对点的PPP协议(以前使用的是可实现可靠传输的高级数据链路控制HDLC)
PPP协议特点:- 简单:互操作性高
- 封装成帧:规定特殊的字符作为帧界定符
- 透明性:保证对数据里的帧界定符进行有效转义
- 多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议。
- 多种类型链路:PPP必须能在多种类型的链路上运行,如串行或并行链路,同步或异步等等
- 差错检测:可以丢弃由差错的帧
- 检测连接状态:对于断开连接,则能够恢复连接状态。
- 最大传输单元:对每一种类型的点对点链路设置最大传送单元MTU的标准默认值,这个值是数据部分的最大长度,而不是帧的总长度。
- 数据压缩协商:提供一种方法来协商使用数据压缩方法,但不对这种方法标准化
(1)将一个IP数据报封装到串行链路的方法
(2)一个用来建立、配置和测试数据连接的链路控制协议LCP
(3)一套网络控制协议NCP,其中的每一个协议支持不同的网络层协议。
PPP帧的首部和尾部分别为四个字段和两个字段。
首部的第一个字段和尾部的第二个字段都是标志字段F(flag),规定为0X7E。
地址字段A:规定为0xFF
控制字段C:规定为0x03
A和C这两个字段没有携带PPP帧的信息
第四个字段是2字节的协议字段。
FCS:是使用CRC的帧检测序列FCS
IP数据报:是长度可变部分,最长不超过1500字节
当PPP使用异步传输时,它把转义符定义为0x7D,并使用字节填充,填充方法如下:
- 在信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D, 0x5E)
- 若信息字段中出现的一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变为2字节序列(0x7D, 0x5D)
- 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。
具体做法:
在发送端,先扫描整个信息字段(通常使用硬件方法)。只要发现有5个连续1,则立即填入一个0。这样就保证不会出现6个连续的1。
在接收端,先找到标志����,����字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描,每发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。
PPP链路初始化过程:
用户拨号接入ISP后,建立一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向IS发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。这样用户个人电脑就成为互联网上的一个有IP地址的主机。
当用户通信完毕,NCP释放网络连接,收回原来分配出去的IP地址,接着LCP释放数据链路层连接。最后释放的是物理层的连接。
个人电脑与路由器在建立物理层连接后,PPP就进入链路建立状态,其目的是建立链路层的LCP连接。
① 链路建立状态:
发送LCP的配置请求帧(一个PPP帧),其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。链路的另一端可以发送以下几种响应中的一种:
- 配置确认帧,所有项都接受
- 配置否认帧,所有项都理解但不能接受
- 配置拒绝帧 ,选项不理解或无法识别,需要协商
② 鉴别状态
只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。若使用口令鉴别协议PAP,则需要发起通信的一方发送身份标识符和口令。
若需要更好的安全性,可以使用更加复杂的口令握手鉴别协议CHAP。
若鉴别身份失败,转到链路终止状态,成功则进入网络层协议状态。
③ 网络层协议状态
PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。总之,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可以使用同一个PPP协议进行通信。
④ 打开状态
链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可以发送回送请求LCP分组和回送回答LCP分组,以检查链路的状态。数据传输结束后,可以由链路的一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到链路终止状态(链路出现故障也会进入链路终止状态)。当调制解调器的载波停止后,则回到链路静止状态。