HDLC 和 PPP 原理与配置

news2024/11/13 14:37:22

HDLC简介

HDLC协议是一种通用的协议,工作在OSI参考模型的数据链路层。数据报文加上头开销和尾开销后封装成HDLC帧。
HDLC具有以下特点:
•HDLC协议只支持点到点链路,不支持点到多点。
•HDLC协议不支持IP地址协商,不支持认证。
•HDLC协议通过Keepalive报文来检测链路状态,可以设置轮询时间间隔控制发送Keepalive报文的周期。
•HDLC协议只能封装在同步链路上,如果是同异步串口的话,只有当同异步串口工作在同步模式下才可以应用HDLC协议。
•协议不依赖于任何一种字符编码集;
•数据报文可透明传输,用于透明传输的“0比特插入法”易于硬件实现;
•全双工通信,不必等待确认可连续发送数据,有较高的数据链路传输效率;
•所有帧均采用CRC校验,并对信息帧进行编号,可防止漏收或重收,传输可靠性高;
•传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能。

帧结构

在这里插入图片描述
完整的HDLC帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成。

  1. 标志字段为01111110,用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符。
  2. 地址字段携带的是地址信息。
  3. 控制字段用于构成各种命令及响应,以便对链路进行监视与控制。发送方利用控制字段来通知接收方来执行约定的操作;相反,接收方用该字段作为对命令的响应,报告已经完成的操作或状态的变化。
  4. 信息字段可以包含任意长度的二进制数,其上限由FCS字段或通讯节点的缓存容量来决定,目前用得较多的是1000-2000比特,而下限可以是0,即无信息字段。监控帧中不能有信息字段。
  5. 帧检验序列字段可以使用16位CRC对两个标志字段之间的内容进行校验。
    HDLC有三种类型的帧:
  6. 信息帧(I帧)用于传送有效信息或数据,通常简称为I帧。
  7. 监控帧(S帧)用于差错控制和流量控制 , 通常称为S帧。S帧 的 标志是控制字段的前两个比特位为“10”。S帧不带信息字段,只有6个字节即48个比特。
  8. 无编号帧(U帧)简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能。

配置

RouterA的配置文件
#
 sysname RouterA
#
interface Serial1/0/0
 link-protocol hdlc
 ip address unnumbered interface LoopBack1
#
interface LoopBack1
 ip address 10.1.1.1 255.255.255.255
#
 ip route-static 10.1.1.0 255.255.255.0 Serial1/0/0
#
return

•RouterB的配置文件
#
 sysname RouterB
#
interface Serial1/0/0
 link-protocol hdlc
 ip address 10.1.1.2 255.255.255.0

PPP简介

PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。PPP协议有如下优点:

  1. PPP既支持同步传输又支持异步传输,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步传输,SLIP仅支持异步传输。
  2. PPP协议具有很好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
  3. PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
  4. PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
  5. PPP 提 供 了 认 证 协 议 : CHAP ( Challenge-HandshakeAuthentication Protocol ) 、 PAP ( Password Authentication
    Protocol),更好的保证了网络的安全性。
  6. 无重传机制,网络开销小,速度快。

PPP包含两个组件:链路控制协议LCP和网络层控制协议NCP。
在这里插入图片描述
为了能适应多种多样的链路类型,PPP定义了链路控制协议LCP。LCP可以自动检测链路环境,如是否存在环路;协商链路参数,如最大数据包长度,使用何种认证协议等等。与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议来实施认证过程,只有认证成功之后才会建立连接。
PPP定义了一组网络层控制协议NCP,每一个NCP对应了一种网络层协议,用于协商网络层地址等参数,例如IPCP用于协商控制IP协议,IPXCP用于协商控制IPX协议等。

PPP的建链过程

PPP运行的过程简单描述如下:
在这里插入图片描述

1.通信双方开始建立PPP链路时,先进入到Establish阶段。

2.在Establish阶段,PPP链路进行LCP协商。协商内容包括工作方式是SP(Single-link PPP)还是MP(Multilink PPP)、最大接收单元MRU(Maximum Receive Unit)、验证方式和魔术字(magic number)等选项。LCP协商成功后进入Opened状态,表示底层链路已经建立。

3.如果配置了验证,将进入Authenticate阶段,开始CHAP或PAP验证。如果没有配置验证,则直接进入Network阶段

4.在Authenticate阶段,如果验证失败,进入Terminate阶段,拆除链路,LCP状态转为Down。如果验证成功,进入Network阶段,此时LCP状态仍为Opened。

5.在Network阶段,PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。
NCP协商包括IPCP(IP Control Protocol)、MPLSCP(MPLS Control Protocol)等协商。IPCP协商内容主要包括双方的IP地址。

6.NCP协商成功后,PPP链路将一直保持通信。PPP运行过程中,可以随时中断连接,物理链路断开、认证失败、超时定时器时间到、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。

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

PPP报文封装的帧格式

在这里插入图片描述
PPP主要由三类协议族组成:

•链路控制协议族(Link Control Protocol),主要用来建立、拆除和监控PPP数据链路。

•网络层控制协议族(Network Control Protocol),主要用来协商在该数据链路上所传输的数据包的格式与类型。

•扩展协议族CHAP(Challenge-Handshake Authentication Protocol)和PAP(Password Authentication Protocol),主要用于网络安全方面的验证。

在这里插入图片描述
各字段的含义如下:

•Flag域

Flag域标识一个物理帧的起始和结束,该字节为0x7E。

•Address域

Address域可以唯一标识对端。PPP协议是被运用在点对点的链路上,因此,使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。按照协议的规定将该字节填充为全1的广播地址,对于PPP协议来说,该字段无实际意义。

•Control域

该字段默认值为0x03,表明为无序号帧,PPP默认没有采用序列号和确认应答来实现可靠传输。

Address和Control域一起标识此报文为PPP报文,即PPP报文头为FF03。

•Protocol域

Protocol域可用来区分PPP数据帧中信息域所承载的数据包类型。

Protocol域的内容必须依据ISO 3309的地址扩展机制所给出的规定。该机制规定协议域所填充的内容必须为奇数,也就是要求最低有效字节的最低有效位为“1”。

如果当发送端发送的PPP数据帧的协议域字段不符合上述规定,接收端则会认为此数据帧是不可识别的。接收端向发送端发送一个Protocol-Reject报文,在该报文尾部将填充被拒绝报文的协议号。

配置

配置PPP基本功能示例

•RouterA的配置文件
#
 sysname RouterA
#
ip pool 1
 gateway-list 10.10.10.9
 network 10.10.10.0 mask 255.255.255.0
#
interface Serial1/0/0
 link-protocol ppp
 remote address pool 1
 ip address 10.10.10.9 255.255.255.252
#
return


•RouterB的配置文件
#
 sysname RouterB
#
interface Serial1/0/0
 link-protocol ppp
 ip address ppp-negotiate
#
return

配置认证的PPP

PAP只需进行一次认证, 并且只在链路初始状态时执行。而且用户名与密码的传送方式是明文的。
CHAP采用周期性的验证,并且认证内容经过MD5加密后再传送,安全性要比PAP高。

配置文件

•RouterA的配置文件
#
 sysname RouterA
#
aaa
 authentication-scheme system_a
 domain system
  authentication-scheme system_a
 local-user user1@system password cipher %#%#hH{3Ec<[%8A>Yq=g@T:=p)jt+~LXt%g/kr<>r(~.%#%#
 local-user user1@system privilege level 0
 local-user user1@system service-type ppp
#
interface Serial1/0/0
 link-protocol ppp
 ppp authentication-mode chap domain system
 ip address 10.10.10.9 255.255.255.252
#
return


•RouterB的配置文件
#
 sysname RouterB
#
interface Serial1/0/0
 link-protocol ppp
 ppp chap user user1@system
 ppp chap password cipher %^%#t<`41Up#f,.2e`9Bc0)PiJtjF8F*j:55j.*d[M#/%^%#
 ip address 10.10.10.10 255.255.255.252
#
return

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2098288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构-二维前缀和】【列维护优化】力扣3212. 统计 X 和 Y 频数相等的子矩阵数量

给你一个二维字符矩阵 grid&#xff0c;其中 grid[i][j] 可能是 ‘X’、‘Y’ 或 ‘.’&#xff0c;返回满足以下条件的 子矩阵 数量&#xff1a; 包含 grid[0][0] ‘X’ 和 ‘Y’ 的频数相等。 至少包含一个 ‘X’。 示例 1&#xff1a; 输入&#xff1a; grid [[“X”,“…

用相图分析 bbr,inflight 守恒的收敛速度

以下的代码绘制了 bbr 的收敛相图&#xff1a; #!/opt/homebrew/bin/python3import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeintdef model(vars, t, C, g):x, y varsdxdt C * (g * x) / (g * x y) - xdydt C * (g * y) / (g * y x)…

读懂以太坊源码(1)-目录结构说明

要了解一个软件工程项目的代码&#xff0c;必须从代码的目录结构入手&#xff0c;从而大致了解软件实现的功能模块&#xff0c;使用了哪些相关的技术&#xff0c;大概的框架是怎么样的&#xff1f; 源码网址&#xff1a;https://github.com/ethereum/go-ethereum 以下是以太坊…

如何提升网站在Google的排名?

事实上&#xff0c;常规提升排名的方法无非就那么几种&#xff0c;关键词优化&#xff0c;高质量内容&#xff0c;网站结构优化&#xff0c;外链&#xff0c;确保网站没问题&#xff0c;这些都是常规的提升排名的方法&#xff0c;只能说没什么特别的&#xff0c;而除了这些常规…

流量焦虑?随身WiFi来救场!2024好的随身WiFi怎么挑,看这一篇文章就够了!包教会你识别随身WiFi哪个好!

相信大家买随身WiFi肯定是想要网速快&#xff0c;并且多用几年&#xff0c;那么在全网铺天盖地的广告、水军、好评的情况下&#xff0c;随身WiFi的品质好坏&#xff0c;我们该如何辨别呢&#xff1f; 主要看三个指标就能轻松分别&#xff0c;记得先收藏再观看&#xff01;一篇…

HIS系统|HIS系统开发源码

在数字医疗时代&#xff0c;医院信息系统&#xff08;HIS&#xff09;的开发至关重要。本文将深入探讨在开发HIS系统时需要关注的主要事项&#xff0c;从系统架构到数据安全&#xff0c;为医疗机构提供实用的开发指南。 1、需求分析与系统规划 在开发HIS系统的初期&#xff0c…

rknntoolkitlite2环境搭建

目录 前言 0、要下载的软件包 一、环境搭建步骤 1.1 安装Miniconda 1.2创建RKNN虚拟环境 1.3 安装rknntoolkitlite2软件包 1.4 安装opencv 前言 RKNN Toolkit Lite2 工具支持运行在 RK3568: Debian10/Debian11&#xff08;aarch64&#xff09;、Ubuntu20/22&#xff08;…

【微信小程序】自定义 tabBar

一、自定义 tabBar 1、案例效果 首先来看一下页面演示效果&#xff0c;页面中有下方标签栏是自定义 tabBar。自定义 tabBar 可以让开发者更加灵活地设置 tabBar 样式&#xff0c;以满足更多个性化的场景。 在此案例中&#xff0c;用到的主要知识点如下&#xff1a; 自定义组…

Spring 事务传播和自调用行为

为了方便讲解&#xff0c;这里的A、B、C类都是Spring管理的Bean。 自调用行为 自调用行为示例 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component…

【Python报错已解决】“ModuleNotFoundError: No module named ‘torch_scatter‘”

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言&#xff1a;一、问题描述1.1 报错示例&#xff1a;1.2 报错分析&#xff1a;1.3 解决思路&#xff1a; 二、解决…

【golang-入门】环境配置、VSCode开发环境配置

golang介绍基础信息 windows环境配置安装包下载安装环境变量设置检查 VSCode开发配置插件配置在 Visual Studio Code 中安装通义灵码go hello word 参考资料 golang介绍 基础信息 golang官网&#xff1a;https://go.dev/golang学习网&#xff1a;https://studygolang.com/使用…

本地服务器使用Docker搭建Nacos动态服务管理平台并实现远程访问

文章目录 前言1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Nacos 前言 本文主要介绍如何本地部署动态服务发现、配置管理和服务管理平台 Nacos &#xff0c;并结合…

WCDMA 辅同步信号S_SCH介绍,MATLAB实现

本期主要介绍一下WCDMA辅同步信号S_SCH实现和映射&#xff0c;从公式生成开始介绍&#xff0c;最后用MATLAB实现&#xff0c;让大家了解对比一下3G时代辅同步信号和前面介绍的4G、5G和2G时代的辅同步信号共同点和不同点&#xff0c;不管在什么时候辅同步信号都要遵循一个码要正…

【3.9】贪心算法-解最低加油次数

一、题目 汽车从起点出发驶向目的地&#xff0c;该目的地位于出发位置东面 target 英里处。 沿途有加油站&#xff0c;用数组 stations 表示。其中 stations[i] [positioni, fueli] 表示第 i 个加油站位于出发位置东面 positioni 英里处&#xff0c;并且有 fueli 升汽油。 假设…

bladeX默认审批流flowable如何设置

下面就是流程图必须得写 ${taskUser} 你要配什么 就给审批流的service传什么

自己动手写CPU_step6.1_算数运算指令

序 接上篇的加减指令&#xff0c;本篇主要实现CLZ、CLO、SLT等指令。 CLZ&#xff1a;从最高位开始数0的个数直到遇到1。 例&#xff1a;0x0000,0001 CLZ指令结果&#xff1a;31 0x8000,ffff CLZ指令结果是0 CLZ&#xff1a;从高位开始数1的个数直到遇到0…

告别繁琐,拥抱FileGee——你的高效生活助手!

前言 科技决不是一种自私自利的享乐。有幸能够致力于科技研究的人&#xff0c;首先应该拿自己的学识为人类服务。——马克思&#xff0c;这句话提醒我们&#xff0c;在数字化时代&#xff0c;高效管理自己的数据与时间同样重要。FileGee&#xff0c;正是在这样的背景下应运而生…

【最大上升子序列和】

题目 前置芝士 1. erase 函数 erase(iterator pos)&#xff1a;删除单个元素&#xff0c;其中 pos 是要删除元素的迭代器。 erase(iterator first, iterator last)&#xff1a;删除从 first 到 last&#xff08;不包括 last&#xff09;之间的所有元素。 2. unique 函数 uniqu…

emmc协议

一、简介 1.1 简介 嵌入式多媒体卡&#xff08;Embedded Multimedia Card, eMMC&#xff09;是由 JEDEC 协会所订立&#xff0c;将 MMC controller 和 NAND Flash 封装到一个芯片中&#xff0c;简化存储器的使用和电路板的设计。 1.2 信号 singledescriptionclkclockdata…

Qt22双缓冲机制

Qt22双缓冲机制 知识点drawwidgetdrawwidget.hdrawwidget.cpp mainwindowmainwindow.hmainwindow.cpp main.cpp运行图 知识点 双缓冲就是在内存区申请一块缓存&#xff1b;然后显卡直接从这块内存读取数据.。 这样就不用鼠标边画&#xff0c;经过IO来读取这个环节&#xff1b;…