精华内容
下载资源
问答
  • PPP 协议工作流程 1、用户拨号接入 ISP 后,就建立了一条从用户个人电脑到 ISP 的物理连接 2、用户pc 向 ISP 发送一系列的链路控制协议 LCP分组(封装成多个 PPP 帧),这些分组及其相应...PPP的工作状态 如上 1、.


    • PPP 协议工作流程
      1、用户拨号接入 ISP 后,就建立了一条从 用户pcISP物理连接
      2、用户pc 向 ISP 发送一系列的 链路控制协议 LCP分组(封装成多个 PPP 帧),这些 分组及其响应 选择了将要使用的一些 PPP 参数,建立 LCP 连接
      3、LCP连接鉴别成功后,进行NCP配置协商,网络控制协议 NCP 给新接入的用户pc 分配一个临时IP,建立 NCP链路,可以开始通信
      4、用户通信完毕,NCP 释放 网络层连接,收回 临时IP。然后 LCP 释放 数据链路层连接。最后释放 物理层连接

    在这里插入图片描述

    • PPP的工作状态
      如上图
      1、PPP 链路的起始和终止状态永远是 “链路禁止” 状态,此状态下(用户个人电脑和ISP的路由器之间不存在物理层的连接)
      用户pc 通过 调制解调器 呼叫路由器(屏幕上鼠标点击一个连接按钮),路由器就能检测到调制解调器发出的 载波信号
      物理层连接建立
      2、建立物理层连接后,PPP 就进入 “链路建立” 状态,用于建立链路层的 LCP 连接
      开始协商一些配置选项,通过发送 LCP 的配置请求帧来完成(这是个 PPP 帧,协议字段置为 LCP 对应的代码,信息字段包含特定的配置请求)
      链路的另一端可以有3种响应
      a. 配置确认帧:所有选项都接受
      b. 配置否认帧:所有选项理解但不接受
      c. 配置拒绝帧:选项有的无法识别或不能接受,需要协商
      3、LCP 协商结束后双方就建立了 LCP 链路,接着就进入鉴别状态
      这一状态下,只能传送特定格式的分组,来确认彼此的身份
      鉴别身份失败,转到“链路终止”状态;鉴别身份成功,进入“网络层协议”
      4、网络层协议状态下
      PPP 链路的两端的网络控制协议 NCP 根据网络层的不同协议互相交换 网络层特定的网络控制分组(现在的路由器能够同时支持多种网络协议)
      如此 PPP协议 两端的网络层可以运行不同的网络层协议,仍能使用同一个 PPP协议进行通信
      5、网络层配置完毕后,链路就进入可进行数据通信的链路打开状态
      链路的两个 PPP端点可以向对方 发送分组
      还可以发送特定LCP分组 检查链路状态
      可以发送特定LCP分组来 结束数据传输

    • 由上可见,
      从设备无链路开始,到先建立物理链路,再建立链路控制协议 LCP 链路,经过鉴别后再建立网络控制协议NCP链路,然后才能交换数据
      PPP 不再是纯粹的 数据链路层 的协议,还包含了 物理层网络层 的内容

    展开全文
  • PPP协议的工作流程及状态

    万次阅读 多人点赞 2016-02-04 14:09:18
    PPP协议的工作流程及状态 1. PPP协议的工作流程 当用户拨号接入ISP后,就建立了一条从用户PC机到ISP的物理连接。 这时用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接。 这些分组及其响应...

    PPP协议的工作流程及状态

    1. PPP协议的工作流程

    • 当用户拨号接入ISP后,就建立了一条从用户PC机到ISP的物理连接。
    • 这时用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接。
    • 这些分组及其响应选择了将要使用的一些PPP参数。
    • 接着还要进行网络层配置,NCP给新接入的用户PC机分配一个临时的IP地址。
    • 这样,用户PC机就成为因特网上的一个有IP地址的主机了。
    • 当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。
    • 接着,LCP释放数据链路层连接。
    • 最后释放的是物理层的连接。
      这里写图片描述

    注:PPP链路的起始和终止状态永远是“链路静止”(Link Dead)状态,这时在PC机和ISP的路由器之间并不存在物理层的连接。

    2. PPP协议的LCP连接

    • 当用户PC机通过调制解调器呼叫路由器时(通常是在屏幕上用鼠标点击一个连接按钮),路由器就能够检测到调制解调器发出的载波信号。在双方建立了物理层连接后,PPP就进入“链路建立”(Link Establish)状态,其目的是建立链路层的LCP连接。
    • 这时,LCP开始协商一些配置选项,即发生LCP的配置请求帧(Configure-Request)。这是一个PPP帧,其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。
    • 链路的另一端可以发送以下响应中的其中一种:
      (1)配置确认帧(Configure-Ack):所有选项都接受。
      (2)配置否认帧(Configure-Nak):所有选项都理解但不能接受。
      (3)配置拒绝帧(Configure-Reject):选项有的不能识别或不能接受,需要协商。
    • LCP配置选项包括链路上的最大帧长、所使用的鉴别协议(authentication protocol)的规约(如果有的化话),以及不使用PPP帧中的地址和控制字段(因为这两个字段的值是固定的,没有任何信息量,可以在PPP帧的首部中省略掉这两个字节)。
    • 协商结束后双方就建立了LCP链路,接着就进入鉴别状态(Authentication),在这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组。若使用口令鉴别协议PAP(Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。系统可运行用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP(Challenge-Handshake Authentication Protocol)。若鉴别身份失败,则转到链路终止状态(Link Dead)。若鉴别成功,则进入网络层协议状态(Network-Layer Protocol)。

    3. PPP协议的NCP连接

    • 在网络层协议状态,PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。这个步骤是非常重要的,因为现在的路由器都能够同时支持多种的网络层协议。
    • 总之,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可以使用同一个PPP协议进行通信。
    • 如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分配IP地址)时就要使用NCP中支持IP的协议——IP控制协议IPCP(IP Control Protocol)。IPCP分组也封装成PPP帧(其中的协议字段为0x8021)在PPP链路中传送。在低速链路上运行时,双方还可以协商使用压缩的TCP和IP首部,以减少在链路上传送的比特数。
    • 当网络层配置完毕后,链路就进入可进行数据通信的链路打开状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可发送回送请求LCP分组(Echo-Request)和回送回答LCP分组(Echo-Reply),以检查链路的状态。
    • 数据传输结束后,可以由链路的一端发出终止请求LCP分组(Terminate-Request)请求终止链路连接,在收到对方发来的终止确认LCP分组(Terminate-Ack)后,转到链路终止状态。
    • 如果链路出现故障,也会从链路打开状态转到链路终止状态。
    • 当调制解调器的载波停止后,则回到链路静止状态。

    注:从设备之间无链路开始,到先建立物理链路,再建立LCP链路。经过鉴别后再建立NCP链路,然后才能交换数据。由此可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。


    参考文献:
    [1]《计算机网络(第5版)》谢希仁——第三章 3.2

    展开全文
  • 在介绍PPP协议之前,我们先简单介绍下数据链路层信道的类型,以及数据链路层协议的三个基本问题。数据链路层使用的信道主要有以下两种类型:点点信道 这种信道使用一一的点点通信方式。广播信道这种信道使用一...

    在介绍PPP协议之前,我们先简单介绍下数据链路层信道的类型,以及数据链路层协议的三个基本问题。

    数据链路层使用的信道主要有以下两种类型:

    点对点信道 这种信道使用一对一的点对点通信方式。广播信道这种信道使用一对多的广播通信方式。广播信道上连接的主机很多,使用专用的共享信道协议来协调这些主机的数据发送。使用点对点信道的数据链路层

    概念:

    链路(物理链路):一个节点到相邻节点的一段物理线路数据链路(逻辑链路):物理线路加上必要的通信协议(用于控制数据的传输)点对点信道的数据链路层的协议数据单元--帧

    数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。网络层中的协议数据单元则是IP数据报(或称为数据报,分组,包)。如下图所示:

    数据链路层在通信时的主要步骤如下:

    结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。结点A把封装好的帧发送给结点B的数据链路层。若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则丢弃这个帧。

    由于在OSI模型中,各层之间是相互独立的,下层单元向上层单元提供接口函数。因此,我们并不需要去考虑数据链路层如何将数据下交给物理层转换成比特数据流,以及如何在物理层传输的细节。

    数据链路层的协议有很多种,但是有三个基本问题是共同的:

    帧封装透明传输差错检测

    帧封装,简单的说,就是将网络层传下来的IP数据报进一步打包封装成适合在数据链路层传输的数据帧。大致如下图所示:

    我们使用帧定界符来表示一帧数据的开始和结束(上图的帧开始和帧结束)

    帧定界符的作用主要是当数据在传输到一半的时候出现差错(例如物理链路断开),数据链路层的接收端可以依次判断接收到的数据是否是一个完整的帧。

    透明传输

    上述的帧定界符,一般使用专门指明的控制字符。因此,我们需要保证传输的有效数据中不能出现已经被指明为帧定界符的控制字符。否则,就会出现有效数据被误识别为帧定界符而导致数据丢失的情况。

    举个例子:

    图中,我们采用字符SOH和字符EOT作为帧开始符合帧结束符。但是,如果我们要传输的有效字符中出现了字符EOT(如上图所示),那么,我们传输的数据在传输到一半的时候就会被接收端误认为一帧数据已经结束,而后半部分的帧数据就会被丢弃。

    那么,假如说我们传输的数据中有被指定为帧定界符的控制字符,如何处理上述可能会出现的问题呢?

    在数据链路层中,解决这个问题的方法就是字节填充(字符填充)。

    字节填充,就是说当我们需要传输控制字符时,我们可以在控制字符前面插入一个转义字符“ESC”,而在接收端将数据送往网络层前删除此转义字符。若是转义字符也出现在数据当中,解决方法仍然是在转义字符中插入转义字符(如下图)

    差错检测

    在数据链路层中,广泛使用的是循环冗余检验CRC。

    CRC校验的具体实现方法就不在这里介绍了。这里说下另外需要注意的一些问题:

    我们只能认为,采用CRC校验后,数据链路层接收端接收到的数据均无差错,但这并不能说明传输没有出现差错。因为这种校验方法并不能预防帧重复,帧丢失,帧失序的情况。

    在OSI标准里,数据链路层应该向网络层提供可靠的传输服务,因此在某些数据链路层的传输协议中会要求增加帧编号,确认和重传机制(如高级数据链路控制HDLC)。但是,在如今通信线路质量可以得到有效保证的前提下,大部分被广泛使用的数据链路层协议都不再要求向上提供可靠的传输服务了。这个任务自然而然地交给了上层协议(如运输层TCP协议)来完成。目前,对于点对点的链路,被广泛使用的是相对简单得多的点对点协议PPP。

    PPP协议的特点

    简单 我们上述提到的,现数据链路层协议不要求向上提供可靠的传输服务,因此实际数据链路层的功能首要要求就是简单:接收方接收到一个数据帧,进行CRC检测,正确则收下这个帧,反之则丢弃这个帧。简单的设计可以使得不同产商对协议的不同实现的互操作性提高了。封装成帧 PPP协议必须规定特殊的字符作为帧定界符,以便接收端可以从收到的比特流中准确找出帧的开始和结束位置透明性 PPP必须保证数据传输的透明性(具体见上文透明传输的相关内容)多种网络层协议 PPP协议必须能够在同一条物理链路上同时支持多种网络层协议的运行。多种类型链路 PPP协议还必须能够在多种类型的链路上运行。差错检测 PPP协议必须能够对接收端收到的帧进行检测,并丢弃有差错的帧。检测连接状态 PPP协议必须具有一种机制能够及时自动检测出链路是否处于正常工作状态。最大传送单元 PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。若高层协议发送的分组过长并超过MTU的值,PPP则丢弃这样的帧,并返回差错。MTU指的是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。网络层地址协商 PPP协议必须提供一种机制使通信的两个网络层(例如,两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。这对拨号连接的链路特别重要,因为仅仅在链路层建立了连接而不知道对方网络层地址时,则还不能够保证网络层能够传送分组。数据压缩协商 PPP协议必须提供一种方法来协商使用数据压缩算法。但PPP协议并不要求将数据压缩算法进行标准化。PPP协议不需要的功能

    纠错 PPP协议是不可靠传输协议流量控制在TCP/IP协议族中,端到端的流量控制由TCP负责。序号多点线路PPP协议不知道多点线路(即一个主站轮流和链路上的多个从站进行通信),只支持点对点的链路通信半双工或单工链路 PPP协议只支持全双工链路

    PPP协议的组成

    PPP协议主要由三部分组成:

    一个将IP数据报封装到串行链路的方法。一个用来建立、配置和测试数据链路连接的链路控制协议LCP。一套网络控制协议NCP,能够支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。

    PPP协议的帧格式

    如图所示,PPP协议的帧格式主要由三部分组成:首部,信息字段,尾部。

    首部

    首部字段由五个字节构成。

    标志字段F,占一个字节,规定为0x7E,表示一个帧的开始或结束。此标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。若出现连续两个标志字段,则表示这是一个空帧,应当丢弃。地址字段A,占一个字节,规定为0xFF控制字段C,占一个字节,规定为0x03协议字段,表示信息字段数据所使用的协议。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。

    信息字段

    信息字段的长度是可变的,但不超过1500个字节。

    尾部

    尾部由三个字节构成

    使用CRC的帧检验序列FCS,占两个字节标志字段F,占一个字节(首部标志字段)

    字节填充

    上述介绍过此概念,这里不再赘述。

    零比特填充

    在PPP协议中,除了使用字节填充的方法来保证透明传输外,还有一种零比特填充同样也可以保证透明传输。零比特填充的具体做法是:在发送端,先扫描整个信息字段,只要发现连续5个1,则立即插入一个0。经过这种零比特填充后的数据,可以保证在信息字段不会出现6个连续的1。接收端再收到一个帧时,先找到标志位F确定帧的边界,接着就对帧的信息字段进行扫描,当发现连续5个1时,就把5个连续1后面的0删除,还原成原来的数据比特流。这样就可以保证透明传输。大致过程如下:

    PPP协议的工作状态

    上面我们介绍了PPP协议帧格式,下面我们来简单讲讲PPP链路的建立过程。

    一开始,PPP链路处于“链路静止”状态。当用户PC机通过调制解调器呼叫路由器时,路由器检测到调制解调器发出来的载波信号。双方建立了物理层连接。PPP链路进入了“链路建立”的状态。

    接着,LCP开始协商一些配置选项,即发送LCP的配置请求帧。这个LCP配置请求帧是一个PPP帧,其协议字段置为LCP对应的代码,信息字段包含特定的配置请求。链路另一端可以发送以下几种响应中的一种:

    配置确认帧:所有选项都能接受配置否认帧:所有选项都理解但不接受配置拒绝帧:选项有的无法识别或不能接受,需要协商

    LCP协商配置后,双方就建立了LCP链路。接着,就开始进入了“鉴别”状态。在这一状态,只允许传送LCP协议的分组,鉴别协议的分组以及监测链路质量的分组。若使用口令鉴别协议PAP,则需要通信发起的一方发送身份标识符和口令(系统支持用于多次重试)。如果需要更高的安全性,可以使用更加复杂的口令握手鉴别协议CHAP。若鉴别身份失败,则进入“链路终止”状态。若鉴别成功,则进入“网络层协议”状态。

    在“网络层协议”状态,PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。

    当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可以发送回送请求LCP分组和回送应答LCP分组,以检查链路的状态。

    数据传输结束后,可以由链路的一端发出终止请求LCP分组,用于请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到“链路终止”状态。若链路出现故障,或调制解调器的载波停止后,链路状态都会从“链路打开”转到“链路终止”状态。

    展开全文
  • 浅谈PPP协议

    2021-06-04 23:25:35
    对于点点的链路,简单得多的点协议PPP(Point-to-Point Protocol)则是目前使用得最广泛的数据链路层协议。 ​  PPP(Point-to-Point Protocol),链路层协议PPP是为了在点点物理链路(例如RS232串口链路

    ​  在通信线路质量较差的年代,在数据链路层使用可靠传输协议曾经是一种好办法。因此,能实现可靠传输的高级数据链路控制HDLC(High-level Data Link Control)就成为当时比较流行的数据链路层协议。但现在HDLC已经很少使用了。对于点对点的链路,简单得多的点对点协议PPP(Point-to-Point Protocol)则是目前使用得最广泛的数据链路层协议

      PPP是为了在点对点物理链路(例如RS232串口链路、电话ISDN线路等)上传输OSI模型中的网络层报文而设计的,它改进了之前的一个点对点协议-SLIP协议-----只能同时运行一个网络协议、无容错控制、无授权等许多缺陷,PPP是现在最流行的点对点链路控制协议。这种连接提供了同时的双向的全双工操作,并且假定数据包是按顺序投递的。PPP连接提供了一种广泛的解决办法,方便地将多种多样不同的值作为最大接收单元的值。

    1.1、PPP协议的特点

      我们知道,互联网用户通常都要连接到某个ISP才能接入互联网。PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议(图1)。

    在这里插入图片描述

    ​  ​  ​  ​  ​  ​  图1 用户到ISP的链路使用PPP协议

      PPP协议是IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议在1994年已成为互联网的正式标准[RFC 1661]。

    ​1、PPP协议应满足的要求

    IETF认为,在设计PPP协议时必须考虑一下多方面的需求[RFC 1547]:

    ​  (1)​ 简单​ IETF在设计互联网体系结构时把其中最复杂的部分放在TCP协议中,而网际协议IP则相对比较简单,它提供的是不可靠的数据报服务。在这种情况下,数据链路层没有必要提供比IP协议更多的功能。因此,对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。IETF把“简单”作为首要的要求

      简单的设计还可以使用协议在实现时不容易出错,从而使不同厂商再协议的不同是线上的互操作性提高了。我们知道,协议标准化的一个主要目的就是提高协议的互操作性。

      总之,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如CRC检验正确,就收下这个帧;反之,就丢弃这个帧其他什么也不做

      (2)​ 封装成帧​ PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确地找出帧的开始和结束位置。

    ​​  (3) 透明性​ PPP协议必须保证数据传输的透明性。这就是说,如果数据中碰巧出现了和帧定界符一样的比特组合时,就要采取有效的措施来解决这个问题(一般采用字符填充或转义字符)。

      (4) 多种网络层协议​ PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上所运行的各种网络层协议。

    ​  (5)​ 多种类型链路​ 除了要支持多种网络层的协议外,PPP还必须能够在多种类型的链路上运行。例如,串行的(一次只能发送一个比特)或并行的(一次并行地发送多个比特),同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静态的)点对点链路。

      这里特别要提到的是在1999年公布的在以太网上运行的PPP,即PPP over Ethernet,简称为PPPoE[RFC 2516],这是PPP协议能够适应多种类型链路的一个典型例子。PPPoE是为带宽上网的主机使用的链路层协议。这个协议把PPP帧再封装在以太网帧中(当然还要增加一些能够识别各用户的功能)。带宽上网时由于数据传输率较高,因此可以让多个连接在以太网上的用户共享一条到ISP的带宽链路。现在,即使是只有一个用户利用ADSL(非对称数字用户线路)进行带宽上网(并不和其他人共享到ISP的带宽链路),也是使用PPPoE协议。

      (6)​ 差错检测​(error detection)   PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。若在数据链路层不进行差错检测,那么已出现差错的无用帧就还要在网络中继续向前转发,因而会白白浪费许多的网络资源。

      (7)​ 检测连接状态​ PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。当出现故障的链路隔了一段时间后又重新恢复正常工作时,就特别需要有这种及时检测功能。

    ​  (8)​ 最大传送单元​ PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值(注:MTU的标准默认值是1500字节。在RFC 1661中,MTU叫做最大接受单元MRU[Maximum Receive Unit])。这样做是为了促进各种实现之间的互操作性。如果高层协议发送的分组过长超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度

      (9)​ 网络地址协商​ PPP协议必须提供一种机制使通信的两个网络层(例如,两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址协商的算法应尽可能简单,并且能够在所有情况下得出协商的结果。这对拨号连接的链路特别重要,因为如果仅仅在链路层建立了连接而不知道对方网络层地址,则还不能保证网络层可以传送分组。

      (10) ​ 数据压缩协商​ PPP协议必须提供一种方法来协商使用数据压缩算法。但PPP协议并不要求将数据进行标准化。

    ​  在TCP/IP协议族中,可靠传输由运输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站进行通道),而只支持点对点的链路通信。此外,PPP协议只支持全双工链路

    ​2、PPP协议的组成

    PPP协议有三种组成部分:

      (1) 一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。PPP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制

      (2) 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。通用的双方可协商一些选项。在RFC 1661中定义了11种类型的LCP分组。

      (3) 一套网络控制协议NCP(Network Control Protocol)(注:TCP的早期版本也叫做NCP,但它和这里所讨论的NCP没有关系),其中每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。

      (4) 有一套认证协议 最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。

    1.2、 PPP协议的帧格式

      PPP协议的帧格式与HDLC相似,不同的是PPP是面向字符,HDLC是面向位的PPP属于广域网范畴,MAC是局域网范畴,按实际情况和环境就选用不同的协议,PPP支持的网络结构只能是点对点,MAC支持多点对多点。 这类广域网协议,其帧的结构与以太网的完全不同,当然,PPPOE除外,因为PPPOE是基于以太网上的,而其它的如PPP,FR,X.25等却并不是。 PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等

    ​1、各字段的意义

    ​  PPP的帧格式如图2所示。PPP帧的首部和尾部分别为四个字段和两个字段

      首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),规定为0x7E(符号"0x"表示它后面的字符用十六进制表示。十六进制的7E的二进制表示是01111110)。标志字段表示一个帧的开始或结束。因此标志字段就是PPP帧的定界符。连续两个帧之间只需要用一个标志字段。如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃

    在这里插入图片描述

    ​  ​  ​  ​  ​  ​  ​  ​  ​  图2 PPP帧的格式

    ​  首部中的地址字段A规定为0xFF(即 11111111),控制字段C规定为0x03(即 00000011).最初曾考虑以后再对这两个字段的值进行其他定义,但至今也没有给出。可见这两个字段实际上并没有携带PPP帧的信息

      PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。若为0xC023,则信息字段是安全性认证PAP。若为0xC025,则信息字段是链接质量报告LQR(Link Quality Report)。若为0xC223,则信息字段是质询握手身份验证协议CHAP(Challenge Handshake Authentication Protocol)

    ​  信息字段的长度是可变的,不超过1500字节

    ​  尾部的第一个字段(2字节)是使用CRC的帧检验序列FCS

    ​2、字节填充

      当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采用一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。

      当PPP使用异步传输时,它把转义符定义为0x7D(即 01111101),并使用字节填充,RFC 1662规定了如下所述的填充方法:

    ​  (1)、把信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)

    ​  (2)、若信息字段出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成为2字节序列(0x7D,0x5D)

      (3)、若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字节的编码加以改变。例如,出现0x03(在控制字符中是"传输结束"ETX)就要把它转变为2字节序列(0x7D,0x23)

      由于在发送端进行了字节填充,因此在链路上传送的信息字节就超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。

    ​3、零比特填充

      PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传递)。在这种环境下,PPP协议采用零比特填充方法来实现透明传输。

      零比特填充的具体做法是:在发送端,先扫描整个信息字段(通常用硬件实现,但也可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入0。因此经过这种零比特填充后的数据,就可以保证信息字段中不会出现6个连续1。接收端在收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除,以还原成原来的信息比特流(图3)。这样就保证了透明传输:在所传送的数据比特流中可以传送任意组合的比特流,而不会引起对帧边界的错误判断。

    在这里插入图片描述

    ​  ​  ​  ​  ​  ​  图3 零比特的填充与删除

    1.3、PPP协议的工作状态

      上面我们通过PPP帧的格式讨论了PPP帧是怎样组成的。但PPP链路一开始是怎样被初始化的?当用户拨号接入ISP后,就建立一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配了一个临时的IP地址。这样,用户个人电脑就成为互联网上一个有IP地址的主机了。

      当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。

      上述过程可用图4的状态图来描述。

    ​  PPP链路的起始和终止状态永远是图4中的"链路静止"(Link Dead)状态,这时在用户个人电脑和ISP的路由器之间并不存在物理层的连接。

      当用户个人电脑通过调制解调器呼叫路由器时(通常在屏幕上用鼠标点击一个连接按钮),路由器就能够检测到调制解调器发出的载波信号。在双方建立了物理层连接后,PPP就进入"链路建立"(Link Establish)状态,其目的是建立链路层的LCP连接。

      这时LCP开始协商一些配置选项,即发送LCP的配置请求帧(Configure-Request)。这是个PPP帧,其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。链路的另一端可以发送以下几种响应中的一种:

    (1)​ 配置确认帧 (Configure-Ack) 所有选项都接受

    (2)​ 配置否认帧 (Configure-Nak) 所有选项都理解但不能接受

    (3)​ 配置拒绝帧​ (Configure-Reject) 选项有的无法识别或不能接受,需要协商。

    在这里插入图片描述

    ​  ​  ​  ​  ​  ​  ​  图4 PPP协议的状态图

    ​  LCP配置选项包括链路上的最大帧长,所使用的鉴别协议(authernetication protocol)的规约(如果有的话),以及不使用PPP帧中的地址和控制字段(因为这两个字段的值都是固定的,没有任何信息量,可以在PPP帧的首部中省略这两个字节​)。

    ​  协商结束后双方就建立了LCP链路,接着就进入"鉴别"(Authenticate)状态。在这一状态,只允许传送LCP协议的分组、鉴别的分组以及检测链路质量的分组。若使用口令鉴别协议PAP(Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。系统可允许用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP(Challenge-Handshake Authentication Protocol)。若鉴别身份失败,则转到"链路终止"(Link Terminate)状态。若鉴别成功,则进入"网络层协议"(Network-Layer Protocol)状态。

      在"网络层协议"状态,PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。这个步骤是很重要的,因为现在的路由器能够同时支持多种网络层协议。总之,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可使用一个PPP协议进行通道

    ​  如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分配IP地址)时就要使用NCP中支持IP的协议--------IP控制协议IPCP(IP Control Protocol)。IPCP分组也封装成PPP帧(其中的协议字段为0x8021)在PPP链路上发送的比特数。

    ​  当网络配置完毕后,链路就进入可进行数据通信的"链路打开"(Link Open)状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可以发送回送请求LCP分组(Echo-Request)和回送回答LCP分组(Echo-Reply),以检查链路状态。

      数据传输结束后,可以由链路的一端发出终止请求LCP分组(Terminate-Request)请求终止链路连接,在收到对方发来的终止确认LCP分组(Terminate-Ack)后,转到"链路终止"状态。如果链路出现故障,也会从"链路打开"状态转到"链路终止"状态。当调制解调器的载波停止后,则回到"链路静止"状态。

      图4右方的灰色框给出了对PPP协议的几个状态的说明。从设备之间无连接开始,到先建立物理链路,再建立链路控制协议LCP链路。经过鉴别后再建立网络控制协议NCP链路,然后才能交换数据。由此可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
      
      
      
      
    The quieter you become, the more you are able to hear.

    展开全文
  • PPP协议详解

    万次阅读 多人点赞 2021-01-26 14:20:11
    协议(Point-to-Point Protocol,PPP)提供了一种通过点到点链路传输多协议数据报的标准方法。PPP由三个主要部分组成: 封装多协议数据报的方法。 一种链路控制协议(Link Control Protocol ,LCP),用于...
  • 本文详细介绍PPP协议
  • PPP 协议的帧格式PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。标志字段F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的7E的二进制表示是 01111110)。地址字段A只置为0xFF。地址字段实际上并不...
  • PPP协议(Point-to-Point Protocol)提供了在串行点点链路上传输数据报的方法,支持异步8位数据及位导向的同步连接(如ISDN)。它提供了一种管理两点间会话的有效方法,正在取代SLIP(Serial Line Interface Protocol)...
  • PPP协议基础与工作流程

    千次阅读 2020-12-15 13:43:09
    PPP是点到点链路上承载网络层数据报文的一种链路层协议,如路由器中的Serial接口链路缺省运行的协议就是PPP,当然能够允许PPP的远不止Serial这一种端口,其他例如Dialer,虚拟模板接口等都可以运行(主要是在PPPOE中...
  • PPP协议

    千次阅读 2021-12-04 22:44:04
    PPP协议的基本概念: PPP是Point-to-Point Protocol的简称,中文翻译为点到点协议。与以太网协议一样,PPP也是一个数据链路层协议。以太网协议定义了以太帧的格式,PPP协议也定义了自己的帧格式,这种格式的帧称为...
  • PPP协议 & HDLC协议

    千次阅读 2020-04-28 16:52:56
    广域网 PPP协议点协议PPP是目前使用最广泛的数据链路层协议。用户使用拨号电话接入因特网时一般都使用PPP协议 。...PPP协议状态图 PPP协议的帧格式 HDLC协议 HDLC的帧格式 PPP协议&HDLC协议 ...
  • 点信道及PPP协议

    2019-03-20 09:02:33
    点信道 点点信道使用一一的点点通信方式。 在这里我们先明确一下“链路“、”数据链路"和“帧”。 链路:从一个结点到相邻结点的一段物理路线(有线或无线),而中间没有任何其他的交换结点。 数据链路:...
  • PPP协议和HDLC协议

    2020-08-03 15:08:11
    PPP协议和HDLC协议 1.广域网 2.PPP协议的特点 3.PPP协议应满足的要求 ...6.PPP协议状态图 7.PPP协议的帧格式 8.HDLC协议 9.HDLC的站 10.HDLC的帧格式 11.PPP协议和HDLC协议对比 12.总结 ...
  • ppp协议格式

    千次阅读 2018-12-31 22:33:04
    具体协议格式:https://wenku.baidu.com/view/9cfeb9d348649b6648d7c1c708a1284ac850052f.html 具体协议格式:https://wenku.baidu.com/view/ea065196dd88d0d233d46aea.html?sxts=1546442796740 pppd源码分析:...
  • 高级数据链路控制(High-levelData Link Control, HDLC)协议是ISO制定的面向比特(记住PPP协议是面向字节的)的数据链路层协议,它和PPP协议是数据链路层重要的协议。 1、数据操作方式 1、正常响应方式:这是一种非...
  • 协议ppp

    千次阅读 2018-12-16 14:10:36
    目录 PPP协议的特点 ...3.ppp协议的工作状态 PPP协议的特点 我们知道,因特网用户通常都要连接到某个ISP才能接入到互联网。PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。 PPP协议是IEI...
  • 数据链路层之PPP协议

    2020-08-01 13:58:14
    PPP协议使用场合 现在全世界使用得最多的数据链路层协议是点点协议(Point to Point Protocol,PPP) 有身份验证的功能用户使用拨号电话线接入因特网时,一般都是使用PPP协议PPP协议应该满足的要求: 简单-...
  • 广域网技术-PPP协议

    2020-09-14 11:41:36
    广域网技术-PPP协议前言PPP协议(一)使用PPP协议的目的(二)PPP协议的优点(三)PPP架构和报文格式1、基本架构2、报文格式3、PPP基本原理PPP的建链过程4、LCP协商过程(1)LCP的报文类型(2)LCP协商的参数(3)...
  • 20、PPP协议

    2021-08-03 16:26:19
    前面我们分了五节的内容,用了很大的篇幅介绍了局域网的数据链路层的知识,在这其中主要是以太网的相关内容。本节开始我们学习广域网的数据链路层协议,主要学习...PPP协议就是用户的计算机和ISP进行通信时所使用的数据
  • PPP协议和PPPoE协议

    万次阅读 多人点赞 2019-02-16 16:02:12
    以前没有关注过这两个协议,因为我一直认为PPP协议和PPPoE协议属于底层协议。但是在一次抓包时候发现在校园网内的数据包都带有PPP协议层,因此去研究了一下。 1 PPP协议介绍 PPP 点点协议(Point to Point ...
  • 第二章 PPP协议 2.1 概述 2.2 PPP协议流程 2.3 PPP帧格式 2.4 LCP 2.5 IPCP 2.6 认证协议PAP 2.7 认证协议CHAP 2.8 PPPoE 参考文档 网络协议与分析(第二版)——寇晓蕤,罗军勇,蔡延荣编著 参考文档 计算机网络自...
  • 文章目录ppp-2.4.9 源码分析PPP协议工作流程ppp-2.4.9 源码分析全局变量和结构体说明第一阶段 初始化第二阶段 开始链接第三阶段 建立PPP链路第四阶段:链路终止参考资料 PPP协议工作流程 当用户拨号接入ISP后,就...
  • 思科路由器PPP协议

    千次阅读 2019-07-26 17:27:00
    “LCP Open”与“Open: IPCP”说明PPP协商的两个重要阶段——LCP与NCP(IPCP)已协商成功,LCP和NCP(IPCP)这两个子层已处于“open(打开)”状态(具体协商过程和原理请参考本站的PPP协议原理的文档)。 注:路由器...
  • 3.7PPP协议和HDLC协议

    2021-08-08 15:38:34
    PPP协议和HDLC协议 广域网 广域网(WAN):通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能够连接多个城市、国家或者跨越几个洲,形成国际性的远程网络 广域网的通信子网主要使用分组交换技术。广域...
  • 一、轮询访问介质访问控制 (一)介质访问控制 信道划分介质访问控制(MAC Multiple Access Control )协议: ...轮询访问MAC协议/轮流协议/轮转访问MAC协议:既要不产生冲突,又要发送时占全部带宽。 ①、轮询
  • 一、HDLC 协议、 二、HDLC 站、 三、HDLC 帧格式、 四、HDLC 帧类型、 五、PPP 协议 与 HDLC 协议 对比、

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,646
精华内容 4,658
关键字:

对ppp协议状态图