计算机网络系列内容的学习目录→\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相关推荐

  1. 【计算机网络】数据链路层:点对点协议PPP

    对于点对点链路,目前使用最为广泛的数据链路层协议是点对点协议PPP. PPP的特点: 简单:接受方接受到一个帧就进行CRC检验.正确收下,否则丢弃. 封装成帧:保证数据传输的透明性. 多种网络层协议: ...

  2. 【计算机网络笔记】数据链路层:点对点协议PPP

    ppp的介绍: 点对点协议PPP(point-to-Point Protocl)是目前使用最广泛的点对点数据链路层协议. 问题:因特网用户如何接入因特网? 通过连接到某个因特网服务提供者ISP,这些I ...

  3. 【计算机网络】第三章 数据链路层的共同问题、点对点协议PPP

    文章目录 3 数据链路层 3.1 数据链路层的共同问题 3.2 点对点协议PPP (Point to Point Protocol) 3.2.1 PPP协议的特点 3.2.2 PPP帧的格式 3 数据 ...

  4. 【计算机网络】数据链路层(五)—— 广域网(PPP 协议与 HDLC 协议)

    [计算机网络]数据链路层(五)-- 广域网(PPP 协议与 HDLC 协议) 一.广域网 二.PPP 协议 PPP协议应满足的要求 PPP协议的三个组成部分 PPP协议的帧格式 三.HDLC 协议 H ...

  5. 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC

    PPP协议和HDLC协议 PPP协议和HDLC协议 一.广域网 二.PPP协议 2.1 PPP协议的特点 2.2 PPP协议应满足的要求 2.3 PPP协议无需满足的要求 2.4 PPP协议的三个组成 ...

  6. 计算机网络之数据链路层局域网、以太网及其PPP协议HDLC协议【408_4】

    一.局域网基本概念和体系结构 (一)局域网 局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道. 特点: ①.特点1:覆盖的地理范围 ...

  7. 【计算机网络】数据链路层(三)—— 介质访问控制

    [计算机网络]数据链路层(三)-- 介质访问控制 一.什么是介质访问控制 二.静态划分信道 (一)信道划分介质访问控制 1. 频分多路复用(FDM) 2. 时分多路复用(TDM) 3. 波分多路复用( ...

  8. 数据链路层协议之点对点协议 PPP

    文章目录 点对点协议 PPP 1.PPP 协议应满足的需求 2.PPP 协议不需要的功能 3.PPP 协议的组成 4.PPP 协议的帧格式 5.透明传输问题 零比特填充 字符填充 不提供使用序号和确认 ...

  9. 数据链路层(2.点对点协议PPP)

    对于点对点协议(还有一种是广播信道),使用最广泛的数据链路层协议就是点对点协议PPP. 当用户上网时,需要连接到某个ISP才能接入到互联网.PPP协议就是用户计算机和ISP之间进行通信所使用的数据链路 ...

最新文章

  1. C++ .h(头文件) 与 .cpp(源文件) 的使用
  2. HTMLCanvasElement.toDataURL()
  3. 利用Directsound编程实现实时混音
  4. mysql流量控制_Daloradius限制上网流量
  5. python 浏览器,轻量级Python Web浏览器
  6. shell中的括号(小括号,中括号,大括号/花括号)
  7. python数据结构剑指offer-从尾到头打印链表
  8. Android项目目录结构中各个文件夹的作用
  9. Android+WebServer的GPS监控系统(设想)
  10. GPS信号防丢失、干扰和欺骗——基于雷达的解决方案
  11. 斯特林公式 (Stirling公式)
  12. 在aspx页面显示一张完整的RDL报表
  13. java毕业设计——基于java+JSP+MySQL的健身俱乐部会员管理系统设计与实现(毕业论文+程序源码)——健身俱乐部会员管理系统
  14. 【MML】华为MML AAA接口联调,Java版本
  15. Android Studio修改工程项目名称以及修改包名
  16. AliOS Things 编译体系
  17. 《 iOS 应用逆向工程》作者沙梓社专访:运用逆向工程思维来优化自己的产品
  18. 在socket 中使用域名
  19. jQuery仿QQ空间图片查看特效(全屏,放大,缩小,旋转,镜像,鼠标滚轮缩放)
  20. 【Axure教程】中继器表格自动合计模板

热门文章

  1. 会p图的程序猿---ps基础(人像修图)
  2. 猿创征文|基于物联网的门禁与考勤系统_阿里云_2022
  3. SAP-MM-PA精解分析系列之基本介绍(02) -组织架构
  4. 使用IntelliJ IDEA连接MySQL数据库并进行初步测试
  5. GitHub图标SVG版本
  6. J2EE开发平台:Eclipse之Appfuse浅析
  7. SqlServer 创建指定访问视图的账号
  8. 文件夹里有却搜索不到?Win11搜索不到文件的解决方法
  9. egg设置cookie
  10. 美客多卖家攻略:养号技巧分享