PPP 使用哪种协议来标识网络层协议?

A.NCP    B.ISDN    C.HDLC    D.LCP

我选A

( 网络控制协议用于帮助标识分组使用的网络层协议。)

分析

  1.PPP是一种多协议成帧机制,它适合于调制解调器、HDLC位序列线路、SONET和其它的物理层上使用。它支持错误检测、选项协商、头部压缩以及使用HDLC类型帧格式(可选)的可靠传输。

  PPP提供了三类功能:

  • 成帧:它可以毫无歧义的分割出一帧的起始和结束。

  • 链路控制:有一个称为LCP的链路控制协议,支持同步和异步线路,也支持面向字节的和面向位的编码方式,可用于启动路线、测试线路、协商参数、以及关闭线路。

  • 网络控制:具有协商网络层选项的方法,并且协商方法与使用的网络层协议独立。


  2.什么是LCP?

  链路控制协议(LCP) LCP 建立点对点链路,是 PPP 中实际工作的部分。LCP 位于物理层的上方,负责建立、配置和测试数据链路连接。LCP 还负责协商和设置 WAN 数据链路上的控制选项,这些选项由 NCP 处理。

  3.什么是NCP?

  PPP允许多个网络协议共用一个链路,网络控制协议 (NCP) 负责连接PPP(第二层)和网络协议 (第三层)。对于所使用的每个网络层协议,PPP 都分别使用独立的 NCP来连接。例如,IP 使用 IP 控制协议 (IPCP),IPX 使用 Novell IPX 控制协议 (IPXCP)。

拓展

Internet中的PPP协议

   Internet由各种各样的主机、网络设备和通信网基础设施互连而成。目前,主要有两种互连情形,一种是采用局域网来互连这些设备,另一种是在广域网的场合中,采用“点到点”(Point to Point)链路(一般是租用线路)来互连这些设备。这两种互连情形,也反映了用户接入Internet的两种方式。这里简单介绍Internet中点到点链路上使用的数据链路协议。

   Internet中点到点链路协议有两个,即SLIP(串行线路Internet协议)和PPP(点到点协议)。SLIP一直没有成为Internet的标准协议。这里我们主要介绍PPP协议。

1.PPP协议的功能

   为了改变SLIP的不完善,IETF推出了点到点的Internet数据链路协议(PPP),在RFC1661中进行了定义和描述,以RFC 1662和RFC 1663进一步明确下来。PPP协议的改进之处在于:处理差错、支持多协议、在连接时允许对IP地址进行协商、允许用户身份识别。

   PPP提供如下三个主要功能:

  • 组成帧的方法,明确地规定一帧的结构及下一帧的起始。帧格式也处理差错检测。

  • 链路控制协议(LCP),包括建立线路、测试线路、协商选择项、拆除线路。

  • 网络控制协议(NCP),以独立于所使用的网络层协议的方式提供协商网络层选项的方法。所选择的方法对每一种所支持的网络层有不同的NCP。

···

   我们来考察一个典型的例子:家庭用户PC,呼叫Internet服务提供者(ISP),使家用PC成为临时Internet主机。

  1. PC通过Modem呼叫ISP的路由器,路由器的Modem对呼叫应答并建立物理连接,然后PC在PPP帧的有效载荷(payload)字段内向路由器发送一系列LCP分组,这些分组及其响应主要用于选择所使用的PPP参数。这个过程我们称之为“握手”。

  2. 完成上述动作后,ISP就发送一系列NCP分组来配置网络层。典型地,PC要运行TCP/IP协议,故需要IP地址。

  3. Internet服务提供者动态地分配IP地址给新登录进来的PC,以供PC在这次会话过程中使用。如果一个ISP拥有n个IP地址,就可以同时连接最多n个远程用户,但它的整个用户数可能是n的几倍。NCP就是用于IP地址分配的。

  4. 至此,PC成为一台临时的Internet主机,它可进行IP分组的收发。


当用户结束连接时,依次完成以下三个过程:

   (1)NCP用来结束网络层连接,释放IP地址;

   (2)LCP用来拆除DL层连接;

   (3)PC告诉Modem挂断电话,释放物理层连接。

2.PPP帧格式

PPP帧格式与HDLC的帧格式很相似,主要区别在于PPP是面向字符型的,采用字符填充方法,PPP帧有整数个字节组成。PPP帧可通过拨号电话线传送,也可通过高速的SONET光纤线路或真正的面向比特的HDLC线路传送。PPP帧格式如图4-38所示。

所有PPP帧都以HDLC的标志字节(01111110)开始,如果该标志出现在有效载荷字段中,就要做字符填充处理。接着的是地址字段,总是固定地发送11111111表示所有站都接收该帧,以避免必须分配DL连接地址。后面紧跟的是控制字段,其缺省值为00000011,表示一个无编号帧,即PPP不采用顺序号和应答以提供可靠的传输。在噪声环境下,例如无线网络,可使用编号模式保证可靠传输,详细的内容在RFC 1663中定义。在缺省情况下,地址字段和控制字段都是固定的,故LCP提供必要的机制,使双方可以协商选择项,以便能省略它们,这样每帧可以节省2个字节。

下一个字段称为协议字段,用来告知对方有效载荷中是什么类型的分组,例如LCP、NCP、IP、IPX、AppleTalk及其他。以0开始的表示网络层协议,如IP、IPX、OSI、CLNP、XNS等;以1开始的用于协商其他协议,如LCP、不同的NCP等。协议字段的缺省长度是2字节,但也可以经协商采用1字节。

有效载荷的长度是可变的,它的最大值可经协商确定。如果在建立链路时没有协商这个长度,则使用缺省长度(1500字节)。

帧的最后是校验和字段,通常情况是2个字节,但也可通过协商使用4个字节的校验。

总之,PPP是一个面向多协议组帧的数据链路机制,适用于Modem、HDLC比特串行线、SONET和其他物理层。

3.PPP链路控制过程

4-39表示了PPP协议的简化状态图,描述了线路所经过的启动、使用及关闭的各个阶段。这一顺序可以用于Modem连接以及路由器—路由器连接。

PPP 使用哪种协议来标识网络层协议?_第1张图片

当线路在“静止”(Dead)状态,无物理层信号的载波,也无物理层连接存在。当建立物理连接后,线路进入“建立”(Establish)状态,此时开始协商LCP选项。若协商成功,则进入身份“验证”(Authenticate)状态,双方按要求相互验证对方的标识符。若验证成功,就进入“网络”(Network)状态,此时调用适当的NCP协议来配置网络层。若配置成功,则到达“打开”(Open)阶段,进行数据传输。当数据传输完成后,线路进入“终止”(Terminate)状态,待载波中断以后,返回到“静止”状态。

在“建立”阶段,LCP协商数据链路协议的选项。实际上LCP不关心选项本身,而关心协商的机制。它提供了启动进程提出建议、响应进程接受或拒绝该建议(全部或部分地)的方法,也提供了两个进程对线路质量进行测试,以决定是否被用来建立连接的方法。当不再需要时,LCP允许释放线路。

RFC 1661中定义了11种LCP分组,如表4-9所示。

名称

方向

描述

Configure-request

I→R

列出建议的选项和其值

Configure-ack

I←R

接受所有的选项

Configure-nak

I←R

有些选项不接受

Configure-reject

I←R

有一些选项不可协商

Terminate-request

I→R

请求断开线路

Terminate-ack

I←R

OK,线路已断开

Code-reject

I←R

收到不明的请求

Protocol-reject

I←R

未知的协议请求

Echo-request

I→R

请将次帧送回

Echo-reply

I←R

送回的帧

Discard-request

I→R

只需丢弃次帧(用于测试)

表4-9  PPP使用的LCP分组类型


4种Configure-类型的分组允许启动者(I)建议选项值,允许响应者(R)接受或拒绝这些选项值,若拒绝,R可以修改建议或宣布完全不接受。进行协商的选项以及设定的值都是LCP分组的一部分。

2种Terminate-类型的分组用于关闭线路。R使用Code-reject和Protocol-reject来表示响应者有某种不理解的东西,这意味着可能出现了未被检测的传输差错,但很可能是I和R在运行不同版本的LCP。

2种Echo-类型的分组用于测试线路质量。Discard-request用于调试,若两端发生什么问题,程序用它来进行测试,接收方收到它后只需将它丢弃即可。

通过LCP可以协商的参数包括:为数据帧设置最大的有效载荷的长度、启动身份验证、选择使用的协议、正常运行时启用线路质量监测、以及选择各种头部压缩方式等。

关于NCP,没有一般的叙述,它们都针对某个特定的网络协议以及相应的配置请求。例如对IP,最重要的可能是地址动态分配。