[计算机网络]第三章 数据链路层

[计算机网络]第三章 数据链路层

学习使用工具

HillZhang的计算机网络复习笔记 https://hillzhang1999.gitee.io/2020/05/22/ji-suan-ji-wang-luo-quan-bu-fu-xi-bi-ji/

《计算机网络》谢希仁

1. 数据链路层概述

分组转发

从数据链路层来看,一次通信可以看成由多段不同的链路层通信组成。这几段不同的链路层可能采用不同的数据链路层协议。数据链路层可以使用点对点信道(PPP协议)和广播信道(MAC协议)。

  • 数据链路层的主要功能:局域网内主机之间的数据帧传输。
    • 对下层的服务:将网络层的IP数据报加上数据链路层的控制信息,封装成帧,通过物理层发送到数据链路上。
    • 对上层的服务:从物理层传输的帧中提取IP数据报内容,交给网络层。
  • 数据链路层的主要概念
    • 链路:又称物理链路,是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
    • 数据链路:又称数据链路,是物理链路加上必要的通信协议控制数据的传输。通常使用网络适配器来实现这些通信协议。
    • 协议数据单元:数据链路层的协议数据单元是数据帧,简称

2. 点对点信道的数据链路层

点对点信道的数据链路层在进行通信时的主要步骤如下:

  • 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧;
  • 结点A把封装好的帧发送给结点B的数据链路层;
  • 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则必须丢弃这个帧。

数据链路层不必考虑物理层如何实现比特传输的细节。

3. 数据链路层的三个基本问题

数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装.
成帧、透明传输和差错检测。

  • 封装成帧:将IP数据报作为帧的数据部分,再加上首部和尾部,即可封装成帧。

    封装成帧

    • 首部和尾部一个重要作用是帧定界(还包括许多必要的控制信息)。采用SOH、EOT帧定界符,放在帧的前后,标志帧的边界。可能存在歧义的问题,因为数据中也可能出现SOH、EOT,所以需要转义(字符填充)
    • 规定了最大传送单元,表示帧的数据部分(IP数据报)的最大长度,为1500字节。(PPP协议:加上8个字节的首部和尾部,帧的最大长度为1508字节。MAC协议:加上18个字节的首部和尾部,帧的最大长度为1518字节。)
  • 透明传输:在数据链路层传输时,所传输的数据在数据链路层没有任何的阻挡,接收方所收到的数据和发送方发送的数据没有任何差别,也就是说,数据链路层对其传输的数据帧是完全透明的。

    透明传输

    存在的问题:如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。

    解决方案是使用字节填充(也称字符填充):传输的过程中,为防止数据部分出现帧定界符,使得接收方误以为收到的数据提前结束,所以采用转义字符的方法,将在数据部分出现的控制字符前插入转义字符“ESC”,在接收方的数据链路层将插入的转义字符删除

    字节填充用于并行传输,即异步传输,一个字节一个字节传输。

    字节填充

    如果使用的是同步传输,即连续的比特流传输,需要使用零比特填充

  • 差错检测:数据链路层的差错检测只能保证帧内部无差错,即无比特差错。帧之间的差错,如帧丢失、帧冗余、帧失序,通常交给TCP协议(运输层)来保证。

    • 比特差错:物理层传输时,比特可能出现错误,比如比特丢失,比特冗余,比特失序。
    • 误码率BER:在单位时间内,传输错误的比特占所有比特的比率就是误码率。
    • 循环冗余检验CRC:数据链路层使用CRC进行检错。
      • 在发送端,先把比特数据划分为组。假定每组数据M长度为 k 个比特。根据生成多项式获取除数P在数据M的尾部加上n个0作为被除数n的位数比p小1)。将被除数除以除数P,得到余数R,R即为帧检测序列FCS,将其添加到M的尾部发送出去。
      • 检验方法:在接收端将收到的数据除以除数P看余数是否等于0,等于0则认为帧没有差错,进行接收;否则出错,进行丢弃。

4. PPP点对点协议

不可靠的。是最常用的点对点(一对一)链路的数据链路层协议,是端计算机和ISP进行通信时所使用的数据链路层协议。拨号上网时使用。

  • 特点

    • 简单:首要的要求
    • 封装成帧:必须规定特殊的字符作为帧定界符。
    • 透明性:必须保证数据传输的透明性。
    • 多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议。
    • 多种类型链路:能够在多种类型的链路上运行。
    • 差错检测:能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
    • 检测连接状态:能够及时自动检测出链路是否处于正常工作状态。
    • 最大传送单元:必须对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值,促进各种实现之间的互操作性。
    • 网络层地址协商:必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
    • 数据压缩协商:必须提供一种方法来协商使用数据压缩算法。
  • 组成

    • 一个将IP数据报封装到串行链路的方法。
    • 一个用来建立、配置和测试数据链路连接的链路控制协议LCP。
    • 一套网络控制协议NCP。
  • 格式

    PPP格式

    • 控制字段总长度:8个字节。
    • PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
      1. F(1字节):标志字段,代表定界符
      2. A、C(1字节):A为地址字段,C为控制字段,但暂时没有含义。
      3. 协议字段(2字节):表示当前信息部分是IP数据报还是LCP的控制数据还是NCP的控制数据
      4. FCS(2字节):帧检测序列,用于差错检测中的循环冗余检测CRC方法。
  • 传输

    • 字节填充:异步传输下使用。当信息字段中出现和标志字段相同的比特组合时,则进行字节填充的办法使得数据部分能够完整的传送到接收端。
    • 零比特填充:同步传输,即连续的比特流传输。当信息字段出现了5个连续的1,那么就插入一个0,在接收时再将5个连续的1后的0删除。
  • 工作状态

    用户拨号接入ISP→端机向ISP发送一系列链路控制协议LCP分组→进行网络层配置→网络层协议NCP向端机分配IP地址。可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

    PPP工作状态

5. 局域网

广播信道主要在局域网使用,也称以太网。

局域网的优点:使用广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。便于系统的扩展和演变。提高了系统的可用性、可靠性和生存性。

  • 局域网的拓扑结构

    • 星形

      星形网

      集线器使用电子器件模拟实际电缆线的工作,所以使用集线器的以太网在逻辑上还是一个总线网,各站逻辑上共享总线。而且是用的还是CSMA/CD协议,同一时刻至多允许一个站发送数据(防止碰撞)。集线器工作在物理层,每个接口只简单地转发比特,不进行碰撞检测。

    • 环形

      环形网

    • 总线

      总线网

    • 树形

    • 网状

  • 局域网的数据链路层的子层

    为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成两个子层。

    • 逻辑链路控制层 LLC (Logical Link Control)子层
    • 媒体接入控制 MAC(Medium Access Control)子层
    • 接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关。
  • 共享信道

    由于局域网使用的是广播信道,所以需要媒体共享技术,防止因为共享信道产生的错误。

    • 静态划分信道:用户一旦分到信道,就不会和其他用户发生冲突,如频分复用、时分复用、码分复用、波分复用等。缺点是:代价高、效率低、不适用于局域网。特点:固定分配
    • 动态媒体接入控制:信道并非在通信时固定分配给用户。
      1. 随机接入:所有用户可以在信道中随机地发送信息,占用此信道,而不用遵守静态划分的某种规则。但如果多个用户在同一时间发送信息,那么共享媒体就会产生碰撞,所有的用户发送都失败。(需要控制协议:CSMA/CD协议)
      2. 受控接入。多点线路探询,或轮询。

6. CSMA/CD协议

载波监听多点接入碰撞检测协议。在广播信道中实现动态媒体共享技术的随机接入必须使用的控制协议,确保不会有多个站点发送的信息同时出现在总线上

  • 载波监听(Carrier Sense):利用电子技术检测总线上有没有其他计算机也在发送。不管在发送前还是发送中,每个站都必须不停地检测信道,以防止出现碰撞(发送前),检测碰撞发生并及时丢弃信息
    • 发送中,由于发送的不确定性,发送前检测不能百分百防止碰撞,因为存在传播时延。
  • 多点接入(Multiple Access):说明这是总线型网络(传统以太网),计算机以多点接入的方式连接。实际上,星形网也可以采用类似的方式进行随机接入,本质类似。
  • 碰撞检测(Collision Detection):边发送边监听。 若在信道上有至少两个站点同时发送信息便发生碰撞,这时很容易信号失真,要使两边发送的信息都作废

使用CSMA/CD协议的局域网的站不能同时进行发送和接收,所以只能进行半双工通信。

  • 发送的不确定性:由于电磁波的传播时延,每个站发送数据后的一小段时间内,可能会有其他站无法及时检测到信道上已有数据在发送,从而发送数据,产生碰撞。
  • 争用期(碰撞窗口):以太网的端到端往返时间。如果一个站发送数据后,在碰撞窗口内没有检测到碰撞,才能确定这次发送不会产生碰撞。通常规定为512比特时间,即64字节时间。
  • 重传机制:截断二进制指数退避算法。使发生碰撞的站再次发生冲突的概率减小。
    1. 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
    2. K=MIN[10,重传次数],每次重传时每个站从[0,1,…,2的K次方-1]中随机选一个数字r,重传推后的时间为r倍争用期。
    3. 重传达到16次时,则站丢弃该帧,并向高层报告。
  • 帧的最小长度:以太网规定有效帧的最小长度为64字节(512bit)。如果接收到的某个帧长度小于64字节,说明它在争用期内出现问题,需要丢弃,大于等于64字节说明该帧通过了争用期,不会再出现问题。
  • 帧间最小间隔96bit时间,使刚刚收到数据帧的站的缓存来得及清理,做好接受下一帧的准备。
  • 强化碰撞:在发生碰撞之后除了立即停止发送数据之外,还要发送32bit或48bit 的人为干扰信号,目的是为了能够让所有站点都知道发生了碰撞

CSMA/CD

7. 以太网的MAC层

IEEE802为局域网规定了一种48位的全球地址,称为MAC地址。是指局域网上每台计算机中固化在适配器(网卡)的ROM中的地址。(软件地址是IP地址,计算机的硬件地址只要适配器不更换,就不会改变,而软件地址可以随时变更)。总共48位(6字节)前三字节由管理全球硬件地址的机构——注册管理机构RA向适配器制造公司出售称为组织唯一标识符OUI,后三字节由制造公司自行分配,称为扩展标识符,其中前三字节中有两位是用来标识是否位单播地址和是否属于全球管理的。

  • 网络适配器用来连接计算机与局域网。计算机的硬件地址(MAC地址)就在适配器的ROM中;计算机的软件地址IP地址,在计算机的存储器中。

    网卡

MAC帧的格式:

  1. 前两个字段为6字节的目的地址和6字节的源地址。第三个字段为2字节的类型字段,表示上一层的协议。第四个字段是数据字段,长度为46到1500字节,一般是网络层交付的IP数据报。第五个字段是长度为4个字节的帧检测序列FCS
  2. MAC帧的长度范围是:64字节到1518字节。首尾部分的控制信息占18字节。其中,64字节的最小长度是CSMA/CD协议的规定(确保通过争用期
  3. 当MAC帧向下交付给物理层时,需要加*7个字节的前同步码(实现发送端和接收端之间的位同步)和1个字节的帧开始定界符,无结束定界符,直接观察曼彻斯特编码即可。
  4. MAC帧中并没有数据长度的标识,但由于传输时使用的是曼彻斯特编码的方式,所以通过对曼彻斯特编码的信号特点的观察便可确定是否传送完毕。
  5. 对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

MAC帧

posted @ 2023-04-05 21:57  无机呱子  阅读(40)  评论(0编辑  收藏  举报