简介 编辑 点到点协议(Point to Point Protocol,PPP)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。 [1] 这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。PPP具有以下功能: (1)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址; (2)PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等; (3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议; (4)无重传的机制,网络开销小,速度快。 (5)PPP具有身份验证功能。 (6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。

帧格式 编辑 PPP的帧格式

7E FF 03 协议 信息 FCS 7E 字节 1 1 1 2 <=1500 2 1 PPP采用7EH作为一帧的开始和结束标志(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H) ;协议域(两个字节)取0021H表示IP分组,取8021H表示网络控制数据,取C021H表示链路控制数据;帧校验域(FCS)也为两个字节,它用于对信息域的校验。若信息域中出现7EH,则转换为(7DH,5EH)两个字符。当信息域出现7DH时,则转换为(7DH,5DH)。当信息流中出现ASCII码的控制字符(即小于20H),即在该字符前加入一个7DH字符。

部分组成 编辑 封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时在同一链路传输的多路复用技术。PPP 封装精心设计,能保持对大多数常用硬件的兼容性,克服了SLIP不足之处的一种多用途、点到点协议,它提供的WAN数据链接封装服务类似于LAN所提供的封闭服务。所以,PPP不仅仅提供帧定界,而且提供协议标识和位级完整性检查服务。 链路控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。 网络控制协议:协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议; 配置:使用链路控制协议的简单和自制机制。该机制也应用于其它控制协议,例如:网络控制协议(NCP)。 为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立,LCP 所需的可选功能被选定之后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了。 链路将保持通信设定不变,直到有 LCP 和 NCP 数据包关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。 应 用:假设同样是在Windows 98,并且已经创建好“拨号连接”。那么可以通过下面的方法来设置PPP协议:首先,打开“拨号连接”属性,同样选择“服务器类型”选项卡;然后,选择默认的“PPP:Internet,Windows NT Server,Windows 98”,在高级选项中可以设置该协议其它功能选项;最后,单击“确定”按钮即可。

工作流程 编辑 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接(底层up)。

话流程 PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。 这些分组及其响应选择一些 PPP 参数,和进行网络层配置(此前如有PAP或CHAP验证先要通过验证),NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

特点与认证方式 编辑 特点 PPP协议是一种点——点串行通信协议。PPP具有处理错误检测、支持多个协议、允许在连接时刻协商IP地址、允许身份认证等功能,还有其他。PPP提供了3类功能:成帧;链路控制协议LCP;网络控制协议NCP。PPP是面向字符类型的协议。 PPP协议的帧格式 标志字段 地址字段 控制字段 协议 信息部 分 FCS 标志字段 PPP是一种多协议成帧机制,它适合于调制解调器、HDLC位序列线路、SONET和其它的物理层上使用。它支持错误检测、选项协商、头部压缩以及使用HDLC类型帧格式(可选)的可靠传输。PPP提供了三类功能: 1 成帧:他可以毫无歧义的分割出一帧的起始和结束。 2 链路控制:有一个称为LCP的链路控制协议,支持同步和异步线路,也支持面向字节的和面向位的编码方式,可用于启动路线、测试线路、协商参数、以及关闭线路。链路控制协议(LCP) LCP 建立点对点链路,是 PPP 中实际工作的部分。LCP 位于物理层的上方,负责建立、配置和测试数据链路连接。LCP 还负责协商和设置 WAN 数据链路上的控制选项,这些选项由 NCP 处理。 3 网络控制:具有协商网络层选项的方法,并且协商方法与使用的网络层协议独立。PPP允许多个网络协议共用一个链路,网络控制协议 (NCP) 负责连接PPP(第二层)和网络协议 (第三层)。对于所使用的每个网络层协议,PPP 都分别使用独立的 NCP来连接。例如,IP 使用 IP 控制协议 (IPCP),IPX 使用 Novell IPX 控制协议 (IPXCP)。 认证方式 一种是PAP,一种是CHAP。相对来说PAP的认证方式安全性没有CHAP高。PAP在传输password是明文的,而CHAP在传输过程中不传输密码,取代密码的是hash(哈希值)。PAP认证是通过两次握手实现的,而CHAP则是通过3次握手实现的。PAP认证是被叫提出连接请求,主叫响应。而CHAP则是主叫发出请求,被叫回复一个数据包,这个包里面有主叫发送的随机的哈希值,主叫在数据库中确认无误后发送一个连接成功的数据包连接。

要求 编辑 简单:因IETF在设计因特网体系结构时,把最复杂的部分放在了TCP协议中,网际协议IP相对比较简单,所以对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。简单为首要要求 简单的设计还可以是协议在实现时不容易出错,从而不同厂商在协议的不同实现上互操作性提高了。 封装成帧:PPP协议必须规定特殊字符作为帧定界符(标志一个帧的开始和结束的字符),以便接收端从收到的比特流中能准确地找出帧的开始和结束位置。 透明性:PPP协议必须保证数据传输的透明性。(即如果数据中碰巧出现了和帧界定符一样的比特组合时要采取有效的措施来解决这个问题) 多种网络层协议:PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(例如P和IPX等)的运行。 [2]
当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。 多种类型链路:除了要支持多种网络层协议外,PPP还必须能够在多种类型的链路上运行。 差错检测:PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。 检测连接状态:PPP协议必须具有一种机制能够及时自动检测出链路是否处于正常工作状态。 最大传送单元: PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值(至少是1500字节),如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。 网络层地址协商:PPP协议必须提供一种机制使通信的两个网络层(例如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能的简单,且能在所有的情况下得出协商结果。 数据压缩协商:PPP协议必须提供一种方法来协商使用数据压缩算法,但PPP协议并不要求将数据压缩算法进行标准化。在TCP/IP协议族中,可靠运输由运输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站进行通信),而只支持点对点的链路通信,此外PPP协议只支持全双工链路。