第十一章 HDLC及PPP原理与配置.docx
《第十一章 HDLC及PPP原理与配置.docx》由会员分享,可在线阅读,更多相关《第十一章 HDLC及PPP原理与配置.docx(16页珍藏版)》请在冰豆网上搜索。
第十一章HDLC及PPP原理与配置
第十一章HDLC及PPP原理与配置
本章学习目标
本章主要介绍HDLC及PPP的工作原理及配置方法。
通过本章的学习,读者应该掌握以下内容:
1、了解HDLC的特点
2、理解HDLC帧格式及控制字段
3、理解HDLC“数据透明”的实现原理
4、掌握HDLC的配置过程
5、了解PPP的层次结构和功能
6、理解PPP过程
7、了解PPP帧格式
8、了解LCP协商选项
9、理解PAP工作原理
10、掌握基本PPP配置命令
11、掌握PAP的配置过程、配置命令以及诊断方法
12、掌握CHAP的配置过程、配置命令以及诊断方法
11.1HDLC概述
20世纪70年代初,IBM公司首先提出了面向比特的同步数据链路控制(SynchronousDataLinkControl,SDLC)规程,并将其提交了美国国家标准学会ANSI和国际标准化组织ISO。
后来,ISO将SDLC做了改进,形成了自己的标准:
高级数据链路控制(High-levelDataLinkControl,HDLC)规程。
ANSI也提出了自己的SDLC版本:
先进数据通信控制规程(AdvancedDataCommuniccationControlProcedure,ADCCP)。
与此同时,国际电报电话咨询委员会CCITT为X.25中数据终端设备(DTE)和数据通信设备(DCE)之间的接口制定了标准,称为链路访问规程(LinkAccessProcedure,LAPB)或者平衡链路访问规程(LinkAccessProcedureBalanced,LAPB)。
该规程实际上也是HDLC的一种变体。
这些不同的规程,内容大同小异。
下面以HDLC为例进行介绍。
11.1.1HDLC帧格式
HDLC规定:
数据帧中所传输的数据的位数是任意的,不必是字节的整倍数。
此外,HDLC是通过约定的位模式进行帧的定界,而不是靠使用特殊定义的字符(区别于面向字符的同步规程,如IBM公司的二进制同步通信协议——BinarySynchronousCommunication,BISYNC)来界定帧的开始和结束,故称为“面向位”的同步规程,其帧格式如图11-1所示。
图11-1HDLC帧格式
由图11-1可见,接收端可以通过检查输入二进制序列列中的一个特定的位串“01111110”来界定帧的开始和结束,称为帧定界符。
接下来是地址字段。
长度为1或2字节(视不同的规程而定)。
一般,在点到点类型的通信中,地址不是必须的。
但是,有的规程通过此字段指明数据的方向。
地址字段后面是控制字段。
长度为1或2字节。
根据该字段的内容不同,一个HDLC帧又可分为:
信息帧(又称I—帧)、监控帧(S—帧)、和无编号(U—帧)。
具体介绍见后。
接下来是任意位长度的数据。
在数据字段的后面是2字节的CRC帧校验序列码,对从地址开始直至数据字段的内容进行校验。
最后是1字节的帧定界符,标识此帧的结束。
11.1.2HDLC“数据透明”实现
HDLC是使用特殊模式的二进制串“01111110”来标识帧头和帧尾的。
如果用户的数据中也出现了这种模式的二进制“01111110”,协议会认为数据帧已结束,从而提前结束数据的接受,导致协议失败。
所谓“数据透明”是通过比特填充来实现的。
发送端在发送数据的时候,如果用户的数据中也出现了特殊的二进制串“01111110”,则协议会在用户的每连续出现的5个比特“1”之后,自动插入一个比特“0”。
这样,在接受端接收到的用户数据中就不可能出现像“01111110”这样的位串。
同时,接收端在接收用户数据的时候,每连续检测到5个1就删除其后的一个“0”,如图11-2所示。
图11-2HDLC的“数据透明”实现
11.1.3HDLC的控制字段
HDLC控制字段的第1位或第1、2位用来区分三种不同类型的HDLC帧,分别是信息帧(又称I—帧)、监控帧(S—帧)和无编号(U—帧),如图11-3所示。
图11-3HDLC的控制字段
1、信息帧
HDLC允许发送方连续发送多个帧。
信息帧用来传送用户的数据。
其中,字段N(S)代表待发送的帧编号,而字段N(R)的内容是期待接收的对方下一帧编号,代表对对方已发送过来的帧的确认。
当控制字段长度为2字节时,N(S)和N(R)的长度分别为7位。
各种控制字段的第5位都是P/F位,即探询/结束(Poll/Final)位。
当主站发送一帧时,该位起探询的作用。
如果该位为1,表示要求从站必须响应。
当从站的响应时多个帧的时候,最后一帧中,将P/F位置“1”,表示响应结束。
2、监控帧
监控帧用来对通信链路进行控制、管理。
其中类型字段的不同内容指示一方怎样解释后面的N(R)字段。
此类型的帧用来实现简单的流控和检错重发。
3、无编号帧
无编号帧因其帧中控制字段不含发送帧编号字段N(S)和确认帧编号N(R)而得名。
无编号帧主要用来提供各种附加的链路控制命令和响应功能。
如果要求对方复位各种计算器的值。
HDLC可以使用全面双工通信,同时允许多帧数据的连发发送而只进行单次确认,因此可以达到较高的数据速率,所以应用非常广泛。
11.1.4Cisco的HDLC实现
标准HDLC只能在一条链路上支持一种协议类型。
针对这一限制,Cisco提出了自己HDLC实现。
在Cisco的HDLC实现中,主要通过在标准HDLC帧格式中加入上层协议类型字段来运载多种类型的上层协议数据。
如图11-4所示。
01111110
地址
控制
私用
数据
FCS
01111110
图11-4Cisco的HDLC实现
需要注意的是,Cisco的HDLC是Cisco私有的协议,其格式和标准HDLC并不兼容,因此,只能在两端都是Cisco设备的链路上进行封装。
11.2HDLC配置
同步串行线路上的HDLC封装主要用在像DDN专线这样的场合。
在实际工作中,HDLC几乎不需要配置就可以工作。
但是,在实验室环境下,可能需要做额外的配置。
在实际工作中,两个远程路由器之间是不能直接相连的,因为它们都是DTE设备,必须通过DSU/CSU这样的设备互联,靠DSU/CSU为两端的路由器提供用于同步的时钟。
在实验室环境下,由于条件限制,有时不能不将路由器直接相连(称为背靠背连接)。
背靠背连接也用于新购置设备的测试。
这时,必须规定那个路由器是DTE,那个是DCE,由DCE路由器提供时钟,同时还要设置DCE路由器的时钟频率。
其实,在将两个路由器的串行接口用电缆背靠背连接起来的时候,就已经决定了那个路由器会充当DCE端。
因为路由器可以自动识别串行接口所接入的电缆类型。
可以通过观察电缆形式判断哪个路由器会充当DCE端。
方法是看连接电缆(如V.35)一端,如果是孔端母接头,则此线缆的另一端就是DCE设备:
如果是针端,线缆另一端所接的就是DTE设备。
如果路由器处于开机状态,也可以使用showcontrollersinterface命令查看路由器某接口的类型。
如果是DCE设备,还将显示出时钟速率。
如图11-5所示,显示出接口类型为DCE。
图11-5命令showcontrollersserial1/0的输出
需要特别注意的是,某台路由器可以同时是DCE和DTE设备,这要视该路由器的对应接口接入了什么类型的电缆而定。
如果一台路由器的serial0/0是DCE端设备,其serial0/1却是DTE端设备。
下面以图11-6给出的点到点串行连接为例,介绍HDLC的配置过程。
图11-6配置点到点串行连接
首先,作为DTE端的路由器B,如图11-7所示。
图11-7配置路由器B
接下来配置作为DCE端的路由器A,如图11-8所示
图11-8配置路由器A
和路由器B不同的是,需要使用clockrate命令设置DCE端的时钟,范围为1200~8000000,单位是b/s.
请注意,在实际环境中不需要配置时钟频率,因为通信服务提供商会利用其DCU/CSU提供时钟。
配置完成后,可以使用命令showinterfacesserial检查接口状态。
如图11-9所示,其中第2行显示了屋里接口及协议状态。
如果屋里接口状态为“down”
,表明物理连接有问题,没有收到任何信号:
如果物理接口状态为“up”,协议状态字段为“down”,则表明物理连接正常,但是数据链路层工作有问题。
11.3PPP概述
11.3.1PPP概述
点到点协议配置(PointtoPointProtocol,PPP)是从串行线路IP(SerialLineIP,SLIP)改进而来的。
SLIP的提出主要是想在串行线路上传输原始的IP数据包。
其帧格式非常简单,因此功能也非常有限。
例如,它没有数据校验功能、只支持IP、不能进行动态IP地址分配、没有提供任何形式的身份认证等。
针对SLIP的缺陷,PPP协议主要做了以下的改进工作。
1、明确地划分出一帧的尾部和下一帧的头部的成帧方式并对数据进行错误检测工作。
2。
、检测不再需要的线路,经过协商后释放这些链路。
这个协议被称为链路控制协议(LikControlProtocol,LCP)。
3、用独立于网络层协议的方法来商议使用网络层的哪些选项。
对于每个支持的网络层来说,有不同的网络控制协议(NetworkControlProtocol,NCP)。
4、允许动态分配IP地址,这对于IP地址非常紧缺的今天来说非常重要。
5、增加了身份认证的功能,保证了安全。
除此之外,PPP还可以实现链路压缩、多链路等功能。
PPP协议在RFC1661、RFC1662和RFC1663中进行了描述。
PPP支持在各种物理类型的点到点串行线路上传输上层协议报文。
PPP有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等。
这些丰富的选项增强了PPP的功能。
同时,不论是异步拨号线路还是路由器之间的同步链路均可以使用。
1.PPP的层次结构
PPP支持各种类型的硬件,包括EIA/TIA232、EIA/TIA449、EIA/TIA530、V.35、V.21等。
只要是点到点类型的线路都可以运行PPP。
在数据链路层,由NCP为不同的协议提供服务。
这里的NCP相当于以太网数据链路层的LLC子层,如图11-11所示。
2.PPP的功能
PPP主要完成了以下功能:
(1)链路控制。
PPP为用户发起呼叫以建立链路;在建立链路时协商参数选择;通信过程中随时测试线路,当线路空闲时释放链路等。
PPP中完成上述工作的组件式链路控制协议(LinkControlProtocol,LCP)。
(2)网络控制。
当LCP将链路建立好了以后,PPP要开始根据不同用户的需要,配置上层协议所需的环境。
PPP使用网络控制协议(NetworkControlProtocol,NCP)来为上层提供服务接口。
针对上层不同的协议类型,会使用不用的NCP组件。
如对于IP提供IPCP接口,对于IPX提供IPXCP接口,对于APPLETALK提供ATCP接口等。
图11-11PPP的层次结构
11.3.2PPP过程
从开始发起呼叫道最终通信完成后释放链路,PPP的工作经历了一系列的过程。
下面是这一过程的描述。
(1)当以个PC终端拨号用户发起一次拨号后,此PC终端首先通过调制解调器呼叫远程访问服务器,如提供拨号服务的路由器。
(2)当路由器上的远程访问模块应答了这个呼叫后,就建立起一个初始的物理连接。
(3)接下来,PC终端和远程访问服务器之间开始传送一系列经过PPP封装的LCP分组,用于协商选择将要采用的PPP参数。
(4)如果上一步中有一方要求认证,接下来就开始认证过程。
如果认证失败,如错误的用户名、密码,则链路被终止,双方负责通信的设备或模块(如用户端的调制器或服务器端远程访问模块)关闭物理链路回到空闲状态。
如果认证成功则进行下一步。
(5)通信双方开始叫唤一系列的NCP分组来配置网络层。
对于上层使用IP协议的情形来说,此过程是由IPCP完成的。
(6)当NCP配置完成后,双方的逻辑通信链路就建立好了,双方可以开始在此链路上叫唤上层数据。
(7)当数据传送完成后,一方会发起断开连接的请求。
这时,首先使用NCP来释放网络层的链接,归还IP地址;然后利用LCP来关闭数据链路层连接;最后,是双方的通信设备或模块关闭物理链路回到空闲状态。
图11-12给出了上述过程的示意图。
11.3.3PPP帧格式
PPP帧格式以HDLC帧格式为基础,做了很少的改动。
二者的主要区别是:
PPP是面向字符的,而HDLC是面向位的。
PPP在点到点串行线路上使用字符填充技术。
所以,所有帧的大小都是自己的整数倍。
图11-13中给出了PPP的帧格式。
1字节
1字节
1字节
1~2字节
<1500字节
2或4字节
1字节
01111110
11111111
00000011
协议
数据
FCS
01111110
PPP帧是以标准HDLC标志字节(01111110)开始和结束的。
接下来是地址字段,默认情况下,被固定设成二进制数11111111,因为点到点线路的一个方向上只有一个接收方。
地址字段后面是控制字段,默认情况下,被固定设成二进制数00000011.
因为默认情况下,地址字段、控制字段总是常数。
因此,这两部分实际可以省略不要(需要通过LCP进行协商)。
接下来时协议字段,用来标明后面携带的是什么类型的数据。
其默认大小为2字节,但如果LCP包,则可以是1字节。
接下来是数据字段。
其长度可变,默认最大长度为1500字节。
接下来是校验和字段,通常情况下是2字节,但也可以是4字节。
11.3.4LCP协商选项
LCP用来在通信链路建立初期,在通信双方之间协商功能选项。
表11-1列出其中主要的选项,包括身份认证、压缩、回叫、多链路。
特征
解释
协议
身份认证
链路建立成功前要求提供正确的密码
PAP,CHAP
压缩
在带宽有限的链路提供对数据的压缩功能
Predictor,Stacker,MPPC
回叫
由被叫方重新呼叫原呼叫方发起
CiscoCallback,MSCallback
多链路
需要的时候进行多链路捆绑、负载均衡
MP
11.3.5PAP和CHAP
PPP提供了两种可选的身份认证方法:
口令认证协议(PasswordAuthenticationProtocol,PAP)和质询握手认证协议(ChallengeHandshakeAuthenticationProtocol,CHAP)。
如果双方协商达成一致,也可以不适用任何身份认证方法。
1.PAP
PAP是一个简单的、适用的身份认证协议,如图11-14所示。
图11-14PAP
PAP认证进程只在双方的通信链路建立初期进行。
如果认证成功,在通信过程中不再进行认证。
如果认证失败,则直接释放链路。
PAP的弱点是用户的用户名和密码是明文发送的,有可能被协议分析软件捕获而导致安全问题。
但是,认证只在链路建立初期进行,节省了宝贵的链路带宽。
2.CHAP
CHAPR认证比PAP认证更安全,因为CHAP不在线路上发送明文密码,而是发送经过摘要算法加工过的随机序列,也被称为“质询字符串”,如图11-15所示。
同时,身份认证可以随机进行,包括在双方正常通信过程中。
因此,非法用户就算截获并成功破解了一次密码,此密码也将在一段时间内失效。
图11-15CHAP
CHAP对端系统要求很高,因为需要多次进行身份质询、响应。
这需要耗费较多的CPU资源,因此只用在对安全要求很高的场合。
11.3.6LCP协商的其他选项
除了身份认证方法之外,PPP的LCP还提供了链路压缩、回叫、多链路捆绑等选项。
1.链路压缩
PPP协议运行在速率十分有限的点到点串行链路上。
为了提高数据发送效率,可以采用对数据进行压缩后再传送的方法,我们将其称为链路压缩。
LCP支持以下一些链路压缩方法:
Stac、MPPC、Predictoro以及TCP头部压缩。
不同的方法对CPU及内存的需求并不相同。
有些需要更多的内存(内存密集型),有些则需要占用更多的CPU时间(CPU密集型)。
压缩原理和效果也不相同。
2.回叫
回叫又称为回拨,是指通信一方拨号到另一方后,由另一方断开拨号连接并进行反向的拨号。
对于从甲地到乙地的电话费大于从乙地到甲地的电话费的情形,这时,可以由甲方首先发起到乙方的呼叫连接,当乙方受到甲方的呼叫请求后,断开乙方的呼叫。
然后,从乙方发起到甲方的回叫。
甲方应答后,双方的通信链路就建立起来了。
回叫还有更安全的优点。
因为乙方在回叫之前可以验证对方是否是合法用户,可以用口令数据库的方法或者检验对方电话号码的方法。
3.多链路捆绑
LCP的多链路捆绑(MP)选项通过将通信两端之间的多条通信链路捆绑成一条虚拟的链路而达到扩充链路可用带宽的目的。
LCP的多链路捆绑可以在多种类型的物理接口上实现,包括异步串行接口、同步串行接口、ISDN基本速率接口BRI、ISDN主速率接口PRI。
LCP的多链路捆绑也支持部同的上层协议封装类型,如X.25、ISDN、帧中继等。
11.4PPP配置
11.4.1PPP基本配置
对于同步串行接口,默认的封装格式是HSLC(Cisco私有实现)。
可以使用命令Encapsulationppp将封装格式改为PPP。
1.PAP认证过程
PAP认证可以在一方进行,即由一方认证另一方的身份,也可以进行双向身份认证。
这时,要求被认证的双方都要通过对方的认证程序。
否则,无法建立二者之间的链路。
下面以单方认证为例分析PAP配置过程及诊断方法。
如图11-22所示,当双方都封装了PPP协议且要求进行PAP身份认证,同时它们之间的链路在屋里层已激活后,认证服务器会不停的发送身份认证要求,直到身份认证成功。
在图11-22中,当认证客户端(被认证一端)路由器B发送了用户名或口令后,认证服务器会将受到的用户名或口令和本地口令数据库中的口令信息比较,如果正确,则身份认证成功,通信双方的链路最终成功建立。
如果被认证已端路由器B发送了错误的用户名或口令,认证服务器将继续不断地发送身份认证要求,知道收到正确的用户名和口令为止。
2.