计算机网络期末复习笔记(并不犯困版+大白话版)-第三章 数据链路层

目录:

计算机网络期末复习笔记(并不犯困版+大白话版)-CSDN博客


前期理解:

数据链路层 核心传输单位 是,上层交给它的是数据,它把数据封装成帧再发送。

数据链路层不提供数据的可靠传输服务。

  1. 数据链路层工作在相邻节点之间

  2. 网络中主机、路由器、交换机等设备都要实现数据链路层功能

    主机从 应用层 层层传递到物理层需要经过链路层;

    交换机在解封和重新封装时,最高层时链路层;

    路由器也一样,最高层为网络层,必然经过链路层。

  3. 不同链路层可能采用不同协议,所以帧格式不一定相同

  4. 从链路层看,关心的是"帧怎么在链路上流动",不关心更上层细节

二、数据链路层主要解决三个问题:

  1. 封装成帧

  2. 透明传输

  3. 差错检测

主要讲几个内容:

三个核心问题

  1. 封装成帧

    • 如何加帧头帧尾

    • 如何做帧定界

  2. 透明传输

    • 数据中如果出现帧定界标志(明明是数据里面的内容,却被误当成了帧定界符),怎么办
  3. 差错检测

    • 传输过程中帧是否出错,出错如何处理

一、数据链路层概述

1.在数据链路层中传输的数据单位(协议数据单元PDU)

2.数据链路层的两类信道

  1. 点对点信道

    • 一对一通信

    • 代表协议:PPP PPP 是点对点链路的代表协议。

      1. 应用场景

        • 用户通过ppp协议向 ISP(网络服务提供商) 获得 IP 地址,再进行数据传输
      2. PPP 帧格式

        • 帧定界符:0x7E

        • 地址字段:0xFF

        • 控制字段:0x03

        • 协议字段:2 字节

        • 信息字段:可变长,通常不超过 1500 字节

        • FCS:帧校验序列

      3. PPP 协议字段常考值

        • 0x0021:IP 数据报

        • 0x8021网络控制数据NCP

        • 0xC021链路控制数据LCP

        • 0xC023鉴别数据PAP 认证

        • 0xC223鉴别数据CHAP 认证

      4. PPP 的特点

        • PPP 是面向字节的,所有的PPP 帧的长度都是整数字节。

        • 典型 MTU最大传送单元 为 1500 字节

      5. PPP 的透明传输

        1. 异步传输

          • 字节填充
        2. 同步传输

          • 零比特填充
        3. 字节填充重点

          这种方法用于以特殊字符(如 7E)作为帧的边界。

          为了防止数据内容中也出现 7E 导致误判帧结束,需要对特殊字符进行转义。

          • 规则

            • 7E 被转义为 7D 5E

            • 7D(转义字符本身)被转义为 7D 5D

          • 例子

            • 发送的数据:7D 5E FE 27 7D 5D 7D 5D 65 7D 5E

            • 转换过程

              • 7D 5E 是转义后的结果,还原为 7E

              • FE 27 正常数据,保持不变。

              • 7D 5D 是转义后的结果,还原为 7D

              • 7D 5D 是转义后的结果,还原为 7D

              • 65 正常数据,保持不变。

              • 7D 5E 是转义后的结果,还原为 7E

            • 结论 :还原后的"真正的数据"应该是:7E FE 27 7D 7D 65 7E

        4. 零比特填充重点

          这种方法用于比特流传输,以 01111110 作为帧定界符。

          为了防止数据内容中出现连续的 6 个 1(从而被误判为定界符),需要在数据中强制插入 0。

          • 规则 :只要发现连续的 5 个 1 ,无论后面紧跟的是什么,都在后面强制插入一个 0

          • 例子

            • 原数据:01101111111111100

            • 寻找过程

              1. 前 5 位 01101 (没有连续 5 个 1)

              2. 接着读到 11111 (发现 5 个 1 了!)

              3. 插入 0 ,变成 0110111110 11111...

              4. 继续往后看,又遇到 11111 (又是 5 个 1!)

              5. 再插入 0 ,变成 ...111110111110 00

            • 结果 :填充后的数据为 011011111011111000

      6. PPP 的工作状态 PPP 连接建立过程可以记成:

        • 先建物理链路

        • 再建 LCP

        • 再做认证

        • 再做 NCP

        • 断开时反过来释放

        物理层连接建立 ->LCP 配置协商

        ->鉴别

        • 成功或无需鉴别后进入下一步

        ->NCP 配置协商

        • 分配临时 IP 地址

        ->链路打开后开始通信

        ->通信结束后:

        • 先释放 NCP

        • 再释放 LCP

        • 最后释放物理连接

  2. 广播信道

    • 一对多通信

    • 需要共享信道协调机制

    • 代表:以太网

      1. 以太网属于广播信道

      2. 目前是最常用的局域网技术

      3. 主要标准:

        • DIX Ethernet V2

        • IEEE 802.3

      4. 以太网体系结构

        • 物理层

        • 数据链路层

      5. 以太网帧格式

        • 以太网 MAC 帧的最小有效数据长度要满足要求

        • 数据太短会补齐到最小长度

        1. 以太网帧中目的地址和源地址都是 MAC 地址

          • 长度:48 位
        2. 以太网帧各部分

          • 前同步码:7 字节

          • 帧开始定界符:1 字节

          • 目的地址:6 字节

          • 源地址:6 字节

          • 类型:2 字节

            以太网类型字段常考值

            • 0x0800:IPv4

            • 0x0806:ARP

            • 0x8100:802.1Q VLAN

            • 0x86DD:IPv6

          • 数据:46 ~ 1500 字节

          • FCS:4 字节

        3. FCS 使用 CRC

      6. 以太网中的通信方式

        1. 单播

          • 一对一
        2. 组播/多播

          • 一对多
        3. 广播

          • 一对所有

        如何判断?

        • 看目的 MAC 地址

        • 广播地址FF-FF-FF-FF-FF-FF

        • 单播和组播的区别:

          • 看目的地址第一个字节的最低位

          • 0:单播

          • 1:组播

          2)解析:目的地址的第一个字节是 54 ,54写成二进制->

          复制代码
           5 = 0101
           4 = 0100

          合起来是:0101 0100,最低为是0->单播

      7. 以太网的几个重要特征

        1. 以太网上以为单位传输

        2. 以太网上传送帧时,各帧之间要求必须有一定的间隔;

          接收端只要找到帧开始定界符,后面连续的比特流就是同一帧,因此不需要帧结束符,也不需要使用字节插入保证透明传输。

        3. 帧间最小间隔

          • 9.6 μs ,相当于 96 bit 发送时间
        4. 帧封装由网卡(网络适配器)完成

        5. 网卡根据目的 MAC 地址决定是否接收:

          网卡接收到数据后,根据帧中的目的MAC地址来判断是否由自己接收。


二、差错检测

  1. 常用指标误码率 BERBit Error Rate

    • 含义:传输错误的比特 占 总比特数 的比例

    • 和信噪比关系很大

  2. 数据链路层的差错处理方式

    • 在帧尾添加 装帧校验序列FCS

    • 接收端用 FCS 做检错

    • 检出错误后通常直接丢弃不向发送端反馈

      ->所以数据链路层不提供可靠传输服务

  3. 常见校验码

    • CRC 循环冗余码

    • 特点:

      • 只能检错

      • 不能纠错

      • 不能保证可靠传输

    • CRC 循环冗余码计算步骤 考试很爱考计算题,步骤一定要清楚:

      1. 已知原始数据 M 和生成多项式 P

      2. 设生成多项式最高幂为 n

        • 那么冗余码位数就是 n
      3. 将原始数据 M 左移 n 位->也就是后面补 n 个 0

      4. 用这个结果 除以(进行二进制除法) 生成多项式 P

      5. 得到的余数就是冗余码 R

        • 如果余数不足 n 位,前面补 0

      补例题:


三、Wireshark 抓包

  1. Wireshark 是常用抓包工具

  2. 作用:读取网络接口上的数据包并按协议分析

常用过滤

  1. 地址过滤

    • ip.dst == 192.168.101.8

      destination->目的地

    • ip.src == 1.1.1.1

      source源头->源地址

  2. 协议过滤

    • http
  3. 端口过滤

    • tcp.port == 80

    • tcp.dstport == 80

    • tcp.srcport == 80

  4. 多条件过滤

    • andor

四、以太网的发展与组网

  1. 以太网发展很快

    • •标准以太网:10base-2、10base-5、10base-T

      •快速以太网:100base-TX、100base-T4、100base-FX

      •吉以太网网:1000base-SX、1000base-LX、1000base-CX、1000base-T

      •10G以太网:10Gbase-SR、10Gbase-LR、10Gbase-ER、10Gbase-CX4、10Gbase-T

      •40G以太网、100G以太网、200G以太网、400G以太网......

  2. 一个重要结论

    • 以太网技术不断发展,但帧格式基本不变
  3. 早期以太网与碰撞

    1. 以太网早期:

      •使用 同轴电缆(10base-5、10base-2)作为传输介质 组建 总线型拓扑网络,数据 以广播的方式在传输,必然会存在碰撞的情况。

      •使用 双绞线 作为传输介质,集线器作为 中央转发设备组建的星型网络,由于集线器也是以广播的方式发送数据,所以也会产生碰撞。

      •我们把这种类型的以太网习惯称为 共享式以太网 ,它们工作在半双工下。

  4. 解决碰撞问题------CSMA/CD

    共享式以太网 用 CSMA/CD 解决碰撞问题。

    CSMA/CD工作原理可以概括如下:

    1:先听后说,边听边说

    2:一旦冲突,立即停说

    3:等待时机,然后再说

    CSMA/CD 的基本过程

    1. 先监听信道

    2. 如果信道空闲,等待 96 bit 时间后再发送(确保安全)

    3. 发送过程中继续检测碰撞

      如果检测到碰撞:

      • 停止发送->发送干扰信号->等待随机时间->按二进制指数退避算法重发

    重点

    • 只适用于共享式以太网、半双工环境

    • 全双工下不发生碰撞

  1. 最短有效帧长

    1. 10 Mbps 以太网争用期:

      • 51.2 μs

      以太网的 端到端往返传输时延 2τ 称为争用期

    2. 在争用期内可发送的比特数:

      • 51.2 μs × 10 Mbps = 512 bit = 64 字节
    3. 结论:

      • 最短有效帧长 = 64 字节

      • 小于 64 字节的帧通常认为是碰撞导致的无效帧

  2. 以太网扩展设备

    1. 物理层设备

      • 中继器

      • 集线器

      • 特点:只做信号转发,不解封装,工作在物理层
    1. 数据链路层设备

      • 网桥
      • 交换机
      • 特点:根据 MAC 地址表 转发,查表依据是目的 MAC 地址,工作在数据链路层

      • 问1:交换机工作时会不会有碰撞出现?

        工作在半双工时,会出现碰撞,使用CSMA/CD解决。

        工作在全双工时,不会出现碰撞。

        习惯于把使用交换机组网的以太网 称为交换式以太网

      • 问2:网络中环路存在的意义?

        环路存在会对网络产生什么负面影响?

        怎么解决这种负面影响?

        ->

        Ø 环路存在的意义:起到冗余备份的作用。

        Ø 环路的负面影响:数据在环中循环发送 ,会导致广播风暴

        Ø 解决环路的问题:STP(IEEE802.1D)

      • 问3:在没有采取任何措施的情况下,一个广播包能够到达的范围(广播域)有多大?

        如何限制广播域的范围?

        ->

        Ø 广播域范围 是 所有交换机连接的网络范围

        Ø 限制广播域的方法:对网络划分不同的VLAN(IEEE802.1Q,虚拟局域网),将广播域限制在一个VLAN中

      • 问4:划分VLAN后,交换机怎么判断接收的数据属于哪一个VLAN?

        ->

        虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为 VLAN 标记 (tag);

        用来指明发送该帧的计算机属于哪一个虚拟局域网。

        插入 VLAN 标记得出的帧 称为 802.1Q 帧带标记的以太网帧

        802.1Q 标记结构

        • 4 字节

        • 其中 VLAN ID 为 12 位

        • 可支持 4096 个 VLAN

        • 还包含用户优先级 PRI、CFI 等信息

        1. 插入 VLAN 标记后

          • 最大帧长从 1518 字节 变成 1522 字节
  3. Access 端口与 Trunk 端口

    1. Access 端口

      • 连接计算机

      • 只能属于一个 VLAN

      • 发送不带标签的帧(untagged)

    2. Trunk 端口

      • 交换机之间连接

      • 可以属于多个 VLAN

      • 必须打标签(tagged)

      • 用于跨交换机传输同一 VLAN 的数据

  4. VLAN 间与跨交换机通信

    1. Access 口 :只给电脑用的,因为电脑不懂 VLAN。它连接时会把 VLAN 标签去掉。

    2. Trunk 口 :只给交换机之间用的。它能同时传多个 VLAN 的数据,方法是给数据贴上"标签",防止弄混。

    结论

    • 相同 VLAN 跨交换机 :因为交换机之间必须能识别多部门(多 VLAN)数据,所以必须用 Trunk(贴标签),不能用 Access(因为 Access 会强行把标签撕掉,导致数据混乱或丢失)。

    • 不同 VLAN 通信:VLAN 本质上就是为了"互不干扰",想跨部门交流,必须找"三层设备(路由器)"做路由转发,这是规则。

  5. 以太网宽带接入

    1. 以太网宽带接入特点

      • 双向宽带通信

      • 可灵活升级带宽

      • 可实现端到端以太网传输

      • 中间不必转换帧格式

    2. 缺点

      • 不支持用户身份鉴别
    3. PPPoE

      •PPP over Ethernet:在以太网上运行 PPP。

      将 PPP 帧封装到以太网中来传输。现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。