天天看点

计算机数据链路层

Copyright©stonee

效率效率效率!

约定:本文是针对于《计算机网络》第七版(谢希仁)中第三章的知识点总结,不适合单独看,结合课本或者PPT中的图片复习更佳

1. 数据链路介绍

  • 数据链路层信道主要由点对点信道和广播信道
  • 本章介绍有线局域网中的数据链路,没有无线局域网
  • 链路是一条有线或者无线的从一个结点到相邻结点的一段物理线路
  • 数据链路 = 实现协议的网络适配器(硬件 + 软件) + 链路
  • 帧是数据链路层的协议数据单元
三个基本问题
  • 封装成帧
    • IP数据报传到数据链路层会变成帧的数据部分,数据部分前后部分会加上帧首部和帧尾部。其作用是进行帧定界
    • 每一种数据链路层都规定了数据部分上限——MTU
  • 透明传输
    • 防止数据部分出现帧尾部的帧结束符,引入了转义字符,使其变得透明
  • 差错检测
    • 数据链路层中的协议都有一个字段是为了帧校验,广泛使用的是CRC,循环冗余校验
    • 除了数据链路层,每一层都有差错检测,但是差错检测只保证尽力交付,不保证可靠交付
    • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码
    • FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法

2. PPP

特点
  • 主要用于计算机和ISP进行通信时所使用的身份识别
  • 在满足三个基本问题的基础上,PPP协议还要满足**简单、支持多种网络协议、可以在多种链路(串行,并行,同步,异步,电缆,光缆)**等条件
组成
  • PPP由三部分组成
    • 一种将IP数据报封装到串行链路的方法
    • 一个用来建立,测试,配置数据链路连接的链路控制协议LCP
    • 一套网络控制协议NCP
  • 协议格式(PPP是面向字节的,长度都是整数字节)
    • 首部四个字段,尾部2个字段
    • MTU = 1500
    • F(1) + A(1) + C(1) + 协议(2) + 数据(MTU) + FCS(2) + F (1)
    • F规定为0x7E,表示帧开始或结束
    • A和C没用
    • 协议表示的是数据中用的协议,可能是IP,LCP,NCP
    • FCS即为CRC的冗余码
  • 当PPP使用异步传输的时候,转义字符被定义为0x7D,并使用字节填充,转义字符被定为为0x7D,0x5D,7E被定义为0x7D, 0x5E
  • 当PPP使用同步传输的时候,使用零比特填充,有5个连续的1就填充0
  • 同步传输和异步传输区别
工作状态
  • 首先用户拨号接入ISP,建立一条物理连接
  • 用户向ISP发送一系列链路控制协议LCP分组(这些被封装成了PPP帧),建立LCP连接
  • 进行身份鉴别
  • 通过NCP给新接入的用户分配临时IP
  • 通信完毕后,NCP释放网络层连接,收回IP
  • LCP释放数据链路层连接。最后释放物理层连接

3. 以太网中的数据链路层

  • 局域网可分为星形网、环形网、总线网
  • 局域网具有广播功能
  • 局域网中需要用到共享信道
    • 静态划分信道:频分复用等。不会产生冲突,但是这种代价较高
    • 动态媒体接入/多点接入:随机接入和受控接入。随机接入是重点
  • 现阶段局域网有两种标准:IEEE802.3和以太网标准
  • 适配器
    • 计算机通过适配器和外界局域网进行连接,网卡也是一种适配器
    • 适配器实现的功能既包括数据链路层也包括物理层
    • 数据链路层的协议基本是由适配器实现的
    • 适配器可以实现差错检验,并进行串/并行转换,通过驱动程序和操作系统交互,发送相应数据
    • MAC地址存在适配器的ROM中,IP地址存在计算机的存储器中
  • 以太网中不保证可靠交付,使用无连接和曼彻斯特编码,曼彻斯特编码效率低
  • 一个站不能同时发送接收,只能进行半双工通信,所以CSMA/CD诞生了
CSMA/CD
  • 要点:多点接入、载波监听、碰撞检测
  • 电磁波在1km电缆的传播时延约为5us
  • 步骤:
    • 发送之前,先检测信道,即“载波监听”,如果信道在96bit时间内保持空闲,适配器就开始发送信息
    • 如果发送信息过程中,经过2t之后还没检测到碰撞,那么这次发送就肯定不会发生碰撞。这段时间称为征用期
    • 如果在征用期内检测到碰撞,则停止发送数据,并发送人为干扰信号(32B或48B)来强化碰撞,执行二进制退避算法:基本退避时间是2t,争用期时间是51.2us,重传时间推后r倍的争用期(r参考书),当重传16次还不行的话,放弃并向上层报告
  • 适配器对过去发生的碰撞并无记忆功能
  • 为了防止帧很短小于512bit,使得检测不到该帧的碰撞,所以最小帧应该大于64B,故只要长度小于64B都是无效帧,应该丢弃
集线器
  • 集线器通过双绞线将多个站点用星形拓扑连到一起,成为一个局域网
  • 集线器工作在物理层,不进行碰撞检测,它像很多接口的转发器,单纯转发比特,少量容错能力和网络管理能力,不能进行帧缓存
  • 集线器中的各站点仍然使用CSMA/CD协议
以太网信道利用率算法
  • a = t/T 表明以太网连线长度不能太长,帧长度不能太短
  • S = 1/ (1 + a)
MAC
  • MAC地址段有两种:6B和2B(本地管理),IEEE会分配前3B
  • 第一字节的最低为为I/G位,决定了单播,组播和广播
  • 第一字节的倒数第二位是G/L位,决定本地管理和全球管理
  • MAC帧格式(以太网V2)
    • 首部3个字段,尾部1个字段
    • 目的地址(6B) + 源地址(6B) + 类型(2) + 数据(MTU) + FCS(4)
    • 目的地址之前还有一个前同步码全为010101…直到11,其中,前7个字节是前同步码,后一个字节是帧定界符
    • 因为数据帧最小为64B,MTU一般最大为1500,所以MAC帧长度为64-1500B
  • IEEE802.3
    • 当类型大于0x0600时,表示类型,小于该值时表示长度,需要在数据字段装入LLC帧

4. 扩展以太网

从物理层扩展
  • 使用光纤和光纤调制解调器
  • 使用多个集线器或者转发器
  • 虽然扩大了以太网的覆盖范围,且使得不同碰撞域的一台网上的计算机可以跨碰撞域通信
  • 但是总的吞吐量并未提高,同时不能连接不同数据率的碰撞域
从数据链路层
  • 这种方法比从物理层扩展更常用,集线器逐渐退出市场
  • 最初通过网桥,对MAC地址进行转发和过滤。之后诞生了一种交换式集线器,也叫交换机
  • 交换机是一个多接口的网桥
  • 交换机具有自学习的功能,可以进行帧缓存
  • 交换机即插即用,用硬件转发,比用软件转发的网桥快很多
  • 以太网从总线型过渡到星形

交换机比集线器多了个缓存功能,这就使得通信不再冲突,达到全双工

交换机分为存储转发方式和直通转发方式

自学习:

  • 先查找交换表
  • 如果没有则在交换表中新增这个项目(源地址,进入接口,有效时间),并转发
  • 如果有则更新项目并转发

为了防止兜圈子,产生了生成树协议STP

VLAN
  • 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN
  • 插入的标识符为4字节
  • 目的地址(6B) + 源地址(6B) + 标记(4B) + 类型(2) + 数据(MTU) + FCS(4)

5. 高速以太网

  • 快速以太网:100M/s + , 需要适配器和集线器/交换机,可全双工
  • 吉比特以太网 :1G/s + ,可全双工
    • 为了保证半双工的64B最小帧长:增加了载波延伸和分组突发功能
  • 10吉比特以太网:10G/s + ,只能全双工
  • 用以太网进行宽带接入
    • (此处意味着身份鉴别),就要把PPP协议装到以太网中
    • 可以提供双向宽带通信
    • 不需要帧格式转换

问题

  • PPP中哪个字段进行用户检验
  • LCP 和 NCP 都属于网络层吗
  • 具体的征用期时间51.2可以满足2t吗
    • 可以,端到端时延小于25.6us,即端到端小于5km
  • 集线器有增强信号的功能吗
  • MAC帧怎么没有帧开始和帧结束

继续阅读