点对点协议PPP

点对点协议PPP

​ 通信线路质量较差的年代,数据链路层使用能实现可靠传输的高级数据链路控制HDLC。现在对于点对点链路,则使用更简单的PPP协议。(用户计算级和ISP通信时所使用的链路层协议就是PPP)

一、特点
1、PPP协议应满足的需求

(1)简单: IETF 在设计互联网体系结构时把其中最复杂的部分放在 TCP协议中,而网际协议IP则相对比较简单,它提供的是不可靠的数据报服务。所以数据链路层没有必要提供比IP协议更多的功能。因此,对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。简单的设计还可使协议在实现时不容易出错,从而使不同厂商在协议的不同实现上的互操作性提高了。我们知道,协议标准化的一个主要目的就是提高协议的互操作性。总之,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行 CRC 检验。如CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。

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

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

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

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

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

(7)检测连接状态: PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。

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

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

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

PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站进行通信),而只支持点对点的链路通信。此外,PPP协议只支持全双工链路。

2、PPP协议的组成

(1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路也支持面向比特的同步链路。

(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP

(3)一套网络控制协议NCP

二、帧格式
1、各字段的意义

在这里插入图片描述

首部
  • F(Flag):标志字段,规定为0x7E(01111110),表示一个帧的开始或结束,也就是帧定界符。

  • A(Address):地址字段,规定为0xFF。

  • C(Control):控制字段,规定为0x03

    这两个字段实际上并没有携带PPP帧的信息,但以后可能会给出其他定义。

  • 协议:

    0x0021:信息部分就是IP数据报

    0xC021:信息部分是PPP链路控制协议LCP的数据

    0x8021:信息部分是网络层的控制数据

信息部分

​ 该部分长度可变,受MTU控制,例如以太网规定不超过1500字节。

尾部

​ FCS:使用CRC的帧检测序列。

2、字节填充

异步传输是面向字符的传输,而同步传输是面向比特的传输。

​ 异步传输时,如果信息部分出现与标志字段一样的数据,我们就应该想办法使其“透明”。具体方法就是使用转义字符0x7D。

(1)每出现一个0x7E就转变为3个字节序列的(0x7D,0x5E);

(2)如果出现0x7D(即出现了和转义字符一样的比特组合),则把0x7D转变为3个字节序列(0x7D,0x5D);

(3)如果出现ASCII码的控制字符,则在其前加上0x7D。

3、零比特填充

​ 同步传输时,不用像字节填充那样以字节为单位,而是以比特为单位。

​ 在发送端扫描整个信息部分,如果出现5个连续的1,就在其后添加一个0,这样就不会出现连续的6个1。

​ 在接收端收到一个帧时,先找到标志字段F以确定帧的边界,然后再对其中的比特流进行扫描,发现5个连续的1时就把其后的0删掉。这样就保证了透明传输。

三、工作状态

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

​ 可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值