计算机网络(三)—— 数据链路层(5):点对点协议PPP
计算机网络系列内容的学习目录→\rightarrow→谢希仁计算机网络学习系列内容汇总。
- 5. 点对点协议PPP
- 5.1 透明传输
- 5.2 差错检测
- 5.3 PPP协议的工作状态
- 5.4 总结
- 5.5 课后练习
5. 点对点协议PPP
■ 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
一般的英特网用户是如何接入到英特网的呢?
通常都是要通过连接到某个英特网服务提供者ISP,例如中国电信、中国联通、中国移动这三大运营商才能接入因特网。这些ISP已经从因特网管理机构申请到了一批IP地址,用户计算机只有获取到ISP所分配的合法IP地址后,才能成为因特网上的主机。用户计算机与ISP进行通信时,所使用的数据链路层协议,通常就是PPP协议。
PPPoE使得ISP可以通过DSL、电路调制解调器、以太网等宽带接入技术,以以太网接口的形式为用户提供接入服务。
另外点对点协议PPP也广泛应用于广域网路由器之间的专用线路。
■ PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准。
■ PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
⋄\diamond⋄ 1. 对各种协议数据报的封装方法(封装成帧)
⋄\diamond⋄ 2. 链路控制协议LCP:用于建立、配置以及测试数据链路的连接
⋄\diamond⋄ 3. 一套网络控制协议NCPs:其中的每一个协议支持不同的网络层协议
如上图所示,从网络体系结构的角度看,PPP是数据链路层的协议,将上层交付下来的协议数据单元封装成PPP帧。为了支持不同的网络层协议,PPP协议包含了一套网络控制协议NCP ,其中的每一个协议支持不同的网络层协议。例如,TCP/IP中的IP、Novell NetWare网络操作系统中的IPX、Apple公司的Apple Talk等。链路控制协议LCP用于建立、配置以及测试数据链路的连接。PPP协议能够在多种类型的点对点链路上运行,例如面向字节的异步链路、面向比特的同步链路。
上图所示的是PPP协议的帧格式,帧首部由4个字段构成,帧尾部由2个字段构成。各字段的长度以及帧的数据部分的最大长度如下图所示,帧首和帧尾部中的标志字段是PPP帧的定界符,取值为16进制的7E。帧首部中的地址字段取值为16进制的FF,控制字段取值为16进制的03。帧首部中的协议字段指明了帧的数据部分应送交哪个协议处理,当协议字段取值为16进制的0021时,PPP帧的数据部分就是IP数据;当协议字段取值为16进制的C021时,PPP帧的数据部分就是链路控制办议LCP的分组;当协议字段取值为16进制的8021时,PPP帧的数据部分就是网络控制协议NCP的分组。帧尾部中的帧检验序列FCS字段,其值是使用循环冗余校验CRC计算出的校验位,用于检查PPP帧是否存在误码。
5.1 透明传输
PPP协议是如何解决透明传输问题的?
当PPP帧的数据部分出现帧首和帧尾中的标志字段时,如果不采取措施,则会造成接收方对PPP帧是否结束的误判。因为标志字段是PPP帧的定界符,取值为16进制的7E,也就是二进制的01111110。
PPP协议实现透明传输的方法取决于所使用的链路类型。如果是面向字节的异步链路,则采用字节填充法,也就是插入转义字符;如果是面向比特的同步链路,则采用比特填充法,也就是插入比特0。
透明传输 —— 面向字节的异步链路采用插入转义字符的字节填充法。
透明传输 —— 面向比特的同步链路采用插入比特0的比特填充法。
5.2 差错检测
PPP协议是如何进行差错检测的?
PPP帧的尾部包含有1个两字节的帧检验序列FCS字段,使用循环冗余校验CRC来计算该字段的取值。采用的生成多项式如下图中所示。RFC1662文档的附录部分给出了FCS的计算方法的C语言实现。为了减少对CPU的占用,采用查表法来实现。
接收方每收到一个PPP帧,就要进行CRC检验。若CRC检验正确,就收下这个帧,反之就丢弃这个帧。使用PPP的数据链入层向上不提供可靠传输服务。
5.3 PPP协议的工作状态
PPP链路的开始和结束状态都是“静止”状态,这时并不存在物理层的连接。当检测到调制解调器的载波信号,并建立物理层连接后,PPP就进入链路的“建立”状态。这时链路控制协议LCP开始协商一些配置选项,若协商成功,则进入“鉴别”状态;若协商失败,则退回到“静止”状态。所协商的配置选项包括最大侦长、鉴别协议等。可以不使用鉴别,也可以使用口令鉴别协议PAP或挑战握手鉴别协议CHAP。若通信双方无需鉴别或鉴别身份成功,则进入网络状态;若鉴别失败,则进入终止状态。进入网络状态后,进行NCP配置,配置完成后就要进入“打开”状态。PPP链路的两端通过相互交换网络层特定的NCP分组来进行NCP配置。如果在PPP链路上运行的是IP协议,则使用IP控制协议IPCP来PPP链路的每一端配置IP模块,例如分配IP地址。只要链路处于“打开”状态,就可以进行数据通信。当出现故障或链路的一端发出终止请求时,就进入“终止”状态。当载波停止后,则回到“静止”状态。
5.4 总结
5.5 课后练习
1. PPP提供的功能有( D )
A. 一种成帧方法 B. 链路控制协议LCP C. 网络控制协议NCP D. 选项A,B和C都是
分析: PPP提供的功能有一种成帧方法、链路控制协议LCP和网络控制协议NCP。
2. PPP中的LCP帧起到的作用是( A )
A. 在“建立”状态阶段协商数据链路协议的配置选项 B. 配置网络层协议
C. 检查数据链路层的错误,并通知错误信息 D. 安全控制,保护通信双方的数据安全
分析: 链路控制协议LCP:用于建立、配置以及测试数据链路的连接。
3. 为实现透明传输(注:默认为异步线路),PPP使用的填充方法是( B )
A. 比特填充 B. 字符填充
C. 对字符数据使用字符填充,对非字符数据使用比特填充
D. 对字符数据使用比特填充,对非字符数据使用字符填充
分析: PPP协议实现透明传输的方法取决于所使用的链路类型。如果是面向字节的异步链路,则采用字节填充法,也就是插入转义字符;如果是面向比特的同步链路,则采用比特填充法,也就是插入比特0。
计算机网络(三)—— 数据链路层(5):点对点协议PPP相关推荐
- 【计算机网络】数据链路层:点对点协议PPP
对于点对点链路,目前使用最为广泛的数据链路层协议是点对点协议PPP. PPP的特点: 简单:接受方接受到一个帧就进行CRC检验.正确收下,否则丢弃. 封装成帧:保证数据传输的透明性. 多种网络层协议: ...
- 【计算机网络笔记】数据链路层:点对点协议PPP
ppp的介绍: 点对点协议PPP(point-to-Point Protocl)是目前使用最广泛的点对点数据链路层协议. 问题:因特网用户如何接入因特网? 通过连接到某个因特网服务提供者ISP,这些I ...
- 【计算机网络】第三章 数据链路层的共同问题、点对点协议PPP
文章目录 3 数据链路层 3.1 数据链路层的共同问题 3.2 点对点协议PPP (Point to Point Protocol) 3.2.1 PPP协议的特点 3.2.2 PPP帧的格式 3 数据 ...
- 【计算机网络】数据链路层(五)—— 广域网(PPP 协议与 HDLC 协议)
[计算机网络]数据链路层(五)-- 广域网(PPP 协议与 HDLC 协议) 一.广域网 二.PPP 协议 PPP协议应满足的要求 PPP协议的三个组成部分 PPP协议的帧格式 三.HDLC 协议 H ...
- 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC
PPP协议和HDLC协议 PPP协议和HDLC协议 一.广域网 二.PPP协议 2.1 PPP协议的特点 2.2 PPP协议应满足的要求 2.3 PPP协议无需满足的要求 2.4 PPP协议的三个组成 ...
- 计算机网络之数据链路层局域网、以太网及其PPP协议HDLC协议【408_4】
一.局域网基本概念和体系结构 (一)局域网 局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道. 特点: ①.特点1:覆盖的地理范围 ...
- 【计算机网络】数据链路层(三)—— 介质访问控制
[计算机网络]数据链路层(三)-- 介质访问控制 一.什么是介质访问控制 二.静态划分信道 (一)信道划分介质访问控制 1. 频分多路复用(FDM) 2. 时分多路复用(TDM) 3. 波分多路复用( ...
- 数据链路层协议之点对点协议 PPP
文章目录 点对点协议 PPP 1.PPP 协议应满足的需求 2.PPP 协议不需要的功能 3.PPP 协议的组成 4.PPP 协议的帧格式 5.透明传输问题 零比特填充 字符填充 不提供使用序号和确认 ...
- 数据链路层(2.点对点协议PPP)
对于点对点协议(还有一种是广播信道),使用最广泛的数据链路层协议就是点对点协议PPP. 当用户上网时,需要连接到某个ISP才能接入到互联网.PPP协议就是用户计算机和ISP之间进行通信所使用的数据链路 ...
最新文章
- C++ .h(头文件) 与 .cpp(源文件) 的使用
- HTMLCanvasElement.toDataURL()
- 利用Directsound编程实现实时混音
- mysql流量控制_Daloradius限制上网流量
- python 浏览器,轻量级Python Web浏览器
- shell中的括号(小括号,中括号,大括号/花括号)
- python数据结构剑指offer-从尾到头打印链表
- Android项目目录结构中各个文件夹的作用
- Android+WebServer的GPS监控系统(设想)
- GPS信号防丢失、干扰和欺骗——基于雷达的解决方案
- 斯特林公式 (Stirling公式)
- 在aspx页面显示一张完整的RDL报表
- java毕业设计——基于java+JSP+MySQL的健身俱乐部会员管理系统设计与实现(毕业论文+程序源码)——健身俱乐部会员管理系统
- 【MML】华为MML AAA接口联调,Java版本
- Android Studio修改工程项目名称以及修改包名
- AliOS Things 编译体系
- 《 iOS 应用逆向工程》作者沙梓社专访:运用逆向工程思维来优化自己的产品
- 在socket 中使用域名
- jQuery仿QQ空间图片查看特效(全屏,放大,缩小,旋转,镜像,鼠标滚轮缩放)
- 【Axure教程】中继器表格自动合计模板