我是靠谱客的博主 哭泣含羞草,最近开发中收集的这篇文章主要介绍计算机网络学习记录_PPP点对点协议点对点协议PPP(Point-to-Point Protocol),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点对点协议PPP(Point-to-Point Protocol)

目前使用得最广泛的数据链路层协议。

PPP协议的特点:

因特网的用户通常都要连接到某个ISP(互联网服务提供商)才能接入到因特网。PPP协议就是用户计算机和ISP进行通信所使用的数据链路层协议。

1.PPP协议应满足的需求

(1)简单

因特网最复杂的部分放在了TCP协议中,而网际协议IP则相对比较简单,它提供的是不可靠的数据包服务。在这种情况下,数据链路层没有必要提供比IP协议更多的功能。因此数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。(在误码率较高的无线链路上可能需要更为复杂的链路层协议。)

简单的设计可使协议在实现时不容易出错,这样使得不同厂商对协议的不同实现的互操作性提高了。

所以,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如果CRC检验正确,就收下这个帧;反之,就丢弃这个帧。

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任

意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以

保证数据传输的正确性和完整性。

(2)封装成帧

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

(3)透明性

PPP协议必须保证数据传输的透明性。如果说是数据中碰巧出现和帧定界符一样的比特组合时,就要采用必要的措施来解决。

(4)多种网络层协议

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

(5)多种类型链路

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

(6)差错检测

PPP协议必须能够对接收端收到的帧进行检测,并舍弃有差错的帧。

(7)检测连接状态

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

(8)最大传送单元

协议对每一种类型的点对点链路设置最大传送单元MTU(最大接受单元,至少是1500字节)的标准默认值。
MTU是数据链路层的帧可以载荷的数据部分的最大长度,不是帧的总长度。

(9)网络层地址协商

协议必须提供一种机制使通信的两个网络层(如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能简单,并且能在所有的情况下得出协商结果。

(10)数据压缩协商

协议必须能够提供方法来协商使用数据压缩算法。但PPP协议不要求将数据压缩算法进行标准化。

2.PPP协议不需要的功能

(1)纠错

在TCP/IP协议族中,可靠传输由运输层的TCP协议负责,而数据链路层的PPP协议只进行检错。
因此,PPP是不可靠的。

(2)流量控制

在TCP/IP协议族中,端到端的流量控制由TCP负责,因而PPP就不再重复进行流量控制。

(3)序号

PPP是不可靠传输协议,不需要使用帧的序号

(4)多点线路

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

(5)半双工或单工链路

PPP只支持全双工链路

3.PPP协议的组成

三个组成部分:
1.一个将IP数据报封装到串行链路的方法。
2.一个用来建立、配置和测试数据链路连接的 链路控制协议LCP(Link Control Protocol)。通信的双方可协商一些选项。在RFC1661中定义了11种类型的LCP分组。
3.一套 网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。

PPP协议的帧格式

1.字段意义
首部中的地址字段A规定为0xFF,控制字段C规定为0x03,这两个字段最初考虑对值进行其他定义,至今也没给出。所以实际上并没有携带PPP帧的信息。
首部的第一个字段和尾部的第二个字段都是标识字段F(Flag)。
首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息部分字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而 0x8021表示这是网络层的控制数据。
信息字段的长度是可变的,不超过1500字节。
尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。

2.字节填充
当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。
PPP异步传输时:它把转义符定义为0x7D,并使用字节填充,RFC 1662规定如下的填充方法:
(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7E,0x5E)
(2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成2字节序列(0x7d,0x5d);
(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20)的字符,则在该字节前要加入一个0x7D字节,同时将该字符的编码加以改变。
3.零比特填充
PPP协议用在SONET/SDH链路时,是使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,ppp协议采用零比特填充方法来实现透明传输。
只要发现有5个连续1,则立即填入一个0。




最后

以上就是哭泣含羞草为你收集整理的计算机网络学习记录_PPP点对点协议点对点协议PPP(Point-to-Point Protocol)的全部内容,希望文章能够帮你解决计算机网络学习记录_PPP点对点协议点对点协议PPP(Point-to-Point Protocol)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部