• 点对点协议PPP


    点到点数据通信

    点对点协议 PPP

    **PPP 协议的特点 **

    • 现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
    • 用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。

    PPP协议使用场合

    用户到ISP的链路使用PPP协议。该协议可以验证用户身份并且自动分配IP地址。

    image-20200117213614813

    PPP 协议应满足的需求

    • 简单——这是首要的要求
    • 封装成帧
    • 透明性
    • 多种网络层协议
    • 多种类型链路 (可以是光纤,双绞线等)
    • 差错检测
    • 检测连接状态
    • 最大传送单元
    • 网络层地址协商
    • 数据压缩协商

    PPP 协议不需要的功能

    • 纠错
    • 流量控制
    • 序号
    • 多点线路
    • 半双工或单工链路

    PPP 协议的组成

    • 1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准[RFC 1661]。

    • PPP 协议有三个组成部分

      • 一个将 IP 数据报封装到串行链路的方法。
      • 链路控制协议 LCP (Link Control Protocol)。建立并维护数据链路连接。
      • 网络控制协议 NCP (Network Control Protocol)。 允许在点到点连接上使用多种网络层协议,如图所示:

      image-20200117214747143

      PPP 协议的帧格式

      image-20200117215020467

      • 十六进制的7E,用二进制表示为0111 1110 表示帧头;帧尾也为7E;

      • 十六进制的FF是目标地址,在点到点线路中这是固定的,(因为只有两头,一头发出,只有另一头接收一种可能)。

      • 十六进制的03也是固定的;

      • PPP 有一个 2 个字节的协议字段:标识信息部分是什么内容。(如快递外面的分类标签)

        • 当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。
        • 若为 0xC021,则信息字段是 PPP 链路控制数据。
        • 若为 0x8021,则表示这是网络控制数据。
        • 若为 0xC023,则表示信息字段是安全性认真PAP。
        • 若为 0xC025,则表示信息字段是LQR。
        • 若为 0xC223,则表信息字段是安全性认证CHAP。
      • 2字节的FCS为帧检验序列


    透明传输问题

    问题:信息字段中出现了标志字段的值,可能会被误认为是“标志位”,这时应该怎么办?

    • 当 PPP 用在同步传输(传输的可能是比特流)链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)即零比特填充
    • 当 PPP 用在异步传输(传输的是字节)时,就使用一种特殊的字节填充法

    字节填充

    • 将信息字段中出现的每一个 0x7E(即以7E结尾的数据) 字节转变成为 2 字节序列 (0x7D, 0x5E)。
    • 若信息字段中出现一个 0x7D 的字节(即以7D结尾的数据), 则将其转变成为 2 字节序列 (0x7D, 0x5D)。
    • 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。

    零比特填充

    image-20200117220754549

    这样就不会产生歧义,解决了透明传输的问题。


    PPP协议不提供使用序号和确认的可靠传输

    PPP 协议之所以不使用序号和确认机制是出于以下的考虑:

    • 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
    • 在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
    • 帧检验序列 FCS 字段可保证无差错接受。

    PPP协议的工作状态

    • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
    • PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
    • 这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
    • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

    image-20200117224018324

  • 相关阅读:
    iOS开发系列--通知与消息机制(转)
    iOS Storyboard全解析(转)
    在IOS代码中使用UNIX命令
    如何用代码实现iPhone手机软件注销和手机重启
    ios多线程开发 GCD常见用法
    ios多线程开发 GCD的基本使用
    ios错误码:NSError对象.code
    iOS9 HTTP请求失败
    (转)空指针和野指针
    (转)ARC指南
  • 原文地址:https://www.cnblogs.com/AhuntSun-blog/p/12212458.html
Copyright © 2020-2023  润新知