PPP Internet协议控制协议(IPCP)
PPP Internet协议把持协议(IPCP)
1. 介绍
PPP有三个重要组件:
- 在串行线路上对数据报进行加密;
- 用于建立,配置和检测数据链路连接的连接把持协议(LCP)。
- 用于建立和配置不同网络层协议的网络把持协议(NCP)协议族。
为了在点对点连接上建立通信,每个PPP端必须首先发送LCP包以配置和检测数据链接。在连接建立而且可选的选项都已经由LCP设置完成后,PPP必须必须发送NCP包用以选择和配置一个或多个网络层协议。在每层的协议被配置完成后,就可以在链种上进行通信了。在LCP或NCP显式地关闭连接以前连接一保持开放。
2. 对IP的PPP网络把持协议
IP把持协议(IPCP)负责建立,使能和中断IP模块。IPCP和LCP协议利用雷同的包交换机制。IPCP包在PPP没有达到网络层协议阶段以前不能进行交换,如果有IPCP包在达到此阶段前达到会被抛弃。IPCP和LCP基础雷同,除了以下几点:
数据链路层协议域方面。一个IPCP包被包含在PPP数据链路层帧的信息域内,在帧中的协议域会有教唆类型的数值8021。编码域仅用到编码1到7。其它编码被认为是不可辨认而被抛弃。超时方面。IPCP包在PPP没有达到网络层协议以前不能交换。在实现中应当在未吸收到配置确认或其它响应前筹备等候认证和链接质量决定的完成。实现中应当保证连接在除用户干扰或超的其它情况下不得中断。配置选项类型方面。IPCP有不同的配置选项集合,在下面会具体谈到。
2.1. 发送IP数据报
在进行IP包通信前,PPP必须达到网络层协议阶段,IPCP必须达到打开状态。在PPP数据链路层帧的信息域中包含了一个IP包,帧中的协议域教唆了类型值0021。在PPP连接上传送IP包的最大长度和PPP数据链种层帧的信息域的最大长度一致。过大的IP数据报必须被重新分段。如果系统不渴望分段重组就必须利用TCP最大段大小选项和MTU创造。
3. IPCP配置选项
IPCP配置选项可以选择渴望的IP参数。IPCP利用与LCP雷同的配置选项格式。IPCP选项类型域的值如下所示:
1 IP地址1
2 IP压缩协议
3 IP地址2
3.1. IP地址1
利用配置选项IP地址是不好的,这在实现中已经证明了。IP地址配置选项可以调换这个域,应当利用IP地址配置选项。如果吸收到的配置恳求中包含IP地址或IP地址选项,此选项不应当在配置恳求中包含这个选项。如果因为IP地址选项而收到配置拒绝时,或吸收到的配置未确认中包含IP地址选项作为附加选项时,才发送这一选项。
3.2. 压缩协议
此配置选项可以利用系统利用特定的压缩协议,默认情况下不需要进行压缩。IP压缩协议配置选项格式如下所示,传送次序从左至右。
类型 2
长度 >= 4
IP压缩协议域由两个字节组成,教唆渴望的压缩协议,此域的值和PPP数据链路层协议域教唆的压缩协议一致。当前能够利用的压缩协议值如下:002d代表Van Jacobson Compressed TCP/IP。数据域为0个或多个字节,存储特定的压缩协议的一些参数。
3.3. IP地址2
这个域供给了断定用于本地连接端的IP地址的方法。它使得配置恳求的发送者可以恳求自己渴望的IP地址,或者恳求对方供给相应的信息。对方可以通过返回NAKing选项和合法的IP地址供给这方面的信息。
如果断定远程IP地址是必须的,而对方又未在它的配置恳求选项中供给,此选项应当加在配置拒绝选项后。IP地址值要么是一个合法的远程IP地址,要么恳求对方供给信息。默认情况下未指定IP地址。下面是IP地址配置选项格式,传送次序是从左至右。
类型 3
长度 6
四个字节的IP地址是配置恳求发送方渴望本地地址。如果这四位全部为零,则恳求对方供给IP地址信息。
4. Van Jacobson TCP/IP包头压缩
Van Jacobson TCP/IP包头压缩降低了TCP/IP包头的大小到接近3个字节,这对于慢速的串行线路来说是一大进步。IP压缩协议配置选项用于教唆吸收压缩包的能力。如果需要两个方向都进行压缩则需要双方独立申请。在传送IP包时PPP协议域被设置为以下值:
0021 类型IP。IP协议不是TCP,或包是一个数据段,或未经过压缩。
002d 压缩的TCP。TCP/IP包头由压缩的包头调换。
002f 未压缩的TCP. IP协议域由槽(slot)标记代替。
4.1. 配置选项格式
IP压缩协议配置选项格式如下所示,传送次序从左至右:
类型 2
长度 6
IP压缩协议
002d教唆Van Jacobson Compressed TCP/IP包头。Max-Slot-Id域一个字节,教唆最大的槽标记,它比实际的槽数少一,槽标记从0到Max-Slot-Id。在实际中,如果Max-Slot-Id = 0,可能会有问题。Comp-Slot-Id域一个字节,教唆槽标记域是否压缩。
0 槽标记不得压缩。所有压缩的TCP包必须在每个变更掩码(change mask)中设置C位,并要包含槽标记。
1 可压缩槽标记。