计算机网络笔记-数据链路层(一)

第三章 数据链路层

数据链路属于计算机网络的低层
数据链路层使用的信道主要有:
  • 点对点信道
    • 使用一对一的点对点通信方式
  • 广播信道
    • 使用一对多的广播通信方式,较复杂
    • 需使用专用的共享信道协议来协调主机的数据发送
  • 从整个互联网来看,局域网仍属于数据链路层的范围

本章概要

点对点信道和广播信道的特点

PPP协议和CSMA/CD协议

封装成帧

透明传输

差错检测

以太网MAC层的硬件地址

适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合


正文

  • 点对点信道的数据链路层在进行通信时的主要步骤:
    • 发送端数据链路层将网络层交下来的IP数据报添加首部和尾部封装成帧
    • 发送端把封装好的帧发送给接收端的数据链路层
    • 若接收端的数据链路层收到的帧无差错,则从帧中提取出IP数据报交给上面的网络层,否则丢弃这个帧
    • 发送端可以是主机和边缘部分
  • 链路和数据链路 link and data link
    • 链路 = 传输数据的物理线路
    • 数据链路 = 传输数据的物理线路 + 链路上的硬件和软件协议
    • 一般使用 网络适配器 来实现协议
    • 网络适配器包括了数据链路层和物理层这两层的功能
    • 也有将链路分为:物理链路 + 逻辑链路(数据链路)
    • 早期的通信协议叫做 通信规程 因此数据链路层中 规程和协议是同义的
    • 数据链路层的协议数据单元PDU --帧
    • 数据链路层:
      • 将网络层交下来的数据构成帧发送到链路上
      • 将接收到的帧中的数据取出并上交给网络层
      • 网络层协议数据单元就是IP数据报(或称为数据报、分组、包)

三个基本问题
  • 封装成帧
    • 在数据前后分别添加首部和尾部,构成一个帧
    • 帧长 = 帧的书部分长度 + 帧首和帧尾的长度
    • 首部和尾部的作用
      • 进行帧定界
      • 包含许多必要的控制信息
      • 从帧首开始发送数据
    • 帧的数据部分长度上限---最大传送单元MTU Maximum Transfer Unit
    • 帧定界
      • 可以使用特殊的帧定界符(当数据由可打印的ASCII码组成)
      • SOH start of header
        • 处于帧的最前面
        • 表示帧的开始
        • 01 十六进制
      • EOT end of transmission
        • 表示帧的结束
        • 04
  • 透明传输
    • 不管怎样的字符都可以放在帧中传输,为透明传输
    • 透明的概念:
      • 某一个实际存在的事物看起来却好像不存在一样
    • 一般使用字符填充或字节填充
      • 例如使用ESC EOT 转义字符
  • 差错检测
    • 0 可能变成 1 1 可能变成 0 叫做比特差错 是传输差错的一种
    • 传输错误的比特占所有的传输比特总数的比率叫做误码率 BER
    • 误码率不能为 0 所以有了循环冗余校验CRC
    • CRC
      • 在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,
      • 一共发送(k + n)位
      • 当传输可能出现差错时,这种增大数据传输开销的差错检测往往是很值得的
      • n位冗余码的的得出方法:
        • 用二进制的 模2运算 进行2n 乘M的运算,这相当于在M后面添加 n个0
        • 得到的(k + n)位的数除以收发双方事先商定的长度(n + 1)位的除数P
        • 得出商是Q而余数是R(n位, 比P少一位)
        • 余数R作为冗余码拼接在数据M的后面发送出去,这种冗余码常称为帧检测序列FCS Frame Check Sequence
        • 因此加上FCS后发送的帧2nM + FCS共有 k + n位
        • CRC是检测方法
        • FCS 是检错的冗余码
        • 若得出的余数R = 0 则判定无差错 就接受
        • 若余数R != 0则判定有差错,但无法判断是哪一位出错,就丢弃
        • 传输差错可分为:
          • 比特差错
          • 帧丢失
          • 帧重复
          • 帧失序
          • 帧编号 确认 重传机制
          • 数据链路不被要求向上提供可靠传输的服务
          • 由上层协议来完成改正差错
      • 数据链路层的协议都不是可靠传输协议

点对点协议PPP

HDLC High-level-Data Link Control 高级数据链路控制

PPP Point-to-Point Protocol 点对点协议

PPP
  • 简单
    • 首要需求
    • 不需要纠错
    • 不需要序号
    • 不需要流量控制
    • 只进行CRC检验,如检测正确,就收下, 反之则丢弃
    • 其他什么都不做
  • 封装成帧
    • PPP协议必须规定特殊的字符作为帧定界符
  • 透明性
    • PPP协议必须保证数据传输的透明性
    • 解决数据中碰巧与帧定界符一样的比特组合
  • 多种网络层协议
    • PPP协议必须能够在同一条物理链路上同时支持多种网络层协议
  • 多种类型链路
    • PPP还需要能够在多种类型的链路上运行
    • 例如串行的或并行的
    • 同步的或异步的
    • 低速的或高速的
    • 电的或光的
    • 交换的(动态的)或非交换的(静态的)点对点链路
  • 差错检测
    • 丢弃有差错的帧
    • 减少往后的网络资源浪费
  • 检测连接状态
    • 自动检测链路是否处于正常工作状态
  • 最大传送单元
    • MTU 载荷的数据部分的最大长度,而不是帧的总长度
  • 网络层地址协商
    • 提供机制让通信的两个网络层能知道彼此的网络层地址
  • 数据压缩协商
    • 必须提供一种方法来协商使用数据压缩算法
    • 但并不要求数据压缩算法进行标准化
    • 在TCP/IP协议族中,可靠传输由运输层的TCP协议负责
  • 此外,PPP协议只支持全双工链路
PPP协议的组成
  • 三个部分
    • 一个将ip数据报封装到串行链路的方法
      • PPP既支持异步链路,也支持面向比特的同步链路
      • IP数据报在PPP帧中就是其信息部分
      • 这个信息部分受MTU限制
    • 一个用来建立、配置和测试数据链路连接的 链路控制协议LCP link control protocol
    • 一套 网络控制协议NCP network control protocol
      • 其中每一个协议支持不同的网络层协议
PPP协议的帧格式
  • 各字段的意义
    • 首部 四个字段
      • 第一个字段 F(Flag)0x7E 01111110
      • 第二个地址字段 A 0xFF 11111111
      • 第三个控制字段 C 0x03 00000011
      • 第四个2字节协议字段
        • 0x0021 IP数据报
        • 0xC021 PPP链路控制协议LCP的数据
        • 0x8021 网络层的控制数据
    • 信息字段
      • 长度可变
      • 不超过1500字节
    • 尾部 两个字段
      • 第一个字段 2字节 CRC的帧检测序列FCS
      • 第二个字段 F
  • 字节填充
    • 当信息字段中出现和标志字段一样时
    • 当使用异步传输
      • 转义为 0x7D 01111101 并使用字节填充
      • 把信息字段中的每一个0x7E 转变为2字节序列 0x7D 0x5E
      • 当出现0x7D 转变为 2字节序列 0x7D 0x5D
      • 若出现ASCII码控制字符,在该字符前面加入0x7D
  • 零比特填充
    • PPP协议在SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)而不是异步传输
    • (逐个字符的传送),这种情况下,PPP协议采用零比特填充方法来实现透明传输。
    • 具体做法
      • 在发送端,先扫描整个信息字段 只要发现五个连续的1则立即插入一个0,因此不会
      • 不会出现6个连续的1,接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对比特流进行扫描,每发现五个连续的1时,就将5个连续1后面的一个0删除,还原为原来的比特流
      • 而不会引起对帧边界的误判断
PPP协议的工作状态
  • 用户拨号接入ISP

  • 建立一条从用户到ISP的物理连接

  • 这是,用户电脑发送一系列链路控制协议LCP分组,封装成多个PPP帧到ISP

  • 建立LCP连接

  • 分组及其响应选择了将要使用的一些PPP参数,接着还要进行网络层配置,网络控制协议NCP给新接入的用户分配一个IP地址,这样用户的电脑就成为互联网上一个有IP的主机了

  • 当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址,

  • 接着LCP释放数据链路层连接,最后释放物理层的连接

  • 链路静止 link dead

    • 此时用户与ISP的路由器之间不存在物理层的连接
  • 链路建立 link establish

    • 用户通过调制解调器呼叫路由器
  • 路由器检测到调制解调器发出的载波信号,双方建立物理层连接后

    • PPP进入Link Establish状态
  • 此时LCP开始协商一些配置选项,

    • 发送LCP配置请求帧
      • 配置确认帧
    • 配置否认帧
      • 配置拒绝帧
      • 配置选项
        • 连路上的最大帧长
        • 所使用的鉴别协议 authentication protocol
        • 不使用PPP帧中的地址和控制字段
    • 协商结束后建立链路层的LCP连接
      • 鉴别状态
      • 只允许传送LCP协议的分组
        • 鉴别协议的分组
      • 监测链路质量的分组
      • 口令鉴别协议PAP password authentication protocol
        • 发起通信的一方发送身份标识符和口令,系统可允许用户重试若干次
        • 增加复杂性可用 口令握手鉴别协议CHAP challenge-handshake Authentication protocol
    • 若鉴别身份失败,则转入链路终止 link terminate
    • 若鉴别成功,则进入‘ 网络层协议‘ Network-layer protocol状态
    • NCP根据不同协议互相交换网络层特定的网络控制分组。
      • 不同网络层协议,同一个PPP协议
    • IPCP分组
    • 链路打开
    • 可以发送分组
      • 可以发送回送请求分组 Echo-Request
    • 回送回答LCP分组 Echo-Reply
    • 终止请求
    • 终止确认
    • 链路终止
    • 链路静止

使用广播信道的数据链路层

局域网

  • 较高的数据率
  • 较低的延迟
  • 较低的误码率
  • 具有广播功能
  • 局域网上的主机共享连接在局域网上的各种硬件和软件资源
  • 设备的位置可灵活调整和改变
  • 提高了reliability available 和 survivability
  • 集线器 hub 和 双绞线的使用 星型以太网获得了广泛应用

以太网

  • 几乎成了局域网的同义词

  • 如何使众多用户能够合理而方便地共享通信媒体资源

    • 静态划分信道

      • 复用
      • 代价较高
    • 动态媒体接入控制

      • 多点接入
      • 并非在通信时固定分配给用户
        • 随机接入
          • 所有用户可随机的发送信息
          • 如果恰巧有多个用户同时发送信息,在共享媒体上就会产生碰撞或冲突
          • 使得发送失败,因此必须要有解决碰撞的网络协议
        • 受控接入
          • 用户不能随机的发送信息而必须服从一定的控制,
          • 分散控制的令牌环局域网和集中控制的多点线路探询或轮询
          • 用的比较少
    • 逻辑链路控制 LLC logic link control 子层和媒体接入控制 MAC medium Access Control 子层


适配器的作用

  • 计算机与外界局域网的连接是通过通信适配器adapter进行的
  • 有接口板网络接口卡NIC network interface card 网卡

CSMA/CD协议

  • 常把局域网上的计算机称为 主机 工作站 站点 站

  • 采用无连接的工作方式

    • 不对发送的帧进行编号,也不要求对边发回确认
    • 以太网提供的服务是尽最大努力的交付,即不可靠交付
    • 使用CRC校验
    • 对是否重传由高层来决定
  • 协调总线上各计算机的工作就是以太网要解决的一个重要问题

    • 载波监听多点接入/碰撞检测 Carrier Sense Multiple Access with Collision Detection
    • 以太网发送的数据都使用曼彻斯特编码的信号
  • 多点接入

    • 说明这是总线型网络
    • 许多计算机以多点接入的方式连接在一根总线上
    • 协议的实质是 载波监听 和 碰撞检测
  • 载波监听

    • 就是用电子技术检测总线上有没有其他计算机也在发送
    • 其实总线上并欸有什么 载波 .只不过是借用一下这个名词
    • 载波监听就是检测信道
    • 不管在发送前,还是在发送中,每个站都必须不停的检测信道
    • 发送前检测信道是为了获取发送权
    • 发送中检测信道,是为了及时发现碰撞
  • 碰撞检测

    • 边发送边监听
    • 适配器边发送数据边检测信道上的信号电压的变化情况,以便判断其他站是否也在同时发送数据,
    • 当多个站同时在总线上发送数据时,总线上的电压变化幅度将会增大,互相叠加
    • 当发现总线上出现了碰撞,适配器就要立即停止发送等待一段时间后再次发送
    • 电磁波在1km电缆的传播时延约为5us
    • 帧最小间隔时间为9.6us
CSMA/CD协议要点
  • 准备发送
    • 封装成以太帧,发送前检测信道
  • 检测信道
    • 不停检测直到信道转为空闲并在96比特时间内信道保持空闲了就发送这个帧
  • 发送中不断检测信道,即适配器要边发边监听
    • 发送成功
    • 发送失败
      • 重传达16次不能成功
      • 停止重传向上报错
  • 以太网每发送完一帧,要把已发送的帧暂时保留一下,等待是否重传

使用集线器的星型拓扑

  • 集线器 hub
    • 每个站需要用两对无屏蔽双绞线, 分别用于发送和接收
    • 双绞线两端使用RJ-45插头
    • 10BASE-T 10为10Mbit/s BASE为基带信号 T代表双绞线
    • 10BASE-T 是局域网发展史上的一个非常重要的里程碑
    • 一个集线器有许多接口
    • 像一个多接口转发器
    • 集线器工作在物理层,每个接口仅仅简单的转发比特,不进行碰撞检测
    • 集线器本身必须非常可靠,现在的堆叠式集线器由4-8个集线器堆叠起来使用
    • 10BASE-F F为光纤

以太网的信道利用率

  • 假定一个10Mbit/s以太网同时有10个站在工作,那么每一个站所能发送数据的平均速率似乎是1/10
  • 其实不然
  • 因为多个站在以太网上同时工作就可能发生碰撞,信道资源实际上是被浪费了,因此,当
  • 扣除碰撞所造成的信道损失后,以太网的信道利用率并不能达到100%
  • a = r/ T0

以太网的MAC层

  • MAC层的硬件地址

  • 计算机中固化在适配器的ROM中的地址

  • 单播 一对一

  • 广播 一对全体

  • 多播 一对多

  • MAC的帧格式

    • DIX Ethernet V2
      • 前两个字段分别为6字节长的目的地址和源地址字段
      • 第三个字段是2字节的类型字段 用来标志上一层使用的是什么协议
      • 第四个字段是数据字段,长度在46到1500字节之间
      • 最后一个字段是FCS
      • 曼彻斯特编码,当电压不在变化, 即可知道传送结束, 往前四个字节就知道是数据的结束
      • 由上层协议来判断填充字节的长度
      • 从MAC子层向物理层时还要再帧前插入八个字节,有两个字段构成
        • 第一个字段是7个字节的前同步码, 作用是使接收端的适配器在接收MAC帧时能够迅速调整其始终频率,使它和发送端的时钟同步
        • 第二个字段是帧开始定界符 定义为10101011 最后两个1就是告诉接收端适配器马上要接收MAC帧信息
      • 使用SONET/SDH进行同步传输时则不需要用前同步码和帧开始定界符
      • 由于帧之间的间隔,所以帧不需要帧结束定界符,也不需要使用字节插入来保证透明传输
    • 802.3
      • 规定了以下情况为无效的MAC帧:
        • 帧的长度不是整数个字节
        • 用收到的帧检测序列FCS查出有错误
        • 收到的帧的MAC客户数据字段长度不在46-1500字节之间。
        • 考虑到MAC帧首尾长度共有十八字节, 可以得出MAC帧的有效长度在64-1518字节之间
        • 对于检查出无效的MAC帧直接丢弃,以太网不考虑重传丢弃的帧
    • V2和802.3的区别
      • 802.3规定的MAC帧的第三个字段是 长度/类型 当这个字段值大于0x0600时,就表示 类型
      • 当 长度/类型 字段值 小于0x0600时, 数据字段必须装入上面的LLC子层大的LLC帧

以太网交换机

  • 独占传输媒体

  • 无碰撞地传输数据

  • 缓存存储器

  • 帧交换表 地址表 自学习算法

  • 生成树协议 STP Spanning Tree Protocol

    • 切断闭环
  • 不使用CSMA/CD 但由于仍使用以太网帧结构, 故还称为以太网

  • VLAN


高速以太网

  • 可扩展
  • 灵活的
  • 易于安装
  • 稳健性好

ohoh

posted on   仓鼠不爱吃辣条  阅读(441)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

页尾

页尾

页尾

页尾

页尾

页尾

页尾

点击右上角即可分享
微信分享提示