第1页天津工业大学电子与信息工程学院通信系第七章PPP协议主要内容:7.1PPP协议的基本概念7.2PPP协议的组件7.3PPP链路的建立过程7.4LCP的可选配置参数第2页天津工业大学电子与信息工程学院通信系7.1PPP协议的基本概念一、PPP协议出现的背景在PPP协议出现以前,若要完成网络设备的互联(主机与NAS的互联、路由器与路由器的互联、路由器与主机的互联、主机与主机的互联),需要使用SLIP(SerialLineInternetProtocol,串行线路网际协议)。SLIP是进行远程访问的一种旧的工业标准,主要在Unix远程访问服务器中使用。SLIP协议是面向低速串行线路的,可以用于专用线路,也可以用于拨号线路,Modem的传输速率在1200bps到19200bps。第3页天津工业大学电子与信息工程学院通信系随着计算机技术特别是网络技术的发展,人们开始渐渐认识到使用SLIP协议已不能满足日益增长的网络需求,如何在串行点对点的链路上封装IP、IPX、AppleTalk等网络层的协议,成为网络技术的主要问题。1989年,提出了PPP协议,经过多年的修改和完善,于1994年正式成为Internet的标准之一,它由RFC1661定义,还包括RFC1662、RFC1663等一系列协议。PPP由于自身的诸多的优点已成为目前被广泛使用的数据链路层协议。我们还是首先了解一下SLIP。第4页天津工业大学电子与信息工程学院通信系1、SLIP协议的基本概念SLIP协议出现在80年代中期,并被使用在BSDUNIX主机和SUN的工作站上,因为SLIP简单易用,所以后来被大量使用在线路速率从1200bps到19.2Kbps的专用线路、拨号线路上互连主机和路由器,到目前为止仍有大部分UNIX主机保留对该协议的支持。在80年代末90年代初期,被广泛用于家庭中每台有RS232串口的计算机和调制解调器连接到Internet。SLIP是一种在点对点的串行链路上封装IP数据报的简单协议,它并非是Internet的标准协议。第5页天津工业大学电子与信息工程学院通信系2、SLIP协议的封装格式SLIP协议的封装格式必需遵循以下几条原则:通过在被发送IP数据报的尾部增加特殊的END字符(0xC0)从而形成一个简单的SLIP的数据帧,而后该帧会被传送到物理层进行发送。为了防止线路噪声被当成数据报的内容在线路上传输,通常发送端在被传送数据报的开始处也传一个END字符。第6页天津工业大学电子与信息工程学院通信系如果线路上的确存在噪声,则该数据报起始位置的END字符将结束噪声引起的错误报文,这样当前正确的数据报文就能正确的传送了,而前一个含有无意义报文的数据帧会在对端的高层被丢弃。当被传送的IP数据报文中含有END字符时,则需要对该字符进行转义(就是使用其它字符来表示),可使用连续传输的两个字节来代替它(如0xdb和0xdc)。如果当被转义后的字符也包含在数据报中,则也需要对其进行同样的操作,直至不出现歧义为止。第7页天津工业大学电子与信息工程学院通信系从上图可以看出SLIP帧的封装格式非常简单,通信双方无需在数据报发送前协商任何配置参数选项(在PPP协议中需协商配置参数选项),所以双方IP层通信前必需先获知对方的IP地址,才能进行网络层的通信,否则链路层发送的数据帧在被送到对方网络层时将无法进行转发。由于数据帧中也没有类似于以太网、HDLC和PPP等数据链路层协议中定义的协议域字段,因此SLIP仅支持一种网络层协议(IP协议)在串行链路上发送。C0IP数据报文C0第8页天津工业大学电子与信息工程学院通信系SLIP协议没有在数据帧的尾部加上CRC校验,如果由于线路噪声而产生的传输错误是无法在对端的数据链路层中被发现的,必须在对端交由上层的应用软件来处理。正是由于上面的诸多缺点,导致了SLIP很快的被后面要讲到的PPP协议所替代。第9页天津工业大学电子与信息工程学院通信系二、PPP协议简介PPP提供了一种在点对点的链路上封装多协议数据报(IP、IPX和AppleTalk)的标准方法。它能够支持:IP地址的动态分配和管理;同步(面向位的同步数据块的传送)或异步(起始位+数据位+奇偶校验位+停止位)物理层的传输;网络层协议的复用;链路的配置、质量检测和纠错;多种配置参数选项的协商。第10页天津工业大学电子与信息工程学院通信系PPP协议主要包括三部分:LCP(LinkControlProtocol)链路控制协议、NCP(NetworkControlProtocol)网络控制协议和PPP的扩展协议(如MultilinkProtocol)。PPP的扩展协议主要是解决通信链路承载能力过低的问题,但随着网络技术的不断发展,网络带宽已不再是瓶颈,所以PPP扩展协议的应用也就越来越少。另外,大部分网络教材上会将PPP的认证也作为PPP协议的一个主要部分,实际上这是一个不准确的认识。第11页天津工业大学电子与信息工程学院通信系PPP协议默认是不进行认证配置参数选项的协商,它只作为一个可选的参数,当点对点线路的两端需要进行认证时才需配置。当然在实际应用中这个过程是不可忽略的,例如在使用计算机上网时,需要通过PPP协议与NAS设备互连,在整个协议的协商过程中,需要用户输入用户名和密码。因此当有人说PPP协议主要包括LCP、认证和NCP协议三个部分时,不要认为他的说法是错误的,只是不够准确。第12页天津工业大学电子与信息工程学院通信系7.2PPP协议的组件首先简单介绍一下PPP协议的三组件:PPP协议的封装方式、LCP协议的协商过程和NCP协议的协商过程,然后再结合具体的LCP和NCP数据报的封装格式、两个阶段实际数据报文的交换过程,进一步理解PPP的LCP和NCP协商阶段的具体内容。第13页天津工业大学电子与信息工程学院通信系一、PPP协议的封装我们知道OSI参考模型共分七层,自下而上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通常我们会依据某协议所完成的功能将它与这七层进行对照,确定该协议的所属层次。PPP协议就属于数据链路层协议。我们在提及PPP协议的报文封装格式时,不能不先提一下HDLC协议。HDLC也是最常用的数据链路层协议,它是从SDLC协议演进过来的,许多常用的数据链路层协议的封装方式都是基于HDLC的封装格式的。第14页天津工业大学电子与信息工程学院通信系同样PPP协议也不例外,它也采用了HDLC的定界帧格式。下图为PPP数据帧的封装格式:(1)标志域每一个PPP数据帧均是以一个标志字节起始和结束的,该字节为0x7E。如果数据域中出现标志字节,则采用比特填充的方法处理。(2)地址域紧接在起始标志字节后的一个字节是地址域,用来标识对端的链路层地址。7E信息/数据FF协议(2B)03CRC(2B)7E第15页天津工业大学电子与信息工程学院通信系网络协议是分层结构的,且只在对等层之间进行相互通信,而下层为上层提供服务。当对等层进行通信时首先需获知对方的地址,而对不同的网络,在数据链路层则表现为需要知道对方的MAC地址、X.21地址、ATM地址等;在网络层则表现为需要知道对方的IP地址、IPX地址等;而在传输层则需要知道对方的协议端口号。例如如果两个以太网上的主机希望能够通信的话,首先发送端需获知对端的MAC地址。7E信息/数据FF协议(2B)03CRC(2B)7E第16页天津工业大学电子与信息工程学院通信系但由于PPP协议是被运用在点对点的链路上的特殊性,它不像广播或多点访问的网络那样,需要要标识通信的对方。因为点对点的链路本身就可以唯一标识对方,因此使用PPP协议互连的通信设备的两端无须知道对方的数据链路层地址,所以该字节已无任何意义,按照协议的规定将该字节填充为全1的广播地址。7E信息/数据FF协议(2B)03CRC(2B)7E第17页天津工业大学电子与信息工程学院通信系(3)控制域因为PPP协议只传送信息帧,PPP数据帧的控制域也没有实际意义,按照协议的规定通信双方将该字节的内容填充为0x03。7E信息/数据FF协议(2B)03CRC(2B)7E第18页天津工业大学电子与信息工程学院通信系(4)协议域协议域可用来区分PPP数据帧中信息域所承载的数据报文的内容。协议域的内容必须依据ISO3309的地址扩展机制所给出的规定。该机制规定协议域所填充的内容必须为奇数,也即是要求低字节的最低位为“1”,并且高字节的最低位为“0”。7E信息/数据FF协议(2B)03CRC(2B)7E第19页天津工业大学电子与信息工程学院通信系如果当发送端发送的PPP数据帧的协议域字段不符合上述规定,则接收端会认为此数据帧是不可识别的,那么接收端会向发送端发送一个Protocol-Reject报文,在该报文尾部将完整地填充被拒绝的报文。7E信息/数据FF协议(2B)03CRC(2B)7E第20页天津工业大学电子与信息工程学院通信系协议域类型说明最典型的几种取值0xc021信息域中承载的是链路控制协议(LCP)的数据报文0xc023信息域中承载的是PAP协议的认证报文0xc223信息域中承载的是CHAP协议的认证报文0x8021信息域中承载的是网络控制协议(NCP)的数据报文0x0021信息域中承载的是IP数据报文第21页天津工业大学电子与信息工程学院通信系(5)信息域信息域缺省时最大长度不能超过1500字节,其中包括填充域的内容。1500字节大小等于PPP协议中配置参数选项MRU(MaximumReceiveUnit)的缺省值,在实际应用当中可根据实际需要进行信息域最大封装长度选项的协商。信息域如果不足1500字节时可被填充,但不是必须的,如果填充则需通信双方的两端能辨认出有用与无用的信息就可正常通信。7E信息/数据FF协议(2B)03CRC(2B)7E第22页天津工业大学电子与信息工程学院通信系我们通常在通信设备的配置过程中,遇到最多的也是MTU(MaximumTransmitUnit)。对于一个设备而言,它网络的各个层次均使用MTU和MRU两个值,一般情况下设备的MRU会比MTU稍大几个字节,但这需根据各厂商的设备而定。7E信息/数据FF协议(2B)03CRC(2B)7E信息/数据FF协议(2B)03CRC(2B)7E第23页天津工业大学电子与信息工程学院通信系(6)CRC校验域CRC校验域主要是对PPP数据帧传输的正确性进行检测的,即在数据帧中引入了传输正确性的保证机制。7E信息/数据FF协议(2B)03CRC(2B)7E信息/数据FF协议(2B)03CRC(2B)7E第24页天津工业大学电子与信息工程学院通信系二、LCP协议为了能适应复杂多变的网络环境,PPP协议提供了一种链路控制协议来配置和测试数据通信链路,它能用来协商PPP协议的一些配置参数选项;处理不同大小的数据帧;检测链路环路、一些链路的错误;终止一条链路。详细内容后面讲述。第25页天津工业大学电子与信息工程学院通信系三、NCP协议PPP的网络控制协议根据不同的网络层协议可提供一组网络控制协议,常用的有提供给TCP/IP网络使用的IPCP网络控制协议和提供给SPX/IPX网络使用的IPXCP网络控制协议等,但最为常用的是IPCP协议。当点对点的两端进行NCP参数配置协商时,主要是用来获得通信双方的网络层地址。详细内容后面讲述。第26页天津工业大学电子与信息工程学院通信系7.3PPP链路的建立过程一、PPP的状态转移数据通信设备的两端如果希望通过PPP协议建立点对点的通信,无论哪一端的设备都需发送LCP数据报文来配置链路(测试链路)。如果通信的双方LCP配置参数选项包含了认证方式,那么一旦LCP的所有配置参数选项协商完后,通信双方就会根据所协商的认证方式进行认证。第27页天津工业大学电子与信息工程学院通信系协议缺省情况下双方是不进行认证的,而直接进入到NCP配置参数选项的协商,直至所经历的几个配置过程全部完成后,点对点的双方就可以开始通过已建立好的链路进行网络层数据报文的传送了,整个链路就处于可用状态。一旦