点对点协议PPP是目前使用最广泛的数据链路层协议。

1.PPP协议的特点:

**我们知道因特网用户通常需要连接到某个ISP才能接入到因特网,PPP协议就是用计算机和ISP进行通信时所使用的数据链路层协议。

(1)简单:接收方每收到一个帧,就进行CRC检验,如CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。

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

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

(4)多种网络层协议:PPP协议必须能够在同一条物理链路上同时支持多种网络层协议的运行。

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

**PPPoE就是PPP协议能够适应多种链路的一个典型例子。PPPoE是为宽带上网的主机使用的链路层协议,这个协议把PPP帧再封装在以太网帧中。现在,即使是只有一个用户利用的ADSL进行宽带上网(并不和其他人共享到ISP的宽带链路),也是使用PPPoE协议。

(6)差错检测:PPP协必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。

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

(8)最大传送单元: PPP协议必须对每一中类型的点对点链路设置最大传送单元MTU的标准默认值。MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。

(9)网络层地址协商:PPP协议必须提供一种机制使通信的两个网络层(例如,两个IP层)的实体能够通过协商知道或者能够配置彼此的网络层地址。

(10)数据压缩协商:PPP协议必须提供一种方法来协商使用数据压缩算法

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

2.PPP协议的组成

(1)一个将IP数据报封装到串行链路的方法。PPP协议既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。

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

(3)一套网络控制协议NCP,其中的每一个协议支持不同的网络层协议,如IP,OSI的网络层,DECnet以及AppTalk等

3.PPP协议的帧格式:

(1)各字段的意义:

**首部的第一个字段和尾部的第二个字段都是标志字段F,规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110);

**首部中的地址字段A规定为0xFF(即11111111),控制字段C规定为0x03(000000011);

**首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段就是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。

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

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

(2)字节填充

**当PPP使用异步传输时,它把转义符定义为0x7D(即01111101),并使用字节填充

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

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

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

(3)零比特填充

**PPP协议在SONET/SDH链路时,是使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送),在这种情况下,PPP协议采用零比特填充方法

**零比特填充的具体做法是:

在发送端,先扫描整个信息字段,只要发现有5个连续的1,则立即填入一个0。因此,经过这样的令比特填充后的数据,就可以保证在信息字段中不会出现6个连续的1。接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描。每发现5个连续的时,就把这5个连续的1后的一个0删除。

4.PPP协议的工作状态:

**当用户拨号接入ISP后,就建立了一条从用户PC到ISP的物理连接,这时。用户PC向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数,接着还要进行网络层配置,网络控制协议NCP给新接入的用户PC分配一个临时的IP地址,这样,用户PC就成为因特网上一个有IP地址的主机了;

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

**完整过程:

①PPP链路的起始和终止状态永远都是“链路静止”状态,这时在用户PC和ISP的路由器之间并不存在物理层的连接;

②当用户PC通过调制解调器呼叫路由器时(连接按钮),路由器能够检测到调制解调器发出的载波信号,在双方建立了物理连接后,PPP就进入"链路建立"状态,其目的是建立链路层的LCP连接;

③这时LCP开始协商一些配置选项,即发送LCP的配置请求帧,这是个PPP帧,其协议字段设置为LCP对应的代码,而信息字段包含特定的配置请求;

④链路的另一端可以发送以下几种响应中的一种:

**配置确认帧:所有选项都接受;

**配置否认帧:所有选项都理解但不能接受;

**配置拒绝帧:选项有的无法识别或不能接受,需要协商;

⑤协商结束后双方就建立了LCP链路,接着就进入“鉴别”状态,在这一状态,只允许发送LCP协议的分组,鉴别协议的分组以及监测链路质量的分组

**鉴别方式:口令鉴别协议PAP(需要发起通信的一方发送身份标识符合口令);口令握手鉴别协议CHAP(更复杂的鉴别协议);

**鉴别成功,则进入“网络层协议”;鉴别失败,则转到“链路终止”状态;

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

**当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”状态,链路的两个PPP端点可以彼此向对方发送分组;

**数据传输结束后,可以由链路的一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到“链路终止”状态。

2016.6.17 计算机网络复习要点之PPP协议的更多相关文章

  1. 2016.7.7 计算机网络复习要点第四章之网际协议IP

    1.与IP协议配套使用的还有三个协议: **地址解析协议ARP: **网际控制报文协议ICMP: **网际组管理协议IGMP: 2.虚拟互连网络: **没有一种单一的网络能够适应所有用户的需求: ** ...

  2. 2016.6.20 计算机网络复习要点第三章之CSMA/CD协议

    1.最早的以太网是将许多计算机都连接到一根总线上: (1)总线的特点是:当一台计算机发送数据时,总线上的所有计算机都检测到这个数据,这种就是广播通信方式: (2)为了实现在总线上的一对一通信,可以使每 ...

  3. 2016.7.9 计算机网络复习要点第四章之虚拟专用网VPN和网络地址转换NAT

    1.虚拟专用网VPN (1)一个机构内,对于那些仅在本机构内部使用的计算机就可以由本季候自行分配其IP地址,让这些计算机使用仅在本机构有效的IP地址(本地地址),不需要申请全球唯一的IP地址(全球地址 ...

  4. 2016.7.9 计算机网络复习要点第四章之网际控制报文协议ICMP

    1.ICMP允许主机或路由器报告差错情况和提交有关异常情况的报告:为了更有效地转发IP数据报和提高交付成功的机会: 2.ICMP不是高层协议,因为ICMP报文是装在IP数据报中的,作为其中数据部分,所 ...

  5. 2016.7.8 计算机网络复习要点第四章之地址解析协议ARP

    1.地址解析协议ARP:知道一个机器的IP地址,需要找到其相应的硬件地址:ARP协议的用途是为了从网络层使用的IP地址解析出在链路层使用的硬件地址: 2.由于是IP协议使用了ARP协议,因此通常就把A ...

  6. 更新日志(建议升级到2016.12.17) && 更新程序的方法

    更新程序的方法: 1,在控制面板里点击备份当前数据库文件到磁盘,把当天获取的信息从内存写到磁盘/存储卡.2,下载最新版的源码 wget -O "infopi.zip" " ...

  7. OpenGL复习要点II

    [OpenGL复习要点II] 1.视图变换必须出现在模型变换之前. 2.glMatrixMode()参数有三个,GL_MODELVIEW,GL_PROJECTION,GL_TEXTURE. 3.变换顺 ...

  8. 南京邮电大学 JavaA期末复习要点总结

    南京邮电大学 JavaA复习要点: Chap1 入门 1.  Java应用程序开发过程教材P14~P15 Chap 2 基本语法 1.      标识符的命名规则教材P19 字母下划线美元符号开头,除 ...

  9. Murano Weekly Meeting 2016.05.17

    Meeting time: 2016.May.17 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary:   1 ...

随机推荐

  1. 一张图解释Hadoop IPC

    基于hadoop2.6.2.... 一张图Server启动,Client访问..... RPC是IPC的一种,IPC还有另外一种LPC,相关请看参考中的3 使用hadoop ipc步骤: 1.定义RP ...

  2. LUA之string的使用

    --string.len(s)          --返回字符串s的长度 --string.rep(s, n)--返回重复n次字符串s的串,你使用string.rep("a", 2 ...

  3. js矩阵菜单或3D立体预览图片效果

    js矩阵菜单或3D立体预览图片效果 下载地址: http://files.cnblogs.com/elves/js%E7%9F%A9%E9%98%B5%E8%8F%9C%E5%8D%95%E6%88% ...

  4. LA 3401 - Colored Cubes

    解题报告:有n(1<=n<=4)个立方体,每个立方体的每一个面涂有一种颜色,现在要将这些立方体的某些面的颜色重新涂一下,使得这n个立方体旋转到某一种状态下,对应的面的颜色都相同. 这题可以 ...

  5. 从零开始写一个武侠冒险游戏-8-用GPU提升性能(3)

    从零开始写一个武侠冒险游戏-8-用GPU提升性能(3) ----解决因绘制雷达图导致的帧速下降问题 作者:FreeBlues 修订记录 2016.06.23 初稿完成. 2016.08.07 增加对 ...

  6. Java数据库ResultSet转json实现

    现在有很多json相关的Java工具,如json-lib.gson等,它们可以直接把JavaBean转换成json格式. 在开发中,可能会从数据库中获取数据,希望直接转成json数组,中间不通过bea ...

  7. 解决港版A1530 ios8 联通4G 电话打不进无法接通的问题,联通4G开关开启方法

    GF的iPhone5s港版A1530联通4G老是出现无法接通的问题, 根本原因是没有4G开关.港行iPhone却只有3G开关.也就是说,当启动3G时,却搜到4G信号,但是关闭时却只能关闭3G和2G.让 ...

  8. 用几条shell命令快速去重10G数据

    试想一下,如果有10G数据,或者更多:怎么才能够快速地去重呢?你会说将数据导入到数据库(mysql等)进行去重,或者用java写个程序进行去重,或者用Hadoop进行处理.如果是大量的数据要写入数据库 ...

  9. MySQL自带information_schema数据库使用

    MySQL的information_schema数据库是什么,有什么作用? 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库.info ...

  10. iOS 在使用UINavigationController和TabBarController时view的frame

    可能是以前记错了,总认为在ios6上使用了UINavigationController或者TabBarController会因为多了bar而影响子controller的view的frame大小.今天在 ...