网站地图
3936.net
学霸百科 没有你查不到的
IPCP

「官网地址0365.tv」-「永久地址0365.tv」

在计算机网络中,网际协议控制协议IPCP)是一个网络控制协议,用来在点对点协议连接上建立和配置网际协议。IPCP负责在点对点连接的两端配置、使能和去使能IP协议模块。IPCP使用与链路控制协议相同的报文交换机制。IPCP报文在PPP达到网络层协议阶段之前不会进行交互,任何在此阶段前收到的IPCP报文都应静默丢弃。

RFC 1332“The PPP Internet Protocol Control Protocol(IPCP)”规定了IPCP负责配置、启用和停用在点对点链路两端的IP协议模块。它使用与LCP相同的包交换机制。只有在PPP协议到达网络层协议阶段才能交换IPCP包,网络协议层阶段之前收到的任何IPCP包都要被抛弃。

IPCP协议属于网络控制协议中应用最多的协议。当链路配置到达网络层的协议阶段之后才可对IPCP进行协商。由于IPCP封装在PPP帧的数据域中,帧格式如下:

根据两端设备的配置不同,IPCP协商过程可分为静态协商和动态协商。

静态协商,即不协商。点对点通信设备的两端已经配置好了IP地址,当到达网络层协商阶段时,通信双方告知对方自身的IP地址即可。如图1(a)所示。

动态协商,即动态获取IP地址的协商。服务器端手动方式配置IP地址,并需要给客户端分配IP地址,客户端则动态获取IP地址。这种情况下客户端需要两次发送Config-Request报文,才能完成协商。首先客户端发送IP和DNS均为零的Con⁃figure数据报,服务器收到后发送携带动态分配的IP地址和以服务器的IP地址为网关的Nak数据报,然后客户端再次以收到的信息发送Configure数据报,服务器回送Ack则配置成功。如图2(b)所示。


  

实验设备和连接如下图所示。本实验使用GNS3,把两台Router c3600路由器的Serial接口连接起来,路由器分别命名为R1、R2。实验环境路由拓扑图如下:

以点到点通信协议中PAP认证过程为例,来进行网络控制协议中IPCP的配置。

 

静态协商

R1配置:

PPP通信中IPCP的静态协商配置如下:

第一个Configuration Request是客户端发送的携带本端IP的数据报:

第一个Configuration Request报文内容如下:

第二个Configuration Request是服务器发送的含有本端IP的数据报:

第二个Configuration Request报文内容如下:

然后双方分别发送Ack包来回应对端的配置请求。


  动态协商

R1配置:

PPP通信中IPCP的动态态协商配置如下:


  第一个Configuration Request是客户端发送的IP地址和DNS地址置零的请求数据报:

第一个Configuration Request报文内容如下:

Configuration Nak中是服务器分配给客户端的IP地址和本端IP做网关的数据报:

Configuration Nak报文内容如下:

第二个Configuration Request是客户端发送的含本端IP地址和DNS地址的请求数据报:

第二个Configuration Request报文内容如下:

服务器收到后发送Ack配置完成。

本实验,在点对点的通信方式中,IPCP完成了IP协议的协商和启停控制。通过使用Wireshark抓包,可以清楚地观察数据交换信息,采用协议分析的方法对IPCP协商过程进行分析,加深了对理论知识的理解,对PPP协议的理解更透彻。

IPCP和LCP基本相同,除了以下几点:

· 数据链路层协议(Data Link Layer Protocol)字段:IPCP包封装在PPP数据链路层帧的信息字段中,其协议字段值为十六进制0x8021,表示类型为IP控制协议。

· 代码(Code)字段:IPCP包类型只是LCP包类型的的一个子集,它只使用代码为1~7的包类型(Configure-Request、Configure-Ack、Configure-Nak、Configure-Reject、Terminate-Request、Terminate-Ack 和Code-Reject),使用其他代码不被承认并且导致Code-Rejects。·

超时(Timeouts):在PPP 协议到达网络层的协议阶段之前不会交换IPCP 包。在等待Configure-Ack包或其他响应的定时器超时之前,应当做好等待认证和线路质量监测完成的准备。建议只有在用户干预或可配置的时间量之后才放弃。·

配置选项类型(Configuration Option Types):IPCP拥有自己独有的配置选项集。

在传输IP包之前,PPP必须到达网络层协议阶段,而且IPCP必须变成Opened状态。IP包也封装在PPP数据链路层帧的信息字段中,其协议字段值为十六进制0x0021,表示类型为IP(InternetProtocol)。

通过PPP链路传送的IP包的最大长度与PPP数据链路层帧的信息字段中的最大长度相同。过大的IP数据报必须分片传输。如果系统要避免分片和重组,它应该使用TCP的最大分片尺寸(Maximum Segment Size)选项和MTU发现机制。

IPCP配置选项用于IP参数的协商。它使用与LCP一样的选项定义格式。下面介绍两个配置选项。

· IP地址(IP-Address)选项

该选项提供协商在链路本地端使用的IP地址的方法。它允许Confugure-Request包的发送方声明要求哪个IP地址,或者请求对方提供信息。对方能通过NAKing选项提供此信息,返回一个有效的IP地址。

如果必须进行关于远端IP地址的协商,而对方不在Configure-Request包中提供此选项,此选项应该被附加到Configure-Nak包中。给出的IP地址值必须接受为远端的IP地址,或者指示一个对方提供此信息的请求。

在默认情况下,不分配IP地址。

IP地址配置选项格式如图2-16所示。类型和长度字段各占1字节,值分别为3和6。IP地址占4字节,是Configure-Request发送方要求的本地地址。如果4字节都是0,则表示请求对方提供IP地址信息。默认IP地址不分配。IP地址选项格式如下:

· IP压缩协议(IP-Compression-Protocol)

该配置选项提供协商使用的特定压缩协议的方法。在默认情况下,压缩不使用。该配置选项格式如图2-17所示。类型和长度字段各占1字节,类型值为3,长度不小于4字节。IP压缩协议选项格式如下:


  IP压缩协议字段占2字节,用于指示请求的压缩协议。该字段的值总是与PPP数据链路层协议字段值(同样压缩协议)相同。目前分配的值为十六进制0x002d,表示Van JacobsonCompressed TCP/IP,这是用于网络的一组通信协议。

至于数据字段,属于可变长字段,可以是0,也可以是由特定压缩协议决定的更多的字节的附加数据。

Van Jacobson TCP/IP首部压缩

Van Jacobson TCP/IP首部压缩技术可将TCP/IP首部缩小到3字节,可以显著改进低速串行线的通信。上述IP压缩协议配置选项被用来指定收到压缩包的能力。如果要求双向压缩,链路的每一端都必须独立地请求该选项。

传送IP包时PPP协议字段可以设置为下列值(用十六进制表示)。

· 0x0021:典型IP。IP协议承载的不是TCP,或是分片的包,或没有压缩。

· 0x002d:压缩TCP。TCP/IP首部由压缩首部替换。

· 0x002f:未压缩TCP。IP协议域被时间片标识符替换。

用于协商Van Jacobson TCP/IP首部压缩的IP压缩协议配置选项格式如图2-18所示。其中Max-Slot-ID(最大时间片ID)和Comp-Slot-Id(压缩时间片ID)各占1字节。

Van Jacobson TCP/IP首部压缩选项格式如下:

RFC 1332: 网际协议控制协议(IPCP)

RFC 1570: PPP链路控制协议(LCP)扩展

RFC 1661:点对点协议(PPP)