网络基础篇之HDLC、PPP(原理)

一、广域网传输

  之前讲解的都是关于局域网的数据传输,这次讲解的是广域网的传输。

  广域网简称WAN,是一种跨越超大的、地域性的计算机网络集合。通常跨省、市、甚至一个国家。广域网包括很多子网,子网可以是局域网;也可以是小型的广域网。

  由于串行通信有着传输距离远、成本低的特点,所以远距离、超远距离的通信中较常使用串行通信。

二、传输协议及方式

  在广域网的传输中,有几种协议,本文章说明一下HDLC、PPP

三、HDLC

  1. 什么是HDLC

  HDLC是高级数据链路控制协议,是一种数据链路层的协议。HDLC是一个ISO标准的面向位的数据链路协议,其在同步串行数据链路上封装数据,最常用于点对点链接。HDLC主要有以下几个特性:

  协议不依赖于任何一种字符编码集。

  数据报文可透明传输,用于透明传输的“0比特插入法”易于硬件实现。

  全双工通信,不必等待确认可连续发送数据报文,有较高的数据链路传输效率。

  所有帧采用CRC校验,并对信息帧进行编号,可防止漏收或重收,传输可靠性高。

  传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能。

  HDLC的主要缺点在于,没有指定字段来标识已封装的第三层协议。因此,已经基于HDLC定义了其他几种协议。

  2. HDLC支持两种类型的传输模式:同步传输模式和异步传输模式。

  异步传输模式:是以字节为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。因此,每个字节的发送都需要额外的开销。可以面向点对点或点对多点的传输。

  同步传输模式:是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端设备的通信。只能用于面向点对点的传输。DCE(数据通信设备),提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号,通常情况下使用DCE产生的时钟信号。

  3. HDLC帧结构

  一个完整的HDLC帧最多由六个字段组成:标志字段(Flag)、地址字段(Address)、控制字段(Control)、信息字段(Information)、帧校验序列字段(FCS)构成。

  ① 标志字段:这是一个8位序列,标记帧的开始和结束。 标志的位模式是01111110。也可以作为帧与帧之间的填充字符。

  ② 地址字段:包含接收者的地址。 如果该帧是由主站发送的,则它包含从站的地址。 如果它是从站发送的,则包含主站的地址。 地址字段可以从1个字节到几个字节。

  ③ 控制字段:用于构成各种命令及响应,以便对链路进行监控。长度1或2字节。

  ④ 信息字段:承载来自网络层的数据。它的长度有FCS字段或通讯节点的缓存容量来决定。使用较多的上限是1000-2000比特;下限是0(S帧)。

  ⑤ 帧校验字段:这是一个2字节或4字节的帧检查序列,用于对两个标志字段之间的内容进行错误检测。使用的是标准代码CRC(循环冗余代码)。

  4. 根据不同的控制字段分为不同类型的帧

  ① I帧:I帧或信息帧承载来自网络层的用户数据。 它们还包括附带在用户数据上的流和错误控制信息。 I帧控制字段的第一位为0。

  

  ② S帧:S帧或监控帧不包含信息字段。当不需要负载时,它们用于流和错误控制。S帧的前两位控制域为1 0。

  

  ③ U帧 -U帧或未编号的帧用于多种其他功能,例如链接管理(链路的建立与拆除)。 如果需要,它可能包含一个信息字段。 U帧控制字段的前两位为1 1。

  

  5. HDLC接口地址租用

  接口没有IP地址,就无法生产路由,也就无法转发数据报文。IP地址借用允许一个没有IP地址的接口从其他的接口上借用IP地址,这样可以避免一个接口独占IP地址,从而造成IP地址的浪费。一般是借用loopback接口的IP地址。因为这类接口总是处于活跃(active)状态,因而能提供稳定可用的IP地址。

四、PPP

  1. 什么是PPP

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

  2. PPP协议的优点

  ①PPP协议既支持同步传输也支持异步传输。而X.25、FR等链路层协议仅支持同步传输;SLIP仅支持异步传输。

  ②PPP协议具有很好的扩展性,在以太网中时,可以扩展为PPPoE。

  ③PPP协议提供了LCP(链路控制协议)用于链路层参数的协商;提供了NCP(网络控制协议)用于网络层参数的协商。

  ④PPP协议提供了CHAP(质询握手认证协议)、PAP(密码身份验证协议),更好的保证了网络的安全性。

  ⑤无重传机制,网络开销小,速度快。

  3. PPP连接的建立过程

  ① Dead阶段:此阶段表示物理层不可用。当通信双方检测到物理线路激活时,会从Dead阶段变为Establish阶段(链路建立阶段)。

  ② Estblish阶段:此阶段进行LCP参数协商。内容包括最大接收单元MRU、认证方式等选项。当协商成功后,会进入Opened状态,表示底层链路已经建立;反之,则返回到Dead阶段。

  ③ Authenticate阶段:此阶段可有可无(多数情况下是有的)。如果需要认证,则在底层链路建立过程中必须进行认证。认证通过或无认证,则进入Network阶段;反之,则进入终止阶段,再返回到Dead阶段。

  ④ Network阶段:此阶段进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络参数的协商。只有相应的网络参数协商成功后,才会建立网络层通信。反之,则会进入终止阶段,在进入Dead阶段。

  ⑤ 当NCP协商成功后,PPP链路将保持通信状态。

  ⑥ Terminate阶段:此阶段所有资源都被释放,通信双方将回到Dead阶段。

  4. PPP帧格式

  

  PPP帧格式与HDLC协议的帧格式相类似。

  ①Flag域标识一个物理帧的起始与结束,该字节为二进制序列01111110(0X7E)。

  ②PPP帧的地址域根HDLC的地址域有差异。PPP帧的地址域为固定的11111111(0XFF)。是一个广播地址。

  ③PPP帧的默认控制域为00000011(0X03),表示无序号帧。

  ④FCS是个16位的校验和,用于检测PPP帧的完整性。

  ⑤协议字段用于表示PPP帧封装的协议报文类型:0XC021代表LCP报文;0XC023表PAP报文;0XC223代表CHAP报文。

  ⑥信息字段包含协议中指定协议的数据包。数据字段的默认最大长度(不包含协议字段)称为最大接收单元MRU(MRU缺省值为1500字节)。

  ⑦Code字段。主要用于标识LCP数据报文的类型。

  ⑧Identifier域为1字节,用于匹配和响应请求

  ⑨Length字段表示该LCP报文的总长度。

  ⑩数据字段承载各种TLV(Type/Length/Value)参数用于协商配置选项。(包括最大接收单元,认证协议等等)

  5. LCP

  LCP(链路控制协议):LCP可以自动检测链路环境(如是否存在环路);协商链路参数(如数据包最大长度);提供认证功能(只有认证成功后才会建立连接)。

  5.1. LCP报文类型共有四种:

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

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

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

  ④ Configure-Reject(配置拒绝):收到对端发来的Configure-Request报文,如果参数取值不被完全接受,则以此报文进行响应并携带本端不能接受的配置参数。

  5.2. LCP协商常见参数:

  最大接收单元MRU:表示PPP数据帧中Information字段和Padding字段的总长度。在VRP平台上。MRU参数使用接口上配置的最大传输单元(MTU)来表示。MRU参数缺省值为1500字节。

  ② 认证协议:认证对端使用的认证协议。常用的PPP认证协议有PAP与CHAP,一条PPP链路可以使用不同的认证协议,但是被认证方必须支持认证方的认证协议并配置正确的用户名和密码等信息。

  ③ 魔术字:用以检测链路和其他异常情况。在Config-Request的配置选项参数中进行发送时会随机产生一个数字并一块发出,当设备收到一个Config-Request报文时,会与上次发送发送的Config-Request报文中的魔术字进行对比。(不相同的设备产生的魔术字可能相同,只不过概率非常低而已,但不是不可能)。若不相同,则表示没有环路;若相同,则设备会发送Config-Nak报文并重新生成新的魔术字进行发送。再次收到Config-Nak报文时,依旧进行魔术字的对比。若不相同则表示没有环路;若相同则会重新发送Config-Request报文,若一直相同会随着对比次数,存在环路的可能性越来越大,等到了一定的级别,则认为网络中存在环路。

  5.3. LCP认证过程

  ① PAP认证过程:

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

  b.认证方收到被认证方发送的用户名和密码之后,根据本地配置的用户名和密码数据库进行匹配,若匹配,则返回Authenticate-Ack报文表示认证成功。否则返回Authenticate-Nak报文,表示失败。

  ② CHAP认证过程:

  a. 认证方发送一个Challenge报文给被认证方,报文中包含Identifier信息与一个随机产生的Challenge字符串,此Identifier极为后续报文使用的Identifier。

  b. 被认证方收到此Challenge报文后,进行一次加密运算,运算公式为MD5(Identifier + 密码 + Challenge)。从而得到一个16字节长的摘要信息,然后将此信息和在端口上配置的CHAP用户名一起封装在Response报文中回应认证方。

  c. 认证方收到被认证方发送的Response报文后,按照其中封装的用户名查找对应的密码,得到密码后,按照上面的计算公式也进行一次计算,计算结果与Response报文中的进行对比,相同则认证成功,不相同则认证失败。

  在CHAP认证方式中,由于密码是加密之后传输,所有极大的提高了安全性。

  6. NCP(IPCP)

  NCP(网络控制协议):每一个NCP对应了一种网络协议,用于网络地址等参数的协商。下面说下NCP中的IPCP(IP Control Protocol)协议。

  IPCP使用与LCP相同的协商机制、报文类型,但不是调用LCP,只是工作方式、报文类型等和LCP相同,协商方式有两种,具体协商过程:

  6.1. IPCP静态地址协商

  ① 每一端都要发送包含本端的IP地址的Configure-Request报文给对端。

  ② 每一端都会收到包含对端的IP地址的Configure-Request报文,检查其中的IP地址,若IP地址是一个合法的单播IP且和本端的IP地址不冲突,则认为对端可以使用该IP地址,并且回应一个Configure-Ack报文。

  6.2. IPCP动态地址协商

  ① 协商端(没有IP地址)向被协商端发送一个Configure-RequestA报文,由于协商端没有IP地址,因此此报文中包含的IP地址为0.0.0.0。表示向被协商端请求IP地址。

  ② 被协商端收到Configure-Request报文之后,认为其中的IP地址不合法,使用Configure-Nak回应一个新的IP地址(需提前建立IP Pool,并且与端口进行关联)。

  ③ 协商端收到Configure-Nak报文后,更新本端的IP地址,之后重新发送一个Configure-Request报文,此报文包含新的IP地址。

  ④ 被协商端收到新的Configure-Request报文后,认为其中的IP是合法的地址,回应一个Configure-Ack报文。并且也会将包含本端IP地址的Configure-Request报文发送给协商端。

  ⑤ 协商端收到被协商端发送的Configure-Request报文后,认为其中的IP地址合法,会回应一个Configure-Ack报文。至此,IPCP的协商完成。

五、扩展---PPPoE

  1. DSL(Digital Subscriber Line)应用

  为解决在网络服务提供商与最终用户之间的“最后一公里”的传输瓶颈问题,使用铜缆电话线路接入因特网。在使用DSL接入网络时,用户需安装调制解调器(也就是大家熟知的“猫”),然后通过现有的电话线与DSLAM(数字用户线路接入复用器)相连。DSLAM是各种DSL系统的局端设备,属于“最后一公里”接入设备。

  之后,DSLAM通过异步传输(ATM)网络或者Ethernet(以太网)网络将用户的数据转发给BRAS(宽带远程接入服务器)。BRAS是面向带宽网络应用的接入网关,位于骨干网的边缘层。

  2. PPPoE在DSL中的应用

  由于PPP协议可以提供良好的访问控制和计费功能,于是有PPP协议扩展而成的PPPoE协议。此协议可以在以太网络中进行传输PPP报文。此协议具有适用范围广、安全性高、计费方便等特点,深受宽带接入运营商的认可且被广泛应用。

  3. PPPoE的报文格式

  

  PPPoE报文是适用Ethernet格式进行封装的。

  ① DMAC: 表示目的设备的MAC地址,通常为以太网络单播目的地址或者以太网络广播地址(0xFFFFFFFF)。

  ② SMAC:表示源设备的MAC地址。

  ③ Type:表示协议类型字段。0x8863表示PPPoE发现阶段的报文;0x8864表示PPPoE会话阶段的报文。

  ④ FCS:进行报文完整性校验。

  PPPoE字段表示:

  ① Ver:表示PPPoE的版本号,值为0x01。

  ② Type:表示类型,值为0x01。

  ③ Code:表示PPPoE报文类型,不同的取值对应不同的PPPoE报文类型(下面会细说明)。

  ④ Session ID:与以太网SMAC和DMAC一起定义了一个PPPoE会话。

  ⑤ Length:表示PPPoE报文的Payload长度,不包括以太网头部和PPPoE头部的长度。

  

  4. PPPoE协议报文类型

  ① PADI(PPPoE Active Discovery Initiation):用户主机发起的PPPoE服务器探测报文。源MAC为客户端MAC地址;目的MAC为广播地址;Code字段为0x09;Session ID字段为0x0000。

  ② PADO(PPPoE Active Discovery Offer):PPPoE服务器收到PADI报文后的回应报文。源MAC为PPPoE服务器MAC地址;目的MAC为客户端MAC地址;Code字段为0x07;Session ID字段为0x0000。

  ③ PPPoE服务器回应的PADO报文后,单播发起请求报文。源MAC为客户端MAC地址;目的MAC为选定的PPPoE服务器MAC地址;Code字段为0x19;Session ID字段为0x0000。

  ④ 分配一个唯一会话进程ID,通过此报文发送给客户端。源MAC为发出报文的PPPoE服务器MAC地址;目的MAC为客户端MAC地址;Code字段为0x09;Session ID字段为PPPoE服务器为会话而产生的Session ID。

  ⑤ PADT(PPPoE Active Discovery Terminate)

  5. 建立回话过程

  会话过程分为三个阶段

  5.1 发现阶段(PPPoE协商阶段):获取对方以太网地址;确定唯一的PPPoE会话。

  ① 客户端在以太网中广播一个PADI报文,此报文包含了客户端所需要的服务信息。所有PPPoE服务器收到PADI报文后,会将报文中包含的请求与自己提供的服务进行对比。

  ② 所有PPPoE服务器收到PADI报文后,会将报文中包含的请求与自己提供的服务进行对比。若PPPoE服务器可以满足客户端的服务请求,就会回复一个PADO报文,所以一个客户端可能会收到多个PPPoE服务器发出的PADO报文。

  ③ 客户端收到PADO报文后,会从中选择最先收到的PADO报文所对应的PPPoE服务器为指定PPPoE服务器,并且发送一个PADR报文给指定PPPoE服务器。

  ④ PPPoE服务器收到PADR服务器后,会生成一个唯一的Session ID来标识与客户端的会话,并通过PADS报文将Session ID发送给客户端。

  ⑤ 当客户端收到PPPoE服务器发出的PADS报文后,会话建立成功,进入会话阶段。

  5.2 会话阶段:包括两部分 PPP协商阶段 与 PPP报文传输阶段 。

  ① PPP协商阶段:此阶段与普通PPP协商方式一致,分为LCP、认证、NCP三个阶段。

  ② PPP报文传输阶段:协商成功后,就可以承载PPP数据报文,在这一阶段传输的数据包中的Session ID必须与发现阶段PPPoE服务器生成并且发送给客户端的Session ID保持一致。

  5.3 会话终结阶段:会话建立之后的任意时刻,发送报文结束PPPoE会话。

  当PPPoE服务器端或客户端希望关闭连接时,便会发送PADT报文(那一端希望关闭就由那一端发送),Session ID为希望关闭的连接的Session ID,另外一端一旦收到此报文,连接随即关闭。

原文地址:https://www.cnblogs.com/641055499-mozai/p/11689005.html

时间: 2024-10-06 22:26:35

网络基础篇之HDLC、PPP(原理)的相关文章

网络基础篇----计算机网络基本概述(1)

享受生活  热爱挑战                                                                刘明远分享    一   计算机网络基本概述(1) 每章一段话: 不要让自己闲下来,给自己找些事情做.哪怕是看看书. 正文   (提示:本章内容比较无聊,最好当看故事一样来看,不必记下只需了解,内容基础) 1什么是计算机网络 号称新的"电力火花"是以计算机.通信.信息技术为支撑的计算机网络技术. 计算机网络将两台或多台计算机通过电缆或网络设

鸟哥的私房菜的网络基础篇,好久没看了,重新看了一下子网划分简单很多

第二章.基础网络概念 目录 第二章.基础网络概念 1 2.1 网络是个什么玩意儿 2 2.1.1 什么是网络 2 2.1.2 计算机网络组成组件 5 2.1.3 计算机网络区域范围 6 2.1.4 计算机网络协议: OSI 七层协定 7 2.1.5 计算机网络协议: TCP/IP 11 2.2 TCP/IP 的链结层相关协议 12 2.2.1 广域网使用的设备 13 2.2.2 局域网络使用的设备-以太网络 14 2.2.3 以太网络的传输协议:CSMA/CD 16 2.2.4 MAC 的封装格

Hybrid APP基础篇(四)->JSBridge的原理

说明 JSBridge实现原理 目录 前言 参考来源 前置技术要求 楔子 原理概述 简介 url scheme介绍 实现流程 实现思路 第一步:设计出一个Native与JS交互的全局桥对象 第二步:JS如何调用Native 第三步:Native如何得知api被调用 第四步:分析url-参数和回调的格式 第五步:Native如何调用JS 第六步:H5中api方法的注册以及格式 进一步完善JSBridge方案 思路 实现 注意 完整的JSBridge 完整调用流程图 另外实现:不采用url sche

网络基础篇(一)

OSI模型的七层结构 1.物理层: 二进传输 为启动.维护以及关闭物理链路定义了电气规范.机械规范.过程规范.和功能规范. 2.数据链路层: 访问介质: 定义如何格式化数据以便进行传输以及如何控制对网络的访问. 支持错误检测 3.网络层: 路由数据包 选择传递数据的最佳路径 支持逻辑寻址和路径选择 4.传输层: 确保数据传输的可靠性 建立.维护和终止虚拟电路 信息留空制来保障可靠性 5.会话层: 主机间通信 建立.管理和终止在应用程序之间的会话 6.表示层: 数据表示: 确保接受系统可以读出该数

大二层网络-基础篇

一.传统数据中心网络架构: 传统的数据中心网络通常都是二层+三层网络架构,如下图所示. 我们看到这种零售行业的"加盟店"形式架构,以及与之相对应的"三层到边缘"架构,以及我们下面要谈到的"大二层"架构,就相当于"直营店"了.之所以采用这种网络架构,是因为这种架构非常成熟,相关的二三层网络技术(二层VLAN+xSTP.三层路由)都是成熟的技术,可以很容易的进行部署,也符合数据中心分区分模块的业务特点. 二.服务器虚拟化趋势: 由

网络基础篇(一)--TCP/IP协议族

TCP/IP协议族是一个分层,多协议通信体系. 1 TCP/IP协议族体系结构 TCP/IP协议族自底而上分为四层: 数据链路层, 网络层, 传输层和应用层. 1.1 数据链路层 实现网卡接口的网络驱动程序,以处理数据在物理媒介(如,以太网, 令牌环)上的传输. 常用协议: ARP协议和RARP协议 1.2 网络层 实现数据包的选路和转发.采用逐跳通信方式. 常用协议:IP协议和ICMP协议(并非严格意义上的网络层协议,它是基于IP协议的) 1.3 传输层 为两台主机上的应用程序提供端到端的通信

linux网络编程之TCP/IP基础篇(一)

从今天起,将会接触到网络编程,平台是linux,实现语言C语言,最后将会实现一个简易的miniftp服务器. 主要的内容安排为:linux网络编程之TCP/IP基础篇,SOCKET编程篇,进程间通信篇,线程篇,实战ftp篇. 1.ISO/OSI参考模型:open system interconnection开放系统互联模型是由OSI(international organization for standardization )国际标准化组织定义的网络分层模型,共七层. 各层的具体含义: 物理层

网络基础七层原理(重点)

网络基础七层原理一.什么是网络基础七层原理二.七层模型的起源三.七层模型的原理和协议四.七层模型有何用处1.七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型.它是一个七层的.抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议.2.OSI的大部分设计工作实际上只是Honeywell Information System 公司的一个小组完成的,

Linux网络配置基础篇

Linux网络配置基础篇 一.如何实现linux网络通信? 1)指定IP/NETMASK可实现本地通信: 2)指定路由(网关)可实现跨网络通信: 3)指定DNS服务器地址可实现基于主机名的通信, 主DNS服务器地址(当前服务器不在线时,启用备用DNS服务器地址) 备用DNS服务器地址 第三备份DNS服务器地址 二.配置网络方式及网络接口命名 linux 网络属于内核的功能, 配置方式: 静态指定:使用命令直接指定或修改配置文件 动态分配:依赖于本地网络中有DHCP服务 网络接口命名方式: 传统命