1、广域网传输git
以前讲解的都是关于局域网的数据传输,此次讲解的是广域网的传输。数据库
广域网简称WAN,是一种跨越超大的、地域性的计算机网络集合。一般跨省、市、甚至一个国家。广域网包括不少子网,子网能够是局域网;也能够是小型的广域网。缓存
因为串行通讯有着传输距离远、成本低的特色,因此远距离、超远距离的通讯中较常使用串行通讯。安全
2、传输协议及方式服务器
在广域网的传输中,有几种协议,本文章说明一下HDLC、PPP。网络
3、HDLC异步
1. 什么是HDLCoop
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地址。
4、PPP
1. 什么是PPP
PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。
2. PPP协议的优势
①PPP协议既支持同步传输也支持异步传输。而X.2五、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的协商完成。
5、扩展---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,另一端一旦收到此报文,链接随即关闭。