博客
关于我
Linux运维之道之网络基础学习1.3
阅读量:792 次
发布时间:2023-02-05

本文共 1181 字,大约阅读时间需要 3 分钟。

网络基础1.3

数据链路层解析

数据链路层位于物理层与网络层之间,是OSI模型中最下面的层。它负责实现与物理层的通信,完成数据的帧传输、帧同步以及帧差错检测等功能。

数据链路层的功能

  • 数据链路的建立、维护与拆除
  • 帧包装、帧传输与帧同步
  • 帧的差错恢复
  • 流量控制
  • 以太网概述

    以太网是我们日常使用的局域网技术,主要工作在数据链路层。以太网的核心设备是交换机,通过MAC地址实现节点间的通信。

    以太网MAC地址

    MAC地址用于识别以太网上的设备或设备组。它由48位二进制组成,通常表示为六个冒号分隔的双字节。

    802.3以太网帧格式

    以太网帧格式包含以下字段:

    • 帧头:包含目标MAC地址和源MAC地址。
    • 地址位:用于标识帧中包含多个地址的情况。
    • 长度/质量位:用于标识帧的长度及是否存在错误。
    • 数据字段:包含实际数据。
    • 循环校验码(FCS):用于检测帧是否完整且数据无误。

    数据链路层的两个子层

    数据链路层可以划分为两个子层:介质访问控制子层(MAC)逻辑链路控制子层(LLC)

    介质访问控制子层(MAC)

    MAC子层的主要功能包括:

  • 将上层交下来的数据包装成以太网帧进行发送。
  • 实现和维护与物理介质通信的协议。
  • 执行比特差错检测。
  • 管理MAC地址表,实现节点间的寻址。
  • 逻辑链路控制子层(LLC)

    LLC子层的功能包括:

  • 建立和释放数据链路层的逻辑连接。
  • 提供与上层网络层的接口。
  • 为帧添加序号,支持流量控制。
  • 以太网交换机

    以太网交换机是局域网中的核心设备,负责数据帧的转发。其工作原理基于MAC地址表来实现数据的智能转发。

    交换机的工作原理

  • MAC地址学习:通过接收数据帧,学习目标设备的MAC地址并更新MAC地址表。
  • 广播未知数据帧:如果目标MAC地址未在表中,向所有端口广播数据帧。
  • 接收方回应:接收到广播的设备会向交换机发送回应信息。
  • 单波通信:根据MAC地址表完成数据帧的单波转发。
  • MAC地址表的更新

  • 老化时间:MAC地址表的老化时间通常为300秒。
  • 动态更新:当交换机接收到来自不同端口的帧时,会重新学习目标MAC地址。
  • 单工、半双工、全双工

    单工

    • 只有一个信道,数据传输方向单向。

    半双工

    • 同一信道,数据传输方向单向。

    全双工

    • 具有双信道,支持双向数据传输。

    冲突处理

    • 在多个设备共享同一信道时,可能会产生冲突。
    • 交换机通过分割冲突域(背板交换矩阵结构)实现全双工通信,避免冲突。

    广播域与冲突域

    • 广播域:接收到同一广播消息的所有节点集合。
    • 冲突域:在以太网中,交换机分割冲突域但不分割广播域。

    交换机的内部交换方式

    存储转发

    • 最常用方式,支持错误检测,但延迟较大。
    • 适用于不同速率端口间的数据转换。

    快速转发

    • 延迟小,但不支持错误检测。
    • 适用于对延迟敏感的场景,但易丢包。

    分段过滤

    • 检查数据包长度是否为64字节(以太网帧),丢弃短包或假包。

    转载地址:http://uhkfk.baihongyu.com/

    你可能感兴趣的文章
    Linux(RadHat)基础学习—软件安装
    查看>>
    linux(ubuntu)中crontab定时器命令详解 以及windows中定时器
    查看>>
    linux(乌班图)修改apt下载源
    查看>>
    Linux(六)shell操作实用技巧
    查看>>
    Linux,启动java程序的通用脚本sh
    查看>>
    Linux:-bash: pip: command not found pip
    查看>>
    Linux:/dev/tty、/dev/tty0 和 /dev/console 之间的区别
    查看>>
    Linux:bash: git: 未找到命令...
    查看>>
    Linux:CentOS安装Docker Compose
    查看>>
    Linux:CentOS安装Git
    查看>>
    Linux:error: libuv required but not found. Try installing ‘libuv1-dev‘ or ‘libuv-devel‘
    查看>>
    Linux:fpm打包工具
    查看>>
    Linux:ldd命令详解
    查看>>
    Linux:Mysql 大小写配置
    查看>>
    Linux:mysql中文乱码解决方案
    查看>>
    Linux:Prometheus安装
    查看>>