理解并取证:广域网上的PPP协议
目标:
1理解在广域网上数据的封装形式
2最初的SLIP协议
3PPP协议的组件
4理解并取证:PPP协议中LCP的工作原理(从数据帧的角度分析)
5理解并取证:PPP协议中NCP的工作原理(从数据帧角度分析)
6演示:思科路由器PPP链路的配置
理解在广域网上数据的封装形式
任可处于OSI第三层(网络层)的协议要穿越广域网,就必须封装相应的数据链路层协议。如下图8.13所示,目标在于更方便的把上层数据进行传输,在网络层与物理层之间提供一种数据运载的方式,而这种数据运载的方式则以WAN协议进行体现,常见的WAN协议有SLIP、PPP、HDLC、X.25、Frame-rely、ATM等。
最初的SLIP协议
SLIP(Serial Line Internet Protocol串行线路网际协议)是早期用于点对点连接的WAN常见协议,其主要的作用是为使用TCP/IP协议的数据提供第二层的“帧封装”,它是PPP协议的前身,它的实现特别简单,而且易于应用,所以在某一个阶段,该协议深受WAN用户的喜爱。它的工作原理就是将IP数据封装成帧进行传输,第三层的IP数据向下传递给SLIP,然后SLIP将其转换在字节,并在链路上以每次发送一个字节的方式来传输这些IP数据,当面对传输的最后一个字节时,会加上一个SLIP END标记。所以在这里可以这样表达SLIP的作用,SLIP的唯一作用就是将IP数据封装成帧,进行传输。需要注意的是SLIP仅支持IP报文的成帧(封装),如果使用了非IP协议(如IPX/SPX),那么SLIP不能对其进行第二层的封装,SLIP不提供数据在链路上传输的基本安全性保障,不提供身份鉴别与数据加密,这将无法满足现今Internet的需求。而且SLIP没有提供数据传输过程中的长度标准、差错控制、传输管理、相关的压缩机制等,所以SLIP退出Internet的舞台,被PPP协议所代替是不可避免的事实。
理解PPP协议的组件
PPP(Point to Point Protocol点对点协议)是为了在点对点连接上传输多协议数据包提供的一种标准方法,它克服了SLIP的所有局限性,被作为一个完整的协议族进行开发。为什么这样说?因为PPP不只是单纯的支持对IP报文的成帧(封装),还可以对其它非IP报文如IPX报文进行封装,并且提供良好的差错控制、安全保障、传输消息管理等功能。PPP协议由两个主要的部件构成:LCP链路控制协议和NCP网络控制协议。它工作原理也是依赖这两个核心组件完成的。
nLCP的作用:主要负责两个网络设备之间链路的创建、维护、安全鉴别、完成通信后的链路终止等。
nNCP的作用:主要负责将许多不同的第三层网络协议报文,如TCP/IP、IPX/SPX、NetBEUI等进行封装,NCP工作在LCP阶段过后进行操作。
除此之外,PPP协议还可以作为后期应用扩展的一种基础协议,比如现今流行在DSL上的PPPOE协议就是PPP协议的一个扩展。在本小节不作多述,现在理解了PPP的两个核心组件LCP与NCP的定义,接下来我们需要详解LCP与NCP的具体工作过程,并取证这个工作过程。
理解并取证:PPP协议中LCP的工作原理
如下图8.14所示为PPP协议的核心组件LCP的工作原理示意图,在这个环境中将详细描述每一步的工作原理,并对照每一步的原理取出网络设备实时运行时的“数据帧”配合本书惯用的取证法来证实原理。
第一步:路由器R1作为发起PPP会话的初始设备,向路由器R2发出Configure-Request配置请求消息,也是发起方初始化LCP配置的第一步,路由器R1上会产生如下图8.15所示数据帧,可以看出处理PPP的LCP阶段。分析PPP协议的帧体部分,Address:0xff表示数据帧的“目的地址”字段,但是PPP是用于点对点链路的协议,一个链路上就只有两个通信点,所以这个字段在这里没有任何实在的意义,总是被设置为0xff,实际上就是二进制的11111111和十进制的255,表示广播。Control:0x03表示“控制字段”,0x03表示用于多种控制目的,在PPP中一般都是0x03。Protocol:LinkControl Protocol(0xc021)表示PPP数据帧中的“协议字段”,其中0xc021指示PPP协议正在使用LCP协议。常见的协议值如下表8.1所示。然后在PPPLink Control Protocol部分中有三个字段,分别是Code(代码)、Identifier(标识)、Length(长度),其中Code字段的值为0x01表示正在使用LCP中的Configure-Request配置请求消息,常见的代码值如下表8.2所示。Identifier表示“标识符字段”,用于匹配一个请求消息与回应消息的标签字段。使用一个唯一的数据表示,该环境是0x01,换而言之,Configure-Request配置请求消息与Configure-ACK配置确认回应消息中它们的Identifier值应该一样,这表示它们是一对完整的请求应答会话。Length表示长度字段,指示LCP数据帧中控制帧的长度,因为数据字段是可变的,以字节为单位,这里是10个字节的长度。Options为“选项字段”,其中有6个字节的Magic number值,该值用于检测环回链路和连接中的异常。
第二步:响应设备路由器R2收到路由器R1发来的Configure-Request配置请求消息后,处理LCP的请求并回送一个Configure-ACK配置确认消息,来完成LCP的配置,该回应消息的数据帧如下图8.16所示,该数据帧中各个字段的作用与意义在第一步中已做出详细的描述,所以在这里不再得复,但是需要注意是各个字段值的细小变化,这些值所对应的意义请参看表8.1和表8.2.
第三步:事实上在第一步和第二步完成后,LCP的初始配置阶段就完成了。在第三步中PPP的对等体,需要完成的是确定是否启用了安全机制,如果启动了安全机制,就进行安全鉴别和安全协商,然后是NCP对不同的三层协议进行封装,而本小节主要以讲解LCP的过程为重点,所以不在此处对LCP的安全鉴别和NCP的封装做详细描述,关于LCP的安全鉴别的详细过程请参看本章的“理解PPP的安全认证”部分,而关于NCP的具体封装过程请参看本书的“理解并取证:PPP协议中NCP的工作原理”部分。
注意:在这里的第三步,实际上是由多个会话过程完成,并且以LCP负责的安全鉴别和NCP负责的不同协议封装,但是笔者在图8.14的环境中描述关于LCP的工作原理中将多个步骤合并到一个步骤(也就是第三步),这是为了一种便于表达的方式。因为LCP还有其它的过程,而这些过程又必须在第三步以后才能进行,所以再次提示必须要有第三步的过程,才能更好的过渡到后面的过程,但事实上第三步又由后面小节所述的多个步骤来完成。
第四步:路由器R2会发起LCP的Echo-Request响应请求消息,用于链路的环回测试,其消息的数据帧如下图8.17所示,注意该消息是周期性间隔发送,起到链路测试的作用。
第五步:路由器R1收到R2发来的Echo-Request响应请求消息后,会回送Echo-Reply应答消息给路由器R2,来证实链路操作,该消息的数据帧如下图8.18所示。
第六步:PPP链路开始正式的数据收发。
第七步:当完成数据收发后,路由器R2会发出LCP的Terminate-Request链路终止请求,路由器R1如果确定终止链路则会发出Terminate-ACK确认终止,整个LCP的会话切断。关于Terminate-Request链路终止请求数据帧如下图8.19所示。
第三步:路由器R2收到路由器R1发来的NCP配置请求消息后,会回应给路由器R1一个关于NCP的Configure-ACK配置确认消息,以完成NCP过程的协商。该消息的具体数据帧如下图8.22所示。
R1(config-if)#encapsulation ppp
R1(config-if)#ip address 192.168.3.1255.255.255.252
R2(config-if)#encapsulation ppp
理解并取证:广域网上的PPP协议相关推荐
- 计算机网络:PPPoE(以太网上的PPP协议)
PPPoE(Point-to-Point Protocol over Ethernet) PPP协议处于OSI(Open Systems Interconnection)参考模型的第二层,即TCP/I ...
- HCIP --- HDLC和PPP协议
OSI七层参考模型每一层所对应的协议模型 1.物理层协议有:EIA/TIA-232,du EIA/TIA-499,V.35, V.24,RJ45, Ethernet, 802.3 2.数据链路层协议有 ...
- 【计算机网络原理·实验·第四章】PPP协议配置路由广域网接口抓包理解PPP协议的帧格式
理论部分:[计算机网络]第四章:数据链路层(Part1.数据链路层的三个基本问题&点到点信道的数据链路) GNS3,前接搭配好的实验环境:[计算机网络]第三章:使用GNS3和VMWare搭建实 ...
- 理解并取证:DLS网络架构和PPPOE数据帧
理解并取证:DLS网络架构和PPPOE数据帧 对应的教学录像在: http://edu.51cto.com/lecturer/user_id-7648423.html9.9发布,待管理员24小时审核后 ...
- ppp lcp协商报文有哪些_课后分享PPP协议第十三周
PPP协议 研学之旅 一起感受知识的魅力 01 课堂回顾 胡曦明老师对上节课任务(分组设计数据链路层点对点协议)进行回顾,以分析SLIP协议引导同学们学习协议设计优化过程,让同学们结合自己设计的协议进 ...
- 华为路由器:ppp协议
PPP(Point-to-Point Protocol),链路层协议.PPP是为了在点对点物理链路(例如RS232串口链路.电话ISDN线路等)上传输OSI模型中的网络层报文而设计的,它改进了之前的一 ...
- 广域网协议(HDLC协议和PPP协议)
2.1 HDLC(高级数据链路控制协议) 是一个在同步网上传输数据.面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Cont ...
- 数据链路层的PPP协议
互联网用户通常都要连接到某个ISP才能接入到互联网.PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议. PPP协议有三个组成部分: (1)一个将IP数据报封装到串行链路的方法.PPP既 ...
- ppp协议 java_PPP协议的应用-网络协议
PPP协议的应用 PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单.具备用户验证能力.可以解决IP分配等. www.2cto.com 家庭拨号上网就是通过PPP在用户端和运营商的接入服 ...
最新文章
- Linux中的可重入函数和不可重入函数
- shopnc 商城源码阅读笔记--开篇概述
- 最优的cuda线程配置
- shell--指“提供使用者使用界面”的软件(命令解析器)
- Transfomer入门:Self-attention + Multi-head Self-attention
- Java 反射取类中类_Java反射机制(二):通过反射取得类的结构
- 【转】转贴 poj分类
- 更新Android SDK之后Eclipse提示ADT版本过低的一个简易解决办法
- luogu题解P1967货车运输--树链剖分
- CrossPHP 1.5.5 发布了
- java毕向东练习题,java中的String类的练习(来自毕向东老师视频资料)
- Excel 行列转换的最简方法
- php-resque消息队列
- 虚拟机找不到网卡解决方法
- Ubuntu下与openvpx相关的目录和文件
- BadBoy乱码处理
- 怎么做 HDFS 的原地平滑缩容?
- hihoCoder 1272 买零食
- scikit-learn中评估分类器性能的度量,像混淆矩阵、ROC、AUC等
- 帧结构和物理资源(RB,PRB,VRB,REG,RBG)
热门文章
- 洛谷1941飞扬的小鸟
- SSM(springMVC-spring-mybatis)环境搭建-01-建立Maven-web项目
- NET仿微信Oauth2.0
- 洛谷P1020/CODEVS1044 导弹拦截(拦截导弹)
- 混沌图像---三翅鹰
- Load average in Linux的精确含义
- 好记性不如烂博客之 Quartz InterruptableJob 可拦截任务
- 使用System.IO.Packaging.Package进行文件压缩所产生的问题
- Vim - 容易忘记但又比较常用的操作 (之一)
- Android Studio停留在“Indexing paused due to batch update”的解决方案