PPP协议、PPPoE、HDLC协议

广域网中经常会使用串行链路来提供远距离的数据传输,高级数据链路控制HDLC(High-Level Data Link Control)和点对点协议PPP( Point to Point Protocol)是两种典型的串口封装协议。

  • HDLC(High-level Data Link Control),高级数据链路控制,简称HDLC,是一种面向比特的链路层协议,现在几乎不用。

  • PPP协议是一种点到点(一根链路两端只有两个接口)链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。常用于 dial-up 网络和 VPN 连接。PPP 协议提供了多种功能,包括身份验证、数据压缩和加密等,但是它不提供路由功能。

  • PPPoE 则是一种在以太网上运行 PPP 的协议。它使用了以太网帧来封装 PPP 数据包,并使用一种特殊的服务器/客户端模型来管理 PPP 连接。PPPoE 常用于 ADSL、光纤宽带等拨号上网方式,也可以用于小区宽带网络中。

数据传输方式(data transmission mode),是数据在信道上传送所采取的方式。若按数据传输的顺序可以分为并行传输和串行传输;若按数据传输的同步方式可分为同步传输和异步传输;若按数据传输的流向和时间关系可以分为单工、半双工和全双工数据传输

异步传输:是以字节为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。起始位为二进制值0,停止位为二进制值1。在这种传输方式下,开始和停止位占据发送数据的相当大的比例,每个字节的发送都需要额外的开销。

同步传输:是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信。DCE即数据通信设备,它提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。DTE即数据终端设备,它通常使用DCE产生的时钟信号。

一、PPP协议:

A、协议综述:

1、组成和特点:

PPP(Point-to-Point Protocol)是一种常用的数据链路层协议,用于在点对点连接中进行数据传输。它提供了一种可靠、灵活和可扩展的方式来建立和管理网络连接,广泛应用于拨号连接、宽带接入和虚拟专用网络(VPN)等场景。PPP 协议是在 SLIP 协议的基础上发展而来的,它既可以在异步线路上传输,又可在同步线路上使用; 不仅用于 Modem 链路,也用于租用的路由器到路由器的线路。PPP 只支持全双工链路。

协议特点:

  • 可靠性:PPP协议使用校验和和重传机制来确保数据的可靠传输,能够检测和纠正传输中的错误。

  • 身份验证:PPP支持多种身份验证方式,包括PAP(Password Authentication Protocol)和CHAP(Challenge Handshake Authentication Protocol),用于验证连接的双方身份。

  • 多协议支持:PPP协议可以承载多种网络层协议,如IP(Internet Protocol)、IPX(Internetwork Packet Exchange)和IPv6(Internet Protocol version 6)等。

  • 链路控制:PPP协议提供链路控制机制,包括链路状态检测、链路负载和链路协商等功能,以优化数据传输和网络性能。

  • 网络地址分配:PPP支持动态分配IP地址,使用协议如DHCP(Dynamic Host Configuration Protocol)来为连接的设备分配IP地址。

PPP 协议有三个组成部分:

  1. 链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路

  2. 网络控制协议(NCP)。PPP 协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的 NCP 来配置,为网络层协议建立和配置逻辑连接

  3. 一个将 IP 数据报封装到串行链路的方法。IP 数据报在 PPP 帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。

2、帧格式:

Untitled
  • Flag字段为帧定界标志,用来标识PPP帧的,长度为1字节,取值固定为0x7E(二进制为01111110)。开始与结束。连续两帧之间只需要用一个标志字段,如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。

  • Address字段为地址字段,用来标识接收方的地址,长度为1字节,由于点到点链路的接收方是唯一的,故此字段取值固定为0xFF,表示只有对端才能接受到数据。

  • Control字段为控制字段,长度为1字节,取值固定为0x03,表示无序号信息(Unnumbered Information)。

  • Protocol字段为协议字段,用来标识PPP帧封装的协议数据类型,长度为2字节。此字段使PPP得以封装不同的协议。

Untitled
  • Information字段为信息字段,该字段长度不固定,最大长度等于MRU(Maximum Receive Unit)值,默认为1500字节。此字段存放承载的协议数据,包括LCP、NCP等。

  • FCS(Frame Checksum)字段为帧校验和字段,用来检测PPP帧的完整性(CRC计算),长度为2字节。

3、透明传输问题的解决:

因为PPP帧的帧定界符是0x7E,所以当信息字段中出现一样的比特组合时,就必须采取一些措施,使得和帧定界符一样的比特组合不出现在信息字段中。

Untitled

当PPP用在异步传输的时候,使用字节填充法,将定界符进行转义

Untitled

发送方:

  • 如PPP帧的标志字段取值为7E(16进制),如果数据中出现7E则需要在数据前插入转义字符7D(16进制),并将原来的7E减20(16进制),所以7E在数据中最终会变成7D,5E

  • 如果数据中有转义字符7D怎么办呢?可以在转义字符7D前再加一个转义字符7D,并将数据的7D减20(16进制),于是转义字符7D在数据中最终会变成7D,5D

  • 数据中出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上0x20。

接收方:进行反变换即可恢复出原来的帧的数据部分

PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续发送),而不是异步传输(逐个字符的传送)。在这种情况下,PPP协议采用零比特填充方法来实现透明传输。
零填充:面向比特的同步链路采用插入比特0的比特填充法。

Untitled

接收方:对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除

发送方:对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0

差错检测

Untitled

接收方每收到一个PPP帧,就进行CRC检验(多项式)。若CRC检验正确,就收下这个帧;反之就丢弃这个帧(不可靠传输服务)。检验由尾部的FCS实现

用于检验的多项式为

C R C − C C I T T = x 16 + x 12 + x 5 + 1 CRC-CCITT =x^{16}+x^{12}+x^{5}+1CRCCCITT=x16+x12+x5+1

使用PPP的数据链路层,向上提供的是不可靠数据传输服务

B、工作流程:

1、建立过程和流程:

Untitled
Untitled

在建立、保持和终止PPP链路的过程中,PPP链路需要经过5个阶段,除认证阶段外,其它4个阶段都是必要过程。 5个阶段如下:链路不可用阶段(Dead)、链路建立阶段(Establish)、认证阶段(Authenticate)、网络层协议阶段(Network)、链路终止阶段(Terminate)

  • Dead阶段:也称为物理层不可用阶段。当通信双方的两端检测到物理线路激活时,就会从Dead阶段迁移至Establish阶段,即链路建立阶段。

  • Establish阶段:PPP链路进行LCP参数协商。协商内容包括最大接收单元MRU、认证方式、魔术字(Magic Number)等选项。LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。

  • Authenticate阶段:多数情况下,链路两端的设备是需要经过认证阶段(Authenticate)后才能够进入到网络层协议阶段。PPP链路在缺省情况下是不要求进行认证的。如果要求认证,则在链路建立阶段必须指定认证协议。认证方式是在链路建立阶段双方进行协商的。如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。配置ppp authentication chap 代表为主验证方,需要发送本端用户名和密码给对端认证

  • Network阶段:PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。NCP协商成功后,PPP链路将保持通信状态。

  • 在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方重新建立PPP连接。

  • PPP运行过程中,可以随时中断连接,例如物理链路断开、认证失败、超时定时器时间、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。

2、串行链路建立过程演示:

Untitled

阶段一:LCP链路协商阶段

当物理层链路变为UP之后,RTA和RTB使用LCP协商链路参数。

LCP报文携带的一些常见的配置参数有MRU,认证协议,以及魔术字。

Untitled

LCP用于链路层参数协商所使用四种报文类型:

  • Configure-Request(配置请求):链路层协商过程中发送的第一个报文,该报文表明点对点双方开始进行链路层参数的协商

  • Configure-Ack(配置响应):收到对端发来的Configure-Request报文,如果参数取值完全接受,则以此报文响应

  • Configure-Nak(配置不响应):收到对端发来的Configure-Request报文,如果参数取值不被本端认可,则发送此报文并且携带本端可接受的配置参数

  • Configure-Reject(配置拒绝):收到对端发来的Configure-Request报文,如果本端不能识别对端发送的Configure-Request中的某些参数,则发送此报文并且携带那些本端不能认别的配置参数

Untitled

三种情况:

Untitled

1、RTA首先发送一个Configure-Request报文,此报文中包含RTA上配置的链路层参数。

2、当RTB收到此Configure-Request报文之后,如果RTB能识别并接受此报文中的所有链路层参数,则向RTA回应一个Configure-Ack报文。

注:

1、RTA在没有收到Configure-Ack报文的情况下,会每隔3秒重传一次Configure-Request报文,如果连续10次发送Configure-Request报文仍然没有收到Configure-Ack报文,则认为对端不可用,停止发送Configure-Request报文。

2、完成上述过程只是表明RTB认为RTA上的链路参数配置是可接受的。RTB也需要向RTA发送Configure-Request报文,使RTA检测RTB上的链路参数是不是可接受的。

Untitled

1、RTA首先发送一个Configure-Request报文,此报文中包含RTA上配置的链路层参数。

2、当RTB收到RTA发送的Configure-Request报文之后,如果RTB能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则RTB需要向RTA回应一个Configure-Nak报文。

在这个Configure-Nak报文中,只包含不能接受的链路层参数,并且此报文所包含的链路层参数均被修改为RTB上可以接受的取值(或取值范围)。

3、在收到Configure-Nak报文之后,RTA需要根据此报文中的链路层参数重新选择本地配置的其它参数,并重新发送一个Configure-Request。

Untitled

1、RTA首先发送一个Configure-Request报文,此报文中包含RTA上配置的链路层参数。

2、当RTB收到RTA发送的Configure-Request报文之后,如果RTB不能识别此报文中携带的部分或全部链路层参数,则RTB需要向RTA回应一个Configure-Reject报文。在此Configure-Reject报文中,只包含不能被识别的链路层参数。

3、在收到Configure-Reject报文之后,RTA需要向RTB重新发送一个Configure-Request报文,在新的Configure-Request报文中,不再包含不被对端(RTB)识别的参数。

阶段二:PPP认证阶段

与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议来实施认证过程,只有认证成功之后才会建立连接。PPP支持PAP和CHAP两种认证方式。

Untitled

PAP认证的工作原理较为简单。PAP认证协议为两次握手认证协议,密码以明文方式在链路上发送。

1、被认证方将配置的用户名和密码信息使用Authenticate-Request报文明文方式发送给认证方。

2、认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配

  • 如果匹配,则返回Authenticate-Ack报文,表示认证成功。

  • 否则,返回Authenticate-Nak报文,表示认证失败。

Untitled

CHAP认证过程需要三次报文的交互。为了匹配请求报文和回应报文,报文中含有Identifier字段,一次认证过程所使用的报文均使用相同的Identifier信息。

1、LCP协商完成后,认证方发送一个Challenge报文给被认证方,报文中含有Identifier信息和一个随机产生的Challenge字符串,此Identifier即为后续报文所使用的Identifier。

2、被认证方收到此Challenge报文之后,进行一次加密运算,运算公式为MD5{ Identifier+密码+Challenge },意思是将Identifier、密码和Challenge三部分连成一个字符串,然后对此字符串做MD5运算,得到一个16字节长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在Response报文中发回认证方。

3、认证方接收到被认证方发送的Response报文之后,按照其中的用户名在本地查找相应的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同,然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则认证成功,不相同则认证失败。

使用CHAP认证方式时,被认证方的密码是被加密后才进行传输的,这样就极大的提高了安全性。

阶段三:NCP地址协商阶段

PPP定义了一组网络层控制协议NCP,每一个NCP对应了一种网络层协议,用于协商网络层地址等参数,例如IPCP用于协商控制IP协议,IPXCP用于协商控制IPX协议等。IP地址协商包括两种方式:静态配置协商和动态配置协商。

Untitled
  1. 每一端都要发送Configure-Request报文,在此报文中包含本地配置的IP地址;

  2. 每一端接收到此Configure-Request报文之后,检查其中的IP地址,如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同(没有IP冲突),则认为对端可以使用该地址,回应一个Configure-Ack报文。

Untitled

1、RTA向RTB发送一个Configure-Request报文,此报文中会包含一个IP地址0.0.0.0,表示向对端请求IP地址;

2、RTB收到上述Configure-Request报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak回应一个新的IP地址10.1.1.1;

3、RTA收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个Configure-Request报文,包含新的IP地址10.1.1.1;

4、RTB收到Configure-Request报文后,认为其中包含的IP地址为合法地址,回应一个Configure-Ack报文。

5、同时,RTB也要向RTA发送Configure-Request报文请求使用地址10.1.1.2,RTA认为此地址合法,回应Configure-Ack报文。

二、PPPoE 协议:

A、协议综述:

1、广域网角色介绍:

广域网络设备基本角色有三种,CE(Customer Edge,用户边缘设备) 、PE (Provider Edge,服务提供商边缘设备) 和P(Provider ,服务提供商设备) 。

CE:用户端连接服务提供商的边缘设备。CE连接一个或多个PE,实现用户接入。

PE:服务提供商连接CE的边缘设备。PE同时连接CE和P设备,是重要的网络节点。

P:服务提供商不连接任何CE的设备。

简单说CE就是企业出口设备,PE就相当于光猫,P就是运营商内部设备。在CE和PE间一般使用PPP协议进行安全验证,以及现在的PPPoE协议。一般我们不需要关心运营商内部的网络。

Untitled
Untitled

2、协议介绍:

PPPoE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。

PPPoE集中了PPP和Ethernet两个技术的优点。既有以太网的组网灵活优势,又可以利用PPP协议实现认证、计费等功能。

PPPoE其实就是我们现在用的拨号上网的方式,可以在以太网的基础上进行PPP认证,实现上网,运营商进行计费。

Untitled
Untitled

B、报文格式:

1、报文分类:

PPPoE 协议的报文可以分为发现阶段报文和会话阶段报文。PPPoE的发现阶段包括PADI(PPPoE Active Discovery Initiation)、PADO(PPPoE Active Discovery Offer)、PADR(PPPoE Active Discovery Request)和PADS(PPPoE Active Discovery Session-confirmation)四种类型的报文。这些报文用于在客户端和服务器之间建立连接和会话。

在PPPoE会话阶段,PPPoE Client和PPPoE Server使用标准的PPP协议来建立链路,包括LCP协商、认证协议(如PAP或CHAP)认证和NCP协商等步骤 。会话阶段结束后,如果需要,PPPoE Client和PPPoE Server都可以通过发送PADT(PPPoE Active Discovery Terminate)报文来结束PPPoE连接

PADS 和 PADT 的 Session_ID 为分配的数值,不为空

Untitled

2、报文解释:

  • PADI报文:客户端广播此报文以发现可用的 PPPoE 服务器。Code域为0x09;Session_ID域为0x0000;TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_TYPE为Service-Name的TAG,其他类型的TAG可选。

  • PADO报文:服务器响应客户端的 PADI 报文,表示可以提供服务。Code域为0x07。SESSION_ID域为0x0000。TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称;为0x0102(AC-Name)表明后面紧跟的字符串唯一地表示了某个特定的访问集中器。有且只有一个TAG_TYPE为AC-Name的TAG,至少一个TAG_TYPE为Service-Name的TAG。

  • PADR报文:客户端从多个 PADO 报文中选择一个服务器,并发送 PADR 报文请求建立会话。Code域为0x19。SESSION_ID为0x0000。TAG_TYPE域为0x0101(Service-Name),表明后面紧跟的是服务的名称。有且只有一个TAG_TYPE为Service-Name的TAG,其他类型的TAG可选。

  • PADS报文:服务器响应客户端的 PADR 报文,确认会话建立。Code域为0x65。SESSION_ID为Discovery阶段分配的数值。TAG为可选。

  • PADT报文:用于终止一个已经建立的 PPPoE 会话。该报文可以由客户端或服务器发送,以通知对方会话已经结束。如果客户端或服务器检测到会话出现错误或异常,也可以发送 PADT 报文终止会话并进行错误恢复。Code域为0xa7。SESSION_ID域为Discovery阶段分配的数值。无TAG。

C、工作过程:

PPPoE的会话建立有三个阶段,PPPoE发现(Discovery)阶段、PPPoE会话(Session)阶段和PPPoE终结(Terminate)阶段

Untitled
image.png

PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。

Discovery阶段完成之后通信双方都会知道PPPoE的Session ID以及对方以太网地址,它们共同确定了唯一的PPPoE Session。Discovery阶段由四个过程组成,具体如下:

  • PPPoE Client广播发送一个PADI报文,在此报文中包含PPPoE Client想要得到的服务类型信息。

  • 所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO报文。

  • 根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR报文。

  • PPPoE Server产生一个唯一的会话ID(Session ID),标识和PPPoE Client的这个会话,通过发送一个PADS报文把会话ID发送给PPPoE Client,从而建立会话,并进入PPPoE Session阶段。

Untitled

PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。

Untitled

PPPoE Session上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段,具体如下:

(1) LCP阶段主要完成建立、配置和检测数据链路连接。

(2) LCP协商成功后,开始进行认证工作,认证协议类型由LCP协商结果(CHAP或者PAP)决定。

(3) 认证成功后,PPP进入NCP阶段。NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它负责配置用户的IP和DNS等工作。

PPPoE Session的PPP协商成功后,其上就可以承载PPP数据报文。

当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文,用于关闭连接。同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文。

Untitled

进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT报文可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量,即使是常规的PPP结束数据包也不允许发送。

三、HDLC协议:

A、协议综述:

1、协议简要:

HDLC (高级数据链路控制) 是一个在同步网上传输数据、面向比特的数据链路层协议。帧头和帧尾都是特定的二进制序列,通过控制字段来实现对链路的监控,可以采用多种编码方式实现高效的、可靠的透明传输。不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。使用点到点链路连接,这个网络中只有你我,中间没有第三个节点,所以在封装HDLC帧的时候,不需封装SD地址。

  • HDLC 协议只支持点到点链路

  • HDLC 协议不支持 IP 地址协商,不支持认证

  • 协议内部通过发 Keepalive 报文来检测链路状态,两端设备轮询时间间隔必须相同,3 个周期内无法收到对方发出的 Keepalive 消息就视为链路不可用

  • HDLC 协议只能封装在同步链路上,如果是同异步串口的话,只有当同异步串口工作在同步模式下才可以应用 HDLC 协议

2、基本配置:

HDLC协议定义了3种类型的站、2种链路配置和3种数据传输方式。

三种类型站:

  • 主站:主站发出的帧叫命令帧,负责对 链路进行控制。

  • 从站:从站发出的帧叫响应帧,在主站的控制下进行操作。

  • 复合站:既具有主站的功能,也有从站的功能,既可以发送命令帧,也可以发送响应帧。

两种链路配置

  • 非平衡配置。既可用于点对点链路也可用于多点链路。这种链路由一个主站和多个从站组成,可以支持 全双工或 半双工。

  • 平衡配置。只能用于点对点链路。这种配置由两个复合站组成,同样支持全双工或半双工传输。

三种数据传输方式:

  • 正常响应方式(Normal Response Mode,NRM):这种方式适合不平衡配置,主站启动数据传输过程,从站只有收到命令时才能发送数据。

  • 异步平衡方式(Asynchronous Balanced Mode,ABM):这种方式适合两端都是复合站的平衡配置,任何一方都可以启动数据传输。

  • 异步响应方式(Asynchronous Response Mode,ARM):这种方式适合不平衡配置,从站在没有收到主站命令时,就可以启动数据传输服务。

B、帧结构:

Untitled
  • 帧标志F。HDLC采用固定的标志字段01111110,‘7E’作为帧的边界。当接收端检测到一个F标志时就开始接收帧,在接收的过程中如果发现F标志就认为该帧结束了。在传输的数据中可能会含有和标志字段相同的字段,而导致接收端误以为数据传输结束,为了防止这种情况的发生,引入了位填充技术。发送站在发送的数据比特序列中一旦发现0后有5个1,就在第7位插入一个0。接收端要进行相反的操作,如果在接收端发现0后面有5个1,则检查第7位,如果是0,则将0删除;如果是1并且第8位是0,则认为是标志字段F,这样就保证了数据比特位中不会有和标志字段相同的字段。

  • 地址字段A。地址字段用在多点链路中,它是用来存放从站的地址的。一般的地址字段是8位长,也可以扩展采用更长的地址,但是都是8的整数倍。每一个8位组的最低位表示该8位是否是地址字段的末尾:1表示是最后的8位组;0表示后面还有地址组,其余的7位表示整个扩展字段。

  • 控制字段C。HDLC定义了3种不同的帧,可以根据控制字段区分,信息帧(l帧)不仅用来传送数据,而且捎带流量控制和差错控制的应答信号。管理帧(S帧)是在不使用捎带机制的情况下管理帧控制的传输过程。无编号帧(U帧)具有各种链路的控制功能。控制字段使用前1位或前2位用来区别不同格式的帧,基本控制字段长度是8位。扩展控制字段是16位。

  • 信息字段INFO。I帧和一部分的U帧含有控制字段。这个字段可以包含用户数据的所有比特序列,长度没有限制,但在使用时通常限定了长度。

  • 校验字段FCS。校验字段包含地址字段、控制字段、信息字段的校验和,但不包括标志字段。一般校验字段使用的是16bit的CRCCCITT标准的校验序列,也可以使用32bit的CRC-32校验序列

B、帧类型:

HDLC的帧类型包括以下3种:

  • 信息帧(l帧)。信息帧包含用户数据、该帧的编号和捎带的应答序列N(R)。I帧包含一位PF位,主站发出的命令帧是P,即询问(Polling);从站发出的响应帧是F位,即终止位(Final)。

    • 在正常响应方式(NRM)下,主站发出的命令帧将PF置l,表示询问帧,也允许从站发送数据;从站响应主站的询问,可以发送多个响应帧表示,只将最后一个响应帧的PF置1就表示数据发送完毕。在异步响应方式(ARM)和异步平衡方式(ABM)时,P/F位用于控制U帧和S帧的交换过程。

  • 管理帧(S帧)。管理帧负责流量控制和差错控制,管理帧有4种,包括接收就绪(RR)、接收未就绪(RNR)、拒绝接收(REJ)和选择性拒绝接收(SREG)。

Untitled
  • 无编号帧(U帧)。U帧用于链路控制。U帧比较多,按其控制功能可以分为以下几类:

    • a)设置数据传输方式的命令帧和响应帧。

    • b)传输信息的命令帧和响应帧。

    • c)链路恢复的命令帧和响应帧。

    • d)其他的命令帧和响应帧。

HDLC帧的U帧的类型定义 :

Untitled

HDLC是一种面向比特的链路层协议,对任何一种比特流,均可以实现透明的传输。
HDLC协议只支持点到点链路,不支持点到多点。
HDLC不支持IP地址协商,不支持认证。协议内部通过Keepalive报文来检测链路状态。
HDLC协议只能封装在同步链路上,如果是同异步串口的话,只有当同异步串口工作在同步模式下才可以应用HDLC协议。
目前应用的接口为:工作在同步模式下的Serial接口和POS接口。CE1接口有两种工作方式:E1工作方式(非通道化工作方式)和CE1工作方式(通道化工作方式)。
当CE1接口使用E1工作方式时,它相当于一个不分时隙、数据带宽为2.048Mbps的接口,其逻辑特性与同步串口相同,支持PPP、帧中继等数据链路层协议,支持IP等网络协议。
当CE1接口使用CE1工作方式时,它在物理上分为32个时隙,对应编号为0~31,其中0时隙用于传输同步信息,可以将除0时隙外的全部时隙任意分成若干组(channel set),每组时隙捆绑以后,作为一个接口使用,其逻辑特性与同步串口相同,支持PPP、HDLC.帧中继等数据链路层协议,支持IP等网络协议。

四、PPP和HDLC 对比:

Untitled
Untitled
Untitled

【网络协议详解】——PPP协议(学习笔记)-CSDN博客

(二)数据链路层–点对点协议PPP - 明说 - 博客园

10张图带你搞懂数据链路层PPP点到点协议-电子工程专辑

网络技术基础(18)——PPP与PPPoE协议-阿里云开发者社区

PPPoE技术白皮书-6W100-新华三集团-H3C

blog.51cto.com