HDLC和PPP原理
广域网中经常会使用串行链路来提供远距离的数据传输,高级数据链路控制HDLC(High-Level Data Link Control)和点对点协议PPP( Point to Point Protocol)是两种典型的串口封装协议。
同步异步是串行的概念里面的
异步传输是以字节为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。起始位为二进制值0,停止位为二进制值1。在这种传输方式下,开始和停止位占据发送数据的相当大的比例,每个字节的发送都需要额外的开销。
同步传输是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信。
DCE即数据通信设备,它提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。
DTE即数据终端设备,它通常使用DCE产生的时钟信号。
HDLC特点:
同步传输协议
透明传输
全双工通信
传输可靠性高
数据传输较灵活
HDLC有三种类型的帧:
信息帧(I帧)用于传送有效信息或数据,通常简称为I帧。
监控帧(S帧)用于差错控制和流量控制,通常称为S帧。S帧的标志是控制字段的前两个比特位为“10”。S帧不带信息字段,只有6个字节即48个比特。
无编号帧(U帧)简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能。

完整的HDLC帧由标志字段(Flag)、地址字段(Add)、控制字段(Contr)、信息字段(Infomation)、帧校验序列字段(FCS)等组成。CRC 循环冗余校验,FCS 帧校验序列字段,由CRC可算出该值
标志字段为01111110,用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符。 地址字段携带的是接收者的地址。
用户只需要在串行接口视图下运行link-protocol hdlc命令就可以使能接口的HDLC协议。华为设备上的串行接口默认运行PPP协议。用户必须在串行链路两端的端口上配置相同的链路协议,双方才能通信。
PPP协议
LCP报文类型:
Configure-Request 包含发送者试图与对端建立连接时使用的参数列表
Configure-Ack 表示完全接受对端发送的Configure-Request的参数取值
Configure-Nak 表示对端发送的Configure-Request中的某些参数取值在本端不被认可
Configure-Reject (需要删除一些参数)表示对端发送的Configure-Request中的某些参数本端不能识别
LCP链路协商
双向的都需要发生request报文
LCP报文携带的一些常见的配置参数有MRU,认证协议,以及魔术字。
在VRP平台上,MRU参数使用接口上配置的最大传输单元(MTU)值来表示。
常用的PPP认证协议有PAP和CHAP,一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议并正确配置用户名和密码等认证信息。
LCP使用魔术字来检测链路环路和其它异常情况。魔术字为随机产生的一个数字,随机机制需要保证两端产生相同魔术字的可能性几乎为0。 收到一个Configure-Request报文之后,其包含的魔术字需要和本地产生的魔术字做比较,如果不同,表示链路无环路,则使用Confugure-Ack报文确认(其它参数也协商成功),表示魔术字协商成功。在后续发送的报文中,如果报文含有魔术字字段,则该字段设置为协商成功的魔术字。
PPP为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议
帧结构中control是HDLC的帧是固定的
PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。
同异步链路:PPP既支持同步传输又支持异步传输
扩展性:例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE:PPPoE是一种把PPP帧封装到以太网帧中的链路层协议;经济的以太网+快捷的PPP=PPPoE;具有使用范围广、安全性高、计费方便的特点;PPPoE组网结构采用Client/Server模型;
LCP协议:PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
NCP协议:PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
CHAP、PAP认证:PPP提供了认证协议:CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
无重传机制,网络开销小,速度快,效率高。
PPP链路建立过程:

(1)PPP链路建立准备阶段Dead
简单来说就是发送LCP报文之前
(2)链路建立阶段Establish
链路双方通过LCP报文协商一些东西,所有的配置选项都被假定为缺省值,除非在配置交互的过程中改变。只有与特定网络层协议无关的选项才能被LCP协议配置。配置单独的网络层协议是在网络层协议阶段由相应的网络控制协议来配置的。在此阶段接收到的任何非LCP数据包将被丢弃。接收到LCP配置请求数据包将引起PPP连接从网络层协议阶段或认证阶段返回到建立连接阶段。
(3)认证阶段Authenticate
在允许网络层协议数据包交换之前希望对对等实体进行认证(缺省时认证不是必要的)。如果应用时希望对等实体使用某些认证协议进行认证,这种要求必须在建立连接阶段提出。此阶段不允许有连接质量影响数据包交换,使得认证有不确定的延迟。认证失败转入终止连接阶段,只允许连接控制协议、认证协议、连接质量监测的数据包在此阶段出现,其他包将被丢弃。在这个分阶段的应用注意事项有两个方面:① 应用时不能简单地因为超时或缺少回应就认为认证失败。应该允许重传,仅当试图认证的次数超过一定的限制时才进入终止连接阶段。② 如果对方拒绝认证,己方有权进入终止连接阶段。
(4)网络层协议阶段Network
认证完成后,就交由网络层协议进行配置,用单独的NCP来协商
(5)链路终止阶段Terminate
PPP连接可以随时终止,原因可能是载波丢失、认证失败、连接质量失败、超时计数器溢出,或者网络管理员关闭连接。
这里关于五个过程更详细:https://book.51cto.com/art/201108/283083.htm

浙公网安备 33010602011771号