• 计算机网络协议,PPP协议分析


    一、基本特点

    1.PPP协议是计算机网络体系中第二层(数据链路层)的协议

    2.PPP帧格式是以HDLC帧格式为基础,做了很少的改动(区别:PPP是面向字符的,而HDLC是面向位的)

    3.PPP协议使用了LCP协议和NCP协议。用LCP(链路控制协议)来建立、设定和测试数据链路连接。用NCP(网络控制协议)给不同的网络层协议建立连接以及配置它们。

    二、必备特点与功能

    1.简单

    2.封装成帧

    3.差错控制

    5.流量控制

    6.接入控制 ===> 实际上就是LCP链路控制协议

    7.透明性 ===>发送方接受什么数据,接收方就接收什么数据

    8.多种网络层协议 ===> 支持多种上层协议

    9.多种类型的链路 ===> 可以支持串行、并行等等链路层协议

    10.检测连接状态

    11.最大传送单元

    12.网络层地址协商

    13.数据压缩协商

    三、不需要的功能

    .纠错 ===> 能够查错就行,不必具备纠错(改错)的功能

    流量控制 ===> 因为是两点间的通信,所以不需要进行流量控制来实现负载均衡

    ·序号

    ·多点线路

    ·半双工或单工链路 ===> PPP协议是全双工

    四、PPP协议的组成

    1.将IP数据报封装到串行链路的方法

    2.链路控制协议LCP(Link Control Protocol)

    3.网络控制协议 NCP(Network Control Protocol)

    五、PPP帧格式

    =======================================================================================================

    帧头、帧尾 ===> 各占1byte; 这两字段都是7E,也就是说7E是PPP帧的开始与结尾的标志

    =======================================================================================================

    地址字段(A) ===> 1byte; 该字段尚未被用到(点到点通信,不需要寻址过程),固定为 1111 1111

    =======================================================================================================

    控制字段(C) ===> 1byte; 该字段尚未被用到,为后续准备,固定值为 0000 0011

    =======================================================================================================

    协议字段 ===> 2byte; 指明该帧封装数据类型

    协议字段由两个字节组成。字段中第八位必须是0,最后一位必须为1。若不符合这些规则,则被视为带有不被承认的协议

    在范围“0x0***“到“0x3***“内的协议字段,标志着特殊数据包的网络层协议

    在范围“0x8***·到“0xb***”内的协议字段,标志着数据包属于网络控制协议(NCP)

    在范围“0x4***“到“0x7***“内的协议字段,用于没有相关NCP的低通信量协议

    在范围“0xc***“到“0xf***”内的协议字段,标志着使用链路层控制协议(LCP)的包

    • 0xC021链路控制协议LCP(Link control protocol)
    • 0xC023密码认证协议PAP(Password authentication protocol)
    • 0xC025链路品质报告Link Quality Report
    • 0xC223挑战握手验证协议CHAP(Challenge handshake authentication protocol)
    • 0x8021IP控制协议IPCP(Internet protocol control protocol)
    • 0x0021 Internet protocol(IP)
    • 0x0001填料协议(Padding Protocol)
    • 0x0003~0x001F reserved(transparency inefficient)保留(透明度效率低的)
    • 0x007Dreserved(Control Escape)保留(控制逃逸)
    • 0x00CF reserved(PPP NLPID)保留(PPP NLPID)
    • 0x00FF reserved(compression inefficient)保留(压缩效率低的)
    • 0x8001~0x801F未使用
    • 0x807D未使用
    • 0x80CF未使用
    • 0X8OFF未使用

    =======================================================================================================

    信息部分 ===> 数据报,长度不固定,不超过1500 byte

    =======================================================================================================

    FCS ===> 2byte; 使用CRC的帧检验序列FCS

    =======================================================================================================

    六、注意事项

    我们知道,PPP协议规定,7E是PPP帧的开始及结尾标记,那么如果数据中出现7E字段,该如何呢?处理方法取决于PPP协议的传输类型——异步传输 VS 同步传输

    1.当传输类型是异步传输时

    异步传输:按字符传输,单位是字符,速率教慢

    将转义符定义为0x7D(即01111101),并使用如下字节填充法:

    (1)把信息字段中出现的每一个0x7E字节转变成为2字节序列(0×7D,0x5E)

    (2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成为2字节序列(0x7D,0x5D)

    (3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变

    由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息

    2.当传输类型是同步传输时

    同步传输:按一连串的比特位连续传输,单位是帧,速率较快

    PPP协议用在SONET/SDH链路时,使用同步传输方式;在这种情况下,PPP协议采用零比特填充方法来实现透明传输:

    透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的

    在发送端,先扫描整个信息字段(通常用硬件实现,但也可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入一个0。接收端在收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除,以还原成原来的信息比特流

    六、用途

    互联网用户都要连接到某个ISP才能接入到互联网,PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议

  • 相关阅读:
    JDBC
    Linux下的tar压缩解压缩命令详解
    Shell编程介绍
    SSH服务认证类型介绍
    SSH介绍及连接原理
    MySQL引擎之innodb介绍及特点
    myisam 存储引擎介绍及特点
    maven项目依赖中报错Plugin ‘org.apache.maven.plugins:maven-compiler-plugin:’ not found
    List调用add方法报错java.lang.UnsupportedOperationException
    C基础
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700440.html
Copyright © 2020-2023  润新知