前言
正文
一、PPP
PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。
1 PPP基本概念
1.1 PPP协议簇
- 点到点链路层协议
- 三个协议族
- 链路控制协议族LCP
- 链路控制协议族(Link Control Protocol),主要用来建立、拆除和监控PPP数据链路。LCP可以自动检测链路环境,如是否存在环路;协商链路参数,如最大数据包长度,使用何种认证协议等等。与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议并实施认证过程,只有认证成功才会建立连接。这个特点使PPP协议很适合被运营商用来接入分散的用户。
- 网络层控制协议族NCP
- 网络层控制协议族(Network Control Protocol),主要用来协商在该数据链路上所传输的数据包的格式与类型。例如IPCP用于协商控制IP,IPXCP用于协商控制IPX协议等。
- 认证协议族CHAP和PAP
- PPP提供了用于网络安全方面的验证协议族(PAP和CHAP)。
1.2 PPP报文结构
PPP报文封转格式
- Flag域
- Flag域标识一个物理帧的起始和结束,该字节为二进制序列01111110 (0x7E)。
- Address域
- Address域可以唯一标识对端。PPP协议是被运用在点对点的链路上,因此,使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。按照协议的规定将该字节填充为全1的广播地址,对于PPP协议来说,该字段无实际意义。
- Control域
- 该字段默认值为00000011(0x03),表明为无序号帧,PPP默认没有采用序列号和确认号来实现可靠传输。
- Address和Control域一起标识此报文为PPP报文,即PPP报文头为FF03。
- Protocol域
- 协议域可用来区分PPP数据帧中信息域所承载的数据报类型。典型的字段值有:0XC021代表LCP报文,0XC023代表PAP报文,0XC223代表CHAP报文。
- Information域
- 信息字段包含协议字段中指定协议的数据包。数据字段的默认最大长度(不包括协议字段)称为最大接收单元MRU(Maximum Receive Unit),MRU的缺省值为1500字节。
LCP报文封装格式
- Code域
- 代码域的长度为一个字节,主要是用来标识LCP数据报文的类型。1.典型的报文类型有:配置信息报文(Configure Packets: 0x01),配置成功信息报文(Configure-Ack: 0X02),终止请求报文(Terminate-Request:0X05)。
- Identifier域
- 标识域为1个字节,用来匹配请求和响应,当标识域值为非法时,该报文将被丢弃。
- 通常一个配置请求报文的ID是从0x01开始逐步加1的。当对端接收到该配置请求报文后,无论使用何种报文回应对方,但必须要求回应报文中的ID要与接收报文中的ID一致。
- Length域
- 长度域的值就是该LCP报文的总字节数据。它是代码域、标志域、长度域和数据域四个域长度的总和。
- 长度域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。
- Data域
- 4.承载各种TLV(Type/Length/Value)参数用于协商配置选项,包括最大接收单元,认证协议等等。
- Type为协商选项类型。
- Length为协商选项长度ÿ