• 网络之数据链路层(PPP协议)


    网络之数据链路层

    Author:onceday date:2022年7月20日

    1.引言

    数据链路层主要使用两种类型的信道:

    • 点对点信道,使用1对1的通信方式。

    • 广播信道,使用1对多的广播通信模式。

    链路(link)是从一个结点到相邻结点之间的一段物理线路,中间没有任何其他的交换结点。

    数据链路(data link),在链路通信,所需要的硬件和软件协议,总和在一起就构成了数据链路。也就是现在所属的网络适配器。

    数据链路层无需考虑物理层传输的细节,直接抽象成沿水平方向传递数据就好。

    数据链路层的协议必须考虑三个问题:

    • 封装成帧,在一段数据前后分别添加首部和尾部,进行帧定界。当检测到帧接收不完整时,可以直接丢弃。

    • 透明传输,需要对数据里可能涉及帧定界字符的字符进行转义,即字节填充或字符填充。这些数据对于数据链路层的协议来说就是透明的。

    • 差错控制。通信线路并非理想,传输过程可能出现差错。数据链路层广泛使用循环冗余校验CRC来进行检错。

    差错检测只是保证接受的帧几乎没有错误,但是还是会出现帧丢失、失序、重复等问题,因此是不可靠传输

    但对于通信质量较差的无线传输链路,数据链路层使用确认和重传机制。因此有线传输的通信质量已经挺好了,不确认、不重传可以提高效率。

    数据链路层网络中,协议数据单元PDU的大小是有限制的,以太网中为1500,PPP协议保持兼容一般也为1500.

    该限制特征被称为最大传输单元MTU,在包含所有链路的整个网络路径上,最小MTU称为路径MTU。

    2.点对点协议PPP

    ppp是一个协议集合,包含三部分:

    • 将IP数据报封装到串行链路的方法。

    • 一系列的链路控制协议(Link Control Protocol,LCP),用来建立、配置和测试数据链路连接。

    • 以及NCP(网络控制协议),每一个协议支持不同的网络层协议,如IP、OSI的网络层,DECnet,以及AppleTalk等。

    PPP对物理层链路有最低要求,即必须支持双向操作,以及异步或同步操作。

    ppp基本帧格式借用了HDLC的格式。

    1999年公布的PPP over Ethernet(PPPoe),工作在以太网中,可以把PPP帧在封装在以太网帧中。

    2.1 帧格式

    在这里插入图片描述

    • 标志字段用于帧定界,即收尾两个0x7E字符。

    • 地址和控制字段来自于HDLC协议,但在PPP中由于只有一个目的地和无需提供可靠服务。因此是固定的0xFF和0x03。该字段可通过地址和控制字段压缩(ACFC)的选项来省略他们。

    • 协议字段表示后面的数据类型,因为数据可能来自于网络控制协议NCP或者链路控制协议LCP以及网络层协议IP等。0x0021是IP数据报,0xC021是LCP的数据。协议字段压缩PFC可以减少长度到1字节。

    • 总信息长度MRU一般不超过1500。

    • FCS检验序列一般采用CRC-CCITT多项式:

      C R C − C C I T T = X 16 + X 12 + X 5 + 1 CRC-CCITT=X^{16}+X^{12}+X^5+1 CRCCCITT=X16+X12+X5+1

      默认为16位FCS,但可以通过LCP选项启用32位FCS。

    异步传输采用字节填充

    • 转义字符定义为0x7D(01111101)

    • 把数据段中出现的每一个0x7E字节转变成(0x7D,0x5E)序列

    • 把数据段中出现的每一个0x7D字节转变成(0x7D,0x5D)序列

    • 数据段中小于0x20的字符c,则改变成(0x7D,0x20+c)序列

    同步传输时使用位填充(零比特填充)

    • 即SONET/SDH链路,一连串的比特连续传输。

    • 扫描整个字段,只要有5个连续的1,立即填入一个0。即不会出现连续六个1的序列,0x7E(01111110)。

    2.2 LCP操作过程

    PPP协议的LCP分组:

    在这里插入图片描述

    代码字段给出了请求或响应的操作类型

    • 配置消息(开始基本配置,建立商定的选项)

    • 终止消息(清除一条链路)

    • 回送请求/应答消息(验证对方的操作)

    • 放弃请求消息(用于性能测试,丢弃没有响应的分组)

    • 标识和剩余时间消息(用于管理目的)

    标识字段是有LCP请求帧的发送方提供的序列号,并随每个后续消息进行递增。

    长度字段给出LCP分组的字节长度,这不是PPP协议的一部分。

    2.3 PPP协议工作状态

    在这里插入图片描述

    • 在鉴别阶段可进行用户身份认证。

    • NCP将根据网络层不同的协议进行配置,如IP协议将使用IP控制协议IPCP(IP Control Protocal)。

  • 相关阅读:
    HALCON: 对象(object)从声明(declaration)到结束(finalization)
    【深度优先】LeetCode1932:合并多棵二叉搜索树
    Qt QPixmap绘制一层透明度蒙版
    用两行代码实现重试功能,spring-retry真是简单而优雅
    SQL中的group by使用注意事项
    CentOS 挂载新磁盘以及磁盘扩容操作教程
    【LeetCode每日一题:799.香槟塔~~~模拟】
    naive-ui-admin跨域失败
    Java多线程篇(9)——AQS之读写锁(ReentrantReadWriteLock)
    Jmeter性能测试
  • 原文地址:https://blog.csdn.net/Once_day/article/details/125901558