数据链路层(二):点对点PPP协议

点对点PPP协议

PPP协议特点

用户需要连接到某个ISP 才能连接到互联网,PPP协议即用户和ISP通信是数据链路层的协议。

PPP协议的几个要求:

  • 简单 :复杂部分集中在TCP协议中,因此对于数据链路层不需要纠错,不需要序号,不需要流量控制。进行CRC校验。

  • 封装成帧:必须指定帧定界符

  • 透明性:有效解决数据中出现帧定界符的状况

  • 多种网络协议:PPP协议必须能够在同一条物理链路中支持多种网络协议。

  • 差错检测:PPP协议必须能够对接受到的帧进行差错检测,并丢弃无效的帧

  • 检测连接状态:PPP协议必须能够对链路进行按照一定的频率健康检查

  • 最大传送单元:必须规定点对点传输的最大单元之(MTU)

  • 网络层地址协商:PPP协议必须通过一定的方式使得 通信的两个网络层知道彼此的网络层地址

  • 数据压缩协商:PPP协议提供一种方法协商使用数据压缩

PPP协议组成

  • 一个将IP数据报封装到串行链路的方法。PPP既要支持异步数据链( 无奇偶校验的8比特数据),也要支持面向比特的同步数据链
  • 一个用来建立、配置和测试数据链路链接的链路控制协议LCP
  • 一套网络控制协议NCP
链路控制协议(LCP):
它是PPP协议的一个子集,在PPP通信中,发送端和接收端通过发送LCP包来确定那些在数据传输中的必要信息,LCP协议工作内容包括:检查链接设备的标识,决定是接受还是拒绝。确定传输中可接收的包字节数。核对双方配置是否匹配,如果不匹配则断开链接。只有在LCP包链接是可用的情况下,数据才能实现网络通信。
网络控制协议(NCP):
网络控制协议(NCP)管理对 NetWare 服务器资源的访问。NCP 向 NetWare 文件共享协议(即NFSP:NetWare File Sharing Protocol)发送过程调用消息,处理 NetWare 文件和打印资源请求。 NCP 是用于 NetWare 服务器和客户机之间传输信息的主要协议

PPP协议的帧格式

名字段含义
数据链路层(二):点对点PPP协议_第1张图片

PPP帧的首部和尾部分别为四个字段和两个字段。

  1. 首部

首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。

首部中的地址字段A规定为0xFF(即11111111)。

首部中的控制字段C规定为0x03(即00000011)。

首部中的2字节的协议字段:

(1)当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。

(2)当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。

(3)当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。

2.信息字段

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

3.尾部

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

尾部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的结束。

透明传输实现

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

字节填充——PPP使用异步传输

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

RFC1662规定了如下填充方法:

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

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

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

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

零比特填充——PPP使用同步传输

零比特填充的具体方法:

(1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。

(2)只要发现有5个连续的1,则立即填入一个0。

(3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。

数据链路层(二):点对点PPP协议_第2张图片

)

PPP协议的工作状态

PPP协议的工作状态有:链路静止、链路建立、鉴别、网络层协议、链路打开、链路终止。 当用户和ISP建立连接过程中,需要建立的连接有:物理链路的连接、LCP链路的连接(解决LCP配置协商问题)、NCP链路的连接(解决NCP配置协商问题)

数据链路层(二):点对点PPP协议_第3张图片

当用户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链路,接着就进入“鉴别”(Authenticate)状态。在这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。若使用口令鉴别协议PAP (Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。系统可允许用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP (Challenge-Handshake Authentication Protocol)。

若鉴别身份失败,则转到“链路终止”(Link Terminate)状态。若鉴别成功,则进入“网络层协议”(Network-LayerProtocol)状态。

你可能感兴趣的:(数据链路层(二):点对点PPP协议)