ppp 计算机网络

2014-12-20 21:50:09 c602273091 阅读数 1140

            在数据链路层,除了停等协议之外。还有比较难懂的就是PPP协议(点对点协议)。在这里特别总结一下PPP协议。


PPP协议作用:PPP协议可应用于连接认证,传输封装和压缩。目前应用于很多类型的物理网络,比如串行电缆,电话线等。

PPP协议的需求:framing;bit transparency;error detection;connection liveness;network layer address negotiation

PPP帧的格式:

这里就设计了帧的格式,协议包括:LCP、IP、IPCP等等。没有标号的帧:connectionless service。

上面的protocol对应如下:

NCP:获取IP地址,在多层网络链路上封装和协商。在IP协议里面,使用IPCP来作为NCP来得到IP地址,子网掩码和DNS地址。

LCP协议进行确认是否需要认证;PAP、CHAP就是进行认证的协议。


特别注意:

PPP协议允许在同一个通信链路上有多个链路。



2018-06-01 21:39:28 rdgfdd 阅读数 1388

Internet中主要的数据链路层协议:

  • SLIP (Serial Line IP)
    — 串行线路的Internet数据链路层协议,面向字符,RFC1055

  • PPP ( Point-to-Point Protocol)
    — 点-点协议,面向字节,RFC1661

  • 通信线路质量较差的年代:HDLC(高级数据链路控制)

1,PPP 协议的特点

PPP协议是IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议在1994年就已称为因特网的正式标准。

用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。

PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。

用户到 ISP 的链路使用 PPP 协议 :
这里写图片描述

2,PPP 协议应满足的需求

  • 简单——这是首要的要求

  • 封装成帧 必须规定特殊的字符作为帧定界符。

  • 透明性 多种网络层协议 必须能够在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。

  • 多种类型链路 能够在多种链路上运行

  • 差错检测 必须能够对接收方收到的帧进行检测,并立即丢弃有差错的帧。

  • 检测连接状态 能够及时(不超过几分钟)检测出一条链路是处于正常工作状态,还是已经出了故障。

  • 最大传送单元 必须对每一种类型的点对点链路设置MTU的标准默认值。

  • 网络层地址协商

  • 数据压缩协商

3,PPP 协议不需要的功能

  • 纠错 ppp协议是不可靠传输协议

  • 流量控制

  • 序号

  • 多点线路

  • 半双工或单工链路

4,PPP协议的组成

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

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

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

5,PPP协议的帧格式

PPP的帧格式和HDLC的相似,PPP不是面向比特而是面向字节的,因而所有的PPP帧的长度都是整数个字节。

1)各字段的含义
  • 标志(flag):01111110
  • 地址(address):为固定值 “FF”(11111111),点-点协议,地址无意义
  • 控制(control):为固定值“03”(00000011),无编号
  • 数据(信息)字段:长度可变,不超过1500字节
  • 协议字段定义参见RFC1700,它标识出网络层协议数据域的类型:

    • 0021:信息字段内容为IP数据报
    • C021:信息字段内容为PPP链路控制数据
    • 8021:信息字段内容为网络控制数据
2)字节填充

当PPP使用异步传输时,它把转义符定义为0x7E,并使用字节填充。

字节填充规则:

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

若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。

若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。

例:
一个PPP帧的数据部分(用十六进制写出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。试问真正的数据是什么(用十六进制写出)?

答案: 7E FE 27 7D 7D 65 7E

3)零比特填充

当PPP用在同步传输链路(SONET/SDH)时,采用硬件来完成零比特填充(和HDLC的做法一样)。

零比特填充规则:

a,数据中某一段比特组合恰好出现和 F 字段一样的情况

b,发送端在 5 个连 1 之后填入 0 比特再发送出去

c,在接收端将 5 个连 1 之后的 0 比特删除,恢复原样

这里写图片描述

6,PPP协议的工作状态

PPP 协议的三个工作阶段:

1)LCP协商PPP参数,建立数据连接

2)用户验证,客户端会将自己的身份发送给远端的接入服务器。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。

3)调用网络层协议 ,认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。

PPP 协议的状态图 :

这里写图片描述

6,PPP协议的应用

家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。

目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。

2020-03-01 16:42:07 ITlanyue 阅读数 442

一、基本特点

1.PPP协议是计算机网络体系中第二层(数据链路层)的协议

2.PPP帧格式是以HDLC帧格式为基础,做了很少的改动(区别:PPP是面向字符的,而HDLC是面向位的)

3.PPP协议使用了LCP协议和NCP协议。用LCP(链路控制协议)来建立、设定和测试数据链路连接。用NCP(网络控制协议)给不同的网络层协议建立连接以及配置它们。

二、必备特点与功能

1.简单

2.封装成帧

3.差错控制

5.流量控制

6.接入控制 ===> 实际上就是LCP链路控制协议

7.透明性 ===>发送方接受什么数据,接收方就接收什么数据

8.多种网络层协议 ===> 支持多种上层协议

9.多种类型的链路 ===> 可以支持串行、并行等等链路层协议

10.检测连接状态

11.最大传送单元

12.网络层地址协商

13.数据压缩协商

三、不需要的功能

.纠错 ===> 能够查错就行,不必具备纠错(改错)的功能

流量控制 ===> 因为是两点间的通信,所以不需要进行流量控制来实现负载均衡

·序号

·多点线路

·半双工或单工链路 ===> PPP协议是全双工

四、PPP协议的组成

1.将IP数据报封装到串行链路的方法

2.链路控制协议LCP(Link Control Protocol)

3.网络控制协议 NCP(Network Control Protocol)

五、PPP帧格式

=======================================================================================================

帧头、帧尾 ===> 各占1byte; 这两字段都是7E,也就是说7E是PPP帧的开始与结尾的标志

=======================================================================================================

地址字段(A) ===> 1byte; 该字段尚未被用到(点到点通信,不需要寻址过程),固定为 1111 1111

=======================================================================================================

控制字段(C) ===> 1byte; 该字段尚未被用到,为后续准备,固定值为 0000 0011

=======================================================================================================

协议字段 ===> 2byte; 指明该帧封装数据类型

协议字段由两个字节组成。字段中第八位必须是0,最后一位必须为1。若不符合这些规则,则被视为带有不被承认的协议

在范围“0x0***“到“0x3***“内的协议字段,标志着特殊数据包的网络层协议

在范围“0x8***·到“0xb***”内的协议字段,标志着数据包属于网络控制协议(NCP)

在范围“0x4***“到“0x7***“内的协议字段,用于没有相关NCP的低通信量协议

在范围“0xc***“到“0xf***”内的协议字段,标志着使用链路层控制协议(LCP)的包

  • 0xC021链路控制协议LCP(Link control protocol)
  • 0xC023密码认证协议PAP(Password authentication protocol)
  • 0xC025链路品质报告Link Quality Report
  • 0xC223挑战握手验证协议CHAP(Challenge handshake authentication protocol)
  • 0x8021IP控制协议IPCP(Internet protocol control protocol)
  • 0x0021 Internet protocol(IP)
  • 0x0001填料协议(Padding Protocol)
  • 0x0003~0x001F reserved(transparency inefficient)保留(透明度效率低的)
  • 0x007Dreserved(Control Escape)保留(控制逃逸)
  • 0x00CF reserved(PPP NLPID)保留(PPP NLPID)
  • 0x00FF reserved(compression inefficient)保留(压缩效率低的)
  • 0x8001~0x801F未使用
  • 0x807D未使用
  • 0x80CF未使用
  • 0X8OFF未使用

=======================================================================================================

信息部分 ===> 数据报,长度不固定,不超过1500 byte

=======================================================================================================

FCS ===> 2byte; 使用CRC的帧检验序列FCS

=======================================================================================================

六、注意事项

我们知道,PPP协议规定,7E是PPP帧的开始及结尾标记,那么如果数据中出现7E字段,该如何呢?处理方法取决于PPP协议的传输类型——异步传输 VS 同步传输

1.当传输类型是异步传输时

异步传输:按字符传输,单位是字符,速率教慢

将转义符定义为0x7D(即01111101),并使用如下字节填充法:

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

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

(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变

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

2.当传输类型是同步传输时

同步传输:按一连串的比特位连续传输,单位是帧,速率较快

PPP协议用在SONET/SDH链路时,使用同步传输方式;在这种情况下,PPP协议采用零比特填充方法来实现透明传输:

透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的

在发送端,先扫描整个信息字段(通常用硬件实现,但也可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入一个0。接收端在收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除,以还原成原来的信息比特流

六、用途

互联网用户都要连接到某个ISP才能接入到互联网,PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议

2015-03-07 11:08:47 gscienty 阅读数 3780

数据链路层使用的信道主要有以下两种类型:
(1)点对点信道
(2)广播信道

使用点对点信道的数据链路层

首先明确一下“链路”和“数据链路”并不是一回事。
所谓链路,指的是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路除了必须有一条物理线路以外,还必须有一些必要的通信协议来控制这些数据的传输。若把视线这些协议的硬件和软件加到链路上,就构成了数据链路。
点对点信道的数据链路层的协议数据单元为

点对点信道的数据链路层在进行通信时的主要步骤:
(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
(3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层;否则丢弃这个帧。

三个基本问题

封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
一个帧的长度等于帧的数据部分长度加上帧首部和帧尾部的长度。
每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU

透明传输

由于帧的开始和结束标记是使用专门指明的控制字符( SOT和EOT),因此,所传输的数据中的任何8比特的组合一定不允许使用和用作帧定界的控制字符,否则就会出现帧定界的错误。
为了解决透明传输的问题,就必须设法使数据中可能出现的控制字符在接收端不被解释为控制字符。具体方法是:发送端的数据链路层在数据中出现控制字符的前面插入一个转义字符(ESC)。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。

差错检测

比特在传输过程中可能会产生差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。为保证数据的可靠性,在计算机传输数据时,必须采用各种差错检测措施。目前数据链路层广泛使用了循环冗余检测CRC
M长数据,n位冗余码计算:
用二进制的模2(不进位加法)运算进行2^n乘M的运算,这相当于在M后面添加n个0。得到的(k+n)位的数除以收发双方事先商定的长度为(n+1)的除数P,得出商是Q而余数是R。这个余数R就作为冗余码拼接在数据M的后面发送出去。
接收端把接收到的数据以帧为单位进行CRC检验:把收到的每个帧都除以同样的除数P(模2运算),然后检查得到余数P。
如果传输无差错,则CRC检验后得出的余数R一定是0.

注意:我们现在并没有要求数据链路层向网络层提供可靠传输服务。

点对点协议PPP

PPP协议有三个组成部分
(1)一个将IP数据报封装到串行链路的方法。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP
(3)一套网络控制协议NCP,其中的每一个协议支持不同的网络层协议。

PPP协议的帧格式

PPP帧的首部和尾部分别为四个字段和两个字段。
首部第一个字段和尾部第二个字段都是标志字段F(Flag)规定为“0x7E”。标志一个帧的开始或结束。因此标志字段就是PPP帧的定界符。
连续两个帧之间只需要一个标志字段。如果连续出现两个标志字段,就表示这是一个空帧,应当丢弃。
首部中第二个字段A规定为“0xFF”第三个字段C规定为“0x03”并无意义。
PPP首部第四个字段是2字节协议字段。
IANA网站公布的定义:
http://www.iana.org/assignments/ppp-numbers/ppp-numbers.xhtml#ppp-numbers-2

RFC1662规定如下填充方法:
(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)
(2)若信息字段中出现了一个0x7D的字节(即出现了转义字符一样的比特组合),则把0x7D转变成2字节序列(0x7D,0x5D)
(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20)则在前面加入0x7D,同时将该字符的编码加以改变。

零比特填充(针对于异步传输的解决方案)
在发送端,先扫描整个信息字段,只要发现5个连续1,则立即填入一个0.因此经过零比特填充数据后的数据,就可以保证信息字段中不会出现6个连续1.

PPP协议的工作状态

PPP链路的起始和终止状态永远是“链路静止”状态。
当用户PC通过调制解调器呼叫路由器的时候,路由器能够检测到调制解调器发出的载波信号,在双方建立了物理层链接之后,PPP就进入“链路建立”状态,其目的是建立链路层的LCP连接。
LCP开始协商配置选项,即发送LCP的配置请求帧。其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。
协商结束后,双方建立了LCP链路,进入“鉴别”状态。只允许传送LCP协议的分组、鉴别协议的分组。若鉴别身份失败,则转到“链路终止”状态,若鉴别成功,则进入“网络层协议”状态。
PPP链路两端的网络控制协议NCP根据网络层的不同协议相互交换网络层特定的网络控制分组。
当网络层配置完毕后,链路进入可进行数据通信的“链路打开”状态。
数据传输结束后,可以由链路的一端发出终止请求LCP分组。

2018-06-13 15:13:00 weixin_30752377 阅读数 66

所谓的PPP协议是点对点协议,是目前使用最广泛的数据链路层的协议。大部分用户使用电话线拨号入网的,从用户计算机到ISP的链路所使用的数据链路层协议就是PPP协议。

首先介绍下拨号入网的过程。因特网服务提供者ISP是一个能够提供用户拨号入网的经营机构。ISP的路由器与因特网通过高速专线相连,并且和市话交换机也有专线相连。用户在某一个ISP缴费注册后,就可用自己的计算机通过调制解调器、电话线接入到该ISP。ISP在收到用户的接入呼叫后,确认用户名和口令,就分配给该用户一个临时的IP地址。用户获得了临时的IP地址,就成为了连接在因特网上的主机,因而就可使用因特网所提供的各种服务。当用户结束通信兵断开连接后,ISP就把刚才分配的临时IP收回,以便再分配给后面拨号入网的其他用户使用。

后面暂时先不写,以后补充

转载于:https://www.cnblogs.com/mini-coconut/p/9177945.html