PPP协议(TCPIP协议第二版)

为了实现移植LWIP连入GSM网络,需要理解PPP协议的每个字段信息,以下节选翻译自TCPIP协议第二版,与大家分享~

PPP表示点对点协议,这是一种很流行的方式用来携带IP数据包,无论是高速光学线路上还是用于低速拨号调制解调器。PPP协议被广泛用于DSL服务运营商,同时也被用于配置Internet系统参数,比如用于初始化IP地址和DNS服务器。
PPP实际上应当被视为一簇协议的集合而不是单个协议。它包括链路控制协议LCP,一簇网络控制协议NCPs,以及一些相关的协议如压缩控制协议CCP和认证协议等。

链路控制协议LCP

PPP的LCP部分负责建立和维持一个在点对点链路上的低层次两端交流通道,因此LCP的操作只需要关注单一链路的两端,而不需要像以太网和WI-FI那样处理多路访问而引发的问题。
通常,PPP协议,准确的说应该是LCP协议,只对基础的点对点链路有极少的要求。链路应当支持双向操作并且支持同步通信和异步通信。LCP用比特流建立一条链路,比特流的格式是基于高级数据链路控制协议HDLC。因为在PPP设计之时,HDLC已经是一个很完善的协议了。IBM将HDLC修改之后使之成为同步数据链路控制协议SDLC,并将SDLC作为它专有的系统网络架构协议栈SNA的链路层协议。HDLC同时也作为802.2里的LLC标准的基础。

通常情况下,类似于HDLC帧格式的的PPP帧如上图所示。PPP帧首尾都是一个标志字节0X7E,该字节标志着PPP帧的开始和结束。那么这里就有一个小问题,当PPP帧的有效数据部分出现0X7E怎么办?这里有两种解决办法。当PPP处于异步操作方式下,PPP使用字节填充的方式。当标志字节出现在帧的非首尾部分时,0X7E被替换为两个字节0X7D5E,0X7D是PPP的跳脱符。如果0X7D本身出现在了有效数据部分,那么0X7D被替换为两个字节的0X7D5D。在接收端,0X7D5E又被替换为0X7E,0X7D5D又被替换为0X7D。如果是处于同步操作方式下,PPP使用比特填充的方式。0X7E的二进制比特流为01111110,有连续6个0,比特填充的方法就是在连续5个1的地方插入一个0,除了标志字符(这样,数据0X7E有9比特,标志0X7E只有8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值