PPP有三个主要组件:在串行线路上对数据报进行加密; 用于建立,配置和检测数据链路连接的连接控制协议(LCP)。 用于建立和配置不同网络层协议的网络控制协议(NCP)协议族。 为了在点对点连...">

米葫芦网

PPP Internet协议控制协议(IPCP)

热度:11℃ 发布时间:2023-11-16 20:01:24
;

PPP Internet协议控制协议(IPCP)

1. 介绍

href="" target="_blank">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 可压缩槽标记。


网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载