Chapter3 数据链路层

功能

数据链路层的主要任务是实现帧在一段链路上或一个网络中进行传输。

数据链路层传输的协议数据单元(PDU)是帧

数据链路层使用的信道主要有两种:点对点信道、广播信道。

  • 封装成帧
  • 差错检测
  • 透明传输
    • 通过填充机制避免数据中的特殊字符被误解析为帧边界

点对点信道中的一些概念

  • 链路(物理链路):指一个结点到相邻结点的一段物理线路。链路只是一条通信路径的组成部分。
  • 数据链路(逻辑链路):当在一条链路上传输数据时,除了需要链路本身,还需要一些必要的通信协议。数据链路包含实现这些协议的硬件和软件。
  • 帧:数据链路层对等实体之间进行逻辑通信的协议数据单元。数据链路层把网络层下交的数据构成帧发送到链路上,并把接受到的帧中的数据取出并上交给网络层。

为网络层提供服务

  • 无确认的无连接服务:源主机发送帧时不需要先建立链路链接,目的主机收到帧时不需要发回确认。

    适用于误码率较低的信道,如以太网

  • 有确认的无连接服务:源主机发送帧时不需要先建立链路链接,目的主机收到帧时需要发回确认。源主机在规定时间内未收到确认信号时,重传丢失的帧

    适用于误码率较高的信道,如无线通信。

  • 有确认的面向连接服务:帧传输过程分为三个阶段:建立链路、传输帧、释放链路。

    目的主机对收到的每一个帧都要返回确认。适用于可靠性要求较高的场合。

    有连接就一定有确认。

链路管理

数据链路层连接的建立、维持和释放的过程称为链路管理,主要用于面向连接的服务

链路两端结点通信前必须确认对方已处于就绪状态,这个过程称为链路建立

流量控制

限制发送方的发送速率,使接收方能够及时处理接收到的数据,防止接收方的缓冲区溢出。

OSI模型中数据链路层有流量控制功能

TCP/IP模型中流量控制功能被转移到了传输层

差错控制

差错控制:使发送方确定接收方是否正确收到发送数据的方法

  • 位错:

    • 通常采用循环冗余检验或者奇偶校验等方法进行检测和纠正
    • 通过自动重传请求来重传出错的帧,这种差错控制的方法称为ARQ法
  • 帧错:

    • 引入定时器和编号机制
    • 保证每一帧最终都能有且仅有一次正确地交付给目的节点

封装成帧

封装成帧:在一段数据的前后分别添加首部和尾部,构成帧

帧长=数据长度+首部长度+尾部长度。

image-20241229152456369

组帧:发送方

帧定界:首部和尾部中有很多控制信息,作用是确定帧的界限

帧同步:接收方从接受到的二进制比特流中区分出帧的起始和终止

帧长越长,帧的传输效率越高,传输差错发生的概率也随之提高;因此每种链路层协议都规定了帧的数据部分的长度上限,即最大传送单元。

透明传输:无论传输的数据是什么样的比特组合,都应当能在链路上传送

  • 字符计数法

    • 帧首部使用一个计数字段来记录该帧所含字节数
    • 包括计数字段本身所占的一个字节)。
    • 问题在于如果计数字段出错,就失去了帧边界划分的依据。
  • 字符填充的首尾定界法

    • 使用特定字节来界定一帧的开始与结束
    • 为了避免误判,可以在特殊字符前添加一个转义字符ESC来加以区分,以实现数据的透明传输。
  • 比特填充的首尾定界法(HDLC协议使用)

    • 允许数据帧包含任意个数的比特
    • 使用一个特定的比特串0111 1110来标志帧的开始和结束。
    • 为了避免误判

      • 发送方先扫描整个数据字段,每遇到5个连续的1就在其后插入一个0(即使原来5个1后有0,也仍然填充0)
      • 接收端接收到一个帧时,先找到标志字段确定边界;
      • 再对比特流进行扫描,发现连续5个1时,就把后面的0删除。
    • 性能优于字节填充法

  • 物理编码违例法

    • 曼切斯特编码方法中,数据比特“1”编码为“高-低”电平对,“0”编码为“低–高”电平对
    • 这时“高–高”和“低-低”是违规的,可以用来定界帧的起始和终止

image-20250524153358227

差错控制

本节仅讨论比特差错。

检错编码

使用可检测错误的编码+ 重传:检错码

检错编码都使用冗余编码技术,核心思想是在有效数据被发送时,按某种关系附加一定的冗余位,构成一个符合某一规则的码字后发送。

误码率BER=出错比特数/传输的总比特数

  • 奇偶检验码:

    • 奇校验码:附加校验码后,码长为n的码字中1的个数为奇数
    • 偶校验码:附加校验码后,码长为n的码字中1的个数为偶数

    例如:1001101的奇检验码为10011011,偶检验码为10011010。

    只能检验奇数位的出错,但不能发现哪错了,也无法检验偶数位的出错

  • 简单累加和(校验和):

  • 循环冗余校验CRC:

    可检查所有单比特错误

    • 收发双方约定生成多项式G(x),最高位和最低位必须为1。
      • k位位串可视为阶数为k-1的多项式系数序列
      • 例:除数1101的生成多项式P(X) = X^3^+ X^2^+ 1
    • 发送方基于待发送的数据和G(x),计算出冗余码(帧检验序列FCS
    • 将冗余码放在数据后面一起发送。
    • 接收方收到数据和冗余码后,通过G(x)判断数据和冗余码是否产生差错。

image-20241229155527879

循环冗余码的计算:

假设一段m位数据,计算冗余码:

  1. 加0。假设G(x)的阶为r,在数据后面加r个0。
  2. 模2除。用G(x)对应的二进制串去除上一步添加了0后的数据,得到的余数即为冗余码(共r位)。
  3. 把冗余码(即FCS)添加到数据的后面,然后发送
  4. 接收方检验:带冗余码的数据模2除G(x)对应的二进制串,余数为0则说明无差错。
  5. 发送方的FCS生成和接受方的CRC检验都是由硬件实现的,处理非常迅速。

image-20250524161902318

除法的时候:

商一直000,直到和除数位数相同

(0的时候不断从上面往下面补数字)

作差的时候 用异或的方法,相同是0,不相同是1

纠错编码

海明码

可纠正一位差错

原理是在有效信息位中添加几个位形成海明码,并把海明码的每个二进制位分配到几个奇偶检验组中。某一位出错后,就会引起有关的几个检验位的值变化,可以指出错位的位置。

码距:

l=d+c+1

  • 检测d位错误:码距至少为d+1
  • 纠正d位错误:码距至少为2d+1

n表示有效信息位数,k为校验位的位数,则信息位n和校验位k应该满足

n+k+1≤2^k^

校验位置于 2^k^位上

校验位的值为所有使用该校验位的值的异或结果。

例:

n=4,k=3

信息位D4D3D2D1(1010)

检验位为P3P2P1

海明码:

image-20250524164413832

image-20250524164454391

image-20250524164505612

海明码是1010010

检验原理:

image-20250524164706591

检错码/纠错码能实现无比特差错的传输,出错直接丢弃,但不是可靠的传输

其他的错误包括帧丢失、帧重复、帧失序

流量控制与可靠传输机制

流量控制

  • 流量控制是指由接收方控制发送方的发送速率,使接收方有速购的缓冲空间来接收每个帧。
  • 常见的流量控制方法有两种:停止–等待协议和滑动窗口协议。
  • 数据链路层和传输层均有流量控制的功能,它们都用到了滑动窗口协议,区别如下:
    • 数据链路层控制的是相邻结点之间的流量,而传输层控制的是端到端的流量。
    • 数据链路层的控制手段是接收方收不下就不返回确认
    • 传输层的控制手段是接收方通过确认报文段中的窗口值来调整发送方的发送窗口

停止–等待流量控制

  • 发送方发送一帧,等待接收方应答信号
  • 接收方接收一帧,反馈一个应答信号
  • 每次只能一帧,传输效率低

滑动窗口流量控制

滑动窗口协议的基本思想

  • 允许发送方连续发送多个帧
  • 通过滑动窗口实现流量控制
    • 每个待发送的帧都有一个序列号
    • 发送方维护一个发送窗口,它包含一组序列号,对应允许它发送的帧
    • 接收方维护一个接收窗口,对应允许它接收的帧

发送方

  • 发送窗口内的序列号代表允许它发送的帧
    • 窗口内最大的序列号称为窗口上边界,或窗口上沿、前沿
    • 窗口内最小的序列号称为窗口下边界,或窗口下沿、后沿
  • 发送帧,上边界+1
  • 发送窗口下边界的帧被接收方确认后,下边界+1

接收方

  • 接收窗口内的序列号代表它可以接收的帧
    • 收到的帧序列号等于窗口下边界时,将该帧上交网络层,并返回确认帧,同时整个窗口向前移动1个位置
    • 如果收到帧序列号落在接收窗口之外,则将其丢弃
  • 注意:接收窗口总是保持固定大小

滑动窗口具有的特性:

  • 接收窗口向前滑动时,发送窗口才有可能向前滑动
  • 接收窗口大小为1,可以保证帧有序接收
  • 数据链路层的滑动窗口协议中,窗口大小在传输过程中固定

可靠传输机制

  • 超时重传:发送方在发送某个数据帧后开始一个计时器,若一定时间内没收到发送的数据帧的确认帧,就重新发送该数据帧,直到发送成功为止
  • 自动重传请求(ARQ):接收方请求发送方重传出错的数据帧来恢复出错的帧。

指发送方发送的数据都能被接收方正确地接受。

通常采用确认和超时重传两种机制。

  • 确认:

    • 接收方接收到一个数据帧,向发送方发送一个无数据的控制帧(确认帧)
    • 捎带确认:将确认捎带在一个回复帧中,提高效率
  • 超时重传:

    • 发送方在发送一个数据帧后就启动一个计时器
    • 若在规定时间内没有收到所发送数据帧的确认帧,则重发该数据帧。

自动重传请求(ARQ)

  • 重传自动进行,接收方不需要发出重传请求

ARQ协议分为三种:

  • 停止—等待协议:发送窗口=接收窗口=1

  • 后退N帧(GBN)协议:发送窗口N个,接收窗口1个

  • 选择重传(SR)协议:发送窗口N个,接收窗口M个(一般来说N=M)

  • 后退N帧协议:

    • 发送方发送N个数据帧后,如果发现这N个帧的前一个帧超时没有接收到确认信息,此时发送方需要重传该出错帧及随后的N个帧
    • 这意味着接收方只允许按顺序接收帧
    • 累计确认: ACKn表示n及n以前的帧均已被正确接收
      • 发送窗口WT
      • 采用n比特对帧编号
      • 否则接收方无法区分新数据帧和旧数据帧
  • 选择重传协议:

    • 可以设法只重传差错帧,但必须加大接受窗口,以收下失序但正确到达的数据帧;
    • 当接收方检测到出错帧时,发送一个否定的确认帧NAK,要求 发送方立刻重传NAK指定的数据帧。
    • 等到所缺失的数据帧收齐后,再一并送交上层。

      • 否则新数据帧和旧重传的数据帧重叠
      • 否则接收窗口永远填不满,多出来的没有意义

信道利用率

停止–等待协议下的信道利用率

信道利用率:

发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

TD:发送时延

RTT:双向传播时延

TA:接收时延,通常可以忽略不计

假设主机甲采用停-等协议向主机乙发送数据帧,数据帧和确认帧 长度均为1000B,传输速率是10kbps,单向传播时延是200ms。则 主机甲的最大信道利用率

TD = TA = (1000B×8)/10000bps = 800ms

RTT = 200×2 = 400ms

U = TD /(TD +RTT+ TA) = 800/(800+400+800) = 800/2000 = 0.4

信道利用率:

  • T发送周期 从开始发数据到收到第一个确认帧
  • C发送方数据传输率
  • T内发送Lbit数据

信道吞吐率 = 信道利用率*发送方发送速率

连续ARQ协议的信道利用率

  • 连续ARQ协议采用流水线传输,即发送方可以连续发送多个分组
  • 只要发送窗口足够大,就可以使信道上数据持续流动。

image-20241231131247360

image-20241231144933905

img

介质访问控制MAC

  • 介质访问控制的任务:为使用介质的每个节点隔离来自同一信道上其他结点所传送的信号。
  • 常见方法:信道划分介质访问控制、随机访问介质访问控制、轮询访问介质访问控制。
  • 用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(MAC)子层。

信道划分介质访问控制(静态)

将使用同一传输介质的多个设备的通信隔离开,把时域和频域资源合理地分配给这些设备。

信道划分介质访问控制通过复用技术实现,包括以下四种:

  • 频分复用FDM
    • 将物理信道的总带宽分割成若干个与传输单个信号带宽相同的子信道,每个子信道只能被一个信号所占用
    • 每个子信道分配带宽可不相同,但总和不能超过信道的总带宽
    • 为防止子信道之间的干扰,相邻信道之间需要加入保护频带
  • 时分复用TDM
    • 将一条信道按时间分成若干时间片,轮流分配给多个信号使用。
  • 波分复用

    • 光的频分多路复用技术,在光纤中传输不同波长(频率)的光信号
    • 由于不同波长的光信号互相不干扰,所以最后可以直接将波长分解出来
    • 光波处于频谱的高频段,有很高的带宽,所以可以实现多路波分复用
  • 码分复用(码分多址):

    • 共享频率也共享时间,但是将每个比特时间再划分成m个短的时间槽,称为码片,每个站点被指派一个唯一的m位码片序列。
    • 发送1时,站点发送其码片序列;发送0时,站点发送码片序列的反码。
    • 当两个或多个站点同时发送时,各路数据在信道中线性相加。为了能分离出各路信号,要求各个站点的码片序列相互正交

随机访问介质访问控制(动态)

又称争用型协议。

所有用户都能随机发送信息,占用信道的全部速率,不需要信道划分

但当有两个及以上用户同时发送时,就会产生帧冲突(碰撞)

解决冲突:每个用户需要按一定的规则反复重传帧

结点之间既不共享时间,也不共享空间

实际上将广播信道转换为点到点信道的机制

ALOHA协议、CSMA、CSMA/CD、CSMA/CA等

CSMA/CD协议

适用于有线网络

载波监听多点访问/碰撞检测协议

适用于总线形网络半双工网络环境,站点不能同时发送和接收。

工作原理:

  • 载波监听
    • 侦听信道空闲,则开始发送帧,否则等到信道上没信号能量后再发送
    • 先听后发
  • 碰撞检测
    • 发送过程中持续监测信道
    • 边听边发
  • 碰撞强化:
    • 若未检测到碰撞,则发送完毕该帧
    • 否则终止数据发送,并发送32或48bit的人为干扰信号,以便通知其他站点发生了碰撞。
  • 碰撞退避
    • 终止发送后,执行指数退避算法
    • 等待一段时间后执行边听边发步骤

争用期&帧长:

两个公式:

发送帧的时间(帧长度/数据传播速率)>=争用期(双向时延)

最短帧长 = 数据传播速率×争用期

  • 设 τ 为单程传播时延,则发送数据后至多经过 2τ 时间后,就能知道是否发生了碰撞。
  • 争用期(冲突窗口或碰撞窗口)

    • 以太网端到端往返时间 2τ
    • 在争用期内未检测到碰撞,就确定这次发送不会发生碰撞
  • CSMA/CD的最短帧长 = 总线传播时延×数据传播速率×2 = 数据传播速率×争用期

    • 收到小于一个最小帧长的帧会默认发生了碰撞,直接丢弃

以太网取51.2μs为争用期的长度

以太网中规定的最短有效帧长就是64字节。

对于10Mb/s的以太网,在争用期内可发送512bit,即64字节。

对于100Mb/s的以太网,仍然是64字节的发送时间,所以争用期 =5.12μs

帧间间隔的理解:以太网规定了帧间最小间隔为9.6us,相当于96比特时间;

这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备

强化碰撞的理解:当发送数据的站一旦发现了碰撞时,除立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞

对于10Mb/s以太网,发送32(或48)比特只需要3.2(或4.8)us

指数退避算法:随重传次数增大而增大(动态退避)

  • 基本退避时间:一般取争用期 2τ
  • 定义参数 k : k=min[重传次数,10],即k最大为10
  • 求退避时间T : 从 [0,2^k−1] 中任取一个整数 r
  • 退避时间 t=r×基本退避时间=r*2τ
  • 重传 16 次仍不成功,说明网络拥挤,放弃发送,抛弃此帧,向高层报告错误

可以动态地适应发送站点的数量

考虑了负载对冲突的影响。

当网络负载小时,后退时延的取值范围也小

当网络负载大时,后退时延的取值范围也随着增大

CSMA/CD协议的优缺点讨论

  • 网络负载较轻时效率高
  • 硬软件实现简单、灵活
  • 网络负载较重时,碰撞发生概率增大
    • 网络效率较低
  • 由于存在多次冲突的可能,数据从发送方到达接收方的时间没有保证
    • 实时性较差

局域网技术标准

IEEE802标准将局域网的数据链路层分为两个子层

  • LLC(Logic Link Control)逻辑链路控制子层
  • MAC(Media Access Control)介质访问控制子层

局域网对LLC子层透明

==与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关== 不管采用何种协议的局域网,对 LLC 子层来说都是透明的。

image-20250313141028423

PPP协议

有连接不可靠服务

即点对点协议。是现在最流行的点对点链路控制协议。

主要有两种应用:

  • 用户通常要连接到某个ISP才能接入互联网,PPP协议就是用户计算机与ISP通信时所用的数据链路层协议
  • 广泛用于广域网路由器之间的专用线路。

组成部分:

  • 链路控制协议LCP。用来建立、配置、测试数据链路连接,以及协商一些选项。
  • 网络控制协议NCP。PPP允许采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
  • 一种将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受到最大传送单元(MTU)限制。

PPP帧的格式:

image-20250525012007171

  • 首部和尾部各有一个标志字符(F),规定为0x7E,作为定界符。

  • PPP使用异步传输时,采用字节填充法,使用的转义字符是0x7D;使用同步传输时,使用零比特填充法实现透明传输。

  • 地址字段A:占1字节,规定为0xFF

  • 控制字段C:占1字节,规定为0x03

  • 协议段:占2字节,用于识别信息字段(又称为载荷,payload)的类型

    • 0x0021,则信息字段是IP数据报
    • 0xC021,则信息字段是PPP链路控制协议(LCP)的数据
    • 0x8021:信息字段是网络控制数据(NCP)

    因为PPP是点对点的,而不是总线形

    ==所以无需使用CSMA/CD协议,没有最短帧长的限制==

  • 帧检验序列(FCS):占2字节,是使用CRC检验的冗余码。

==PPP协议状态图:==

image-20250525011739378

image-20250525013025697

==PPP协议的特点:==

  • 不使用序号和确认机制,只保证无差错接受(CRC检验)因此是不可靠服务
  • 只支持全双工的点对点链路,不支持多点线路
  • PPP的两端可以运行不同的网络层协议,但仍可以使用同一个PPP通信
  • 面向字节,所有PPP帧的长度都是整数个字节
  • 支持身份鉴别
    • PAP传密码过去核对
    • CHAP时间戳口令传过来和输入核对,避免传输密码这种敏感信息
  • 提供差错检测,但是不提供纠错功能。
  • 支持动态分配IP地址

PPP的透明传输问题(帧边界识别)

  • 同步传输(如SONET/SDH):零比特填充

    • 发送端:只要发现有 5 个连续 1,则立即填入一个 0
    • 接收端:对帧中的比特流进行扫描,每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
  • ==异步传输:字符填充==

    • 信息字段中的每一个0x7E -> 0x7D, 0x5E

    • 信息字段中的每一个0x7D -> 0x7D, 0x5D

    • 信息字段中的每一个ASCII 码控制字符(小于 0x20 的字符)

      • 前面加入 0x7D,且编码改变
        • 例:0x03-> 0x7D, 0x23

为什么PPP不使用帧序号和确认机制

1、开销就要增大 在数据链路层出现差错的概率不大时,使用比较简单的PPP 协议较为合理。 2、在因特网环境下,PPP 的信息字段放入的数据是IP 数据报。当数据帧在路由器中从数据链路层上升到网络层后,仍有可能因网络授拥塞而被丢弃。因此,数据链路层的可靠传输并不能保证网络层的传输也是可靠的

3.PPP 协议在帧格式中有帧检验序列FCS字段。端到端的差错检测最后由高层协议负责。因此,PPP 协议可保证无差错接受。

局域网

包括以太网、令牌环网、FDDI

概念

局域网(LAN)指在一个较小地理范围内,将各种计算机、外部设备和数据库系统等,通过双绞线等连接介质互相连接起来,组成资源和信息共享的计算机互连网络。

特点*

  • 地理范围有限,用户个数有限。
  • 传输速率高。局域网的传输速率一般为1~100Mb/s
  • 时延较低。能支持计算机之间的告诉通信
  • 误码率低,因近距离传输,所以误码率很低,一般在10-8~10-11之间
  • 多采用分布式控制和广播式通信
    • 在局域网中各站是平等关系而不是主从关系
    • 可以进行广播或组播

image-20250524222406049

  • 底层协议简单
    • 距离短、时延小、成本低、传输速率高、可靠性高
    • 不在乎信道利用率
  • 不单独设立网络层
    • 局域网的拓扑结构多采用总线型、环型和星型等共享信道
    • 网内一般不需要中间转接,流量控制和路由选择功能大为简化
  • 采用多种媒体访问控制技术
    • 采用共享广播信道,而信道又可用不同的传输媒体
    • 面对的是多源、多目的链路管理的问题

比特时间

比特时间:一比特时间就是发送一比特所需要的时间。

好处:便于建立信息长度和发送延迟的关系,这种时间单位与数据率密切相关。

100比特时间:假设数据率是10Mbit/s,则100比特时间等于10us

以太网与IEEE 802.3

IEEE 802.3的标准与以太网差别很小,所以将802.3局域网简称为以太网。

  • 以太网的逻辑拓扑是总线形结构,物理拓扑是星形结构。
  • 编码:曼切斯特编码
  • 采用无连接的工作方式,不对发送的数据帧编号,也不要求接收方发送确认,是不可靠的交付。
  • 逻辑上,所有计算机共享一条总线,信息以广播方式发送
  • MAC层

    • 采用CSMA/CD介质访问控制协议 为防碰撞不能节点多
    • MAC地址/物理地址
      • 总线结构
      • 给每个结点分配唯一的MAC地址
      • 48 bit,高24bit为厂商标识符,低24位由厂商自行分配
    • 适配器/网络接口卡 NIC
      • 重要功能就是数据的串并转换
        • 适配器与局域网的通信是串行方式的
        • 与计算机的通信是通过I/O总线以并行方式进行的
      • 每收到一个帧就检查帧中的目的MAC地址
      • 如果是发往本站的帧则进行处理,否则丢弃
        • 单播(unicast)帧(一对一)
        • 广播(broadcast)帧(一对全体),MAC地址为全1表示广播
        • 组播/多播(multicast)帧(一对多)
  • 10BASE-T

    • “10”表示数据率为10Mb/s
    • “BASE”表示电缆上的信号是基带信号
    • “T” 表示使用双绞线的最大长度是500m

以太网的MAC帧

image-20250524223324911

网卡中的MAC地址也称为物理地址,以太网中的MAC地址为48位,前24位为厂商代码,后24位为厂商自定义全球唯一

以太网帧最长1518B最短64B

  • 前导码:使得接收端和发送端时钟同步,8字节。
    • 前同步码:7字节,实现MAC帧的比特同步
    • 帧开始界定符:1字节,标识MAC帧的开始
  • 目的地址:6字节,目的主机的MAC地址
  • 源地址:6字节,源主机的MAC地址
  • 类型:2字节,指出数据域中携带的数据应交给哪个协议实体处理
  • 数据:46-1500字节,数据域中的数据,包含高层协议信息,由于CSMA/CD算法限制,以太网帧必须满足最小长度64字节,数据较少时需要填充
  • 填充:0-46字节,填充帧,使之达到64字节最小长度。
  • 帧检验序列(FCS):4字节,用于检测帧中的差错,采用CRC校验

对于 10M/s 的以太网,规定 51.2μs 为争用期长度,,争用期内可发送 512bit ,即 64B ,这里的 512bit 也称为比特时间,即发送 512 比特所用的时间。

故以太网帧必须满足最小长度 64B ,而MAC帧首部和尾部的长度为 18B ,因此数据域的最小长度为 64−18=46B 。最大长度 1500B 是 IEEE 802.3 数据段的最大字节数。

image-20250525010402037

6*8bit/100Mb/s=0.48us

高速以太网

10Mbit/s 以太网升级到100Mbit/s和1Gbit/s 甚至10Gbit/s时,需要解决哪些技术问题?

在帧的长度方面需要有什么改变?为什么?传输媒体应当有什么改变?

以太网升级时,由于数据传输率提高了,帧的发送时间会按比例缩短,这样会影响冲突的检测

所以需要减小最大电缆长度或增大帧的最小长度

在帧的长度方面,几种以太网都采用802.3标准规定的以太网最小最大帧长

  • 100bit/s的以太网
    • 将一个网段的最大电缆长度减小到100m
    • 将帧间间隔时间由原来的9.6 μs,改为0.96μs
  • 1Gbit/s以太网
    • 保持网段的最大长度为100m
    • 用“载波延伸”和“分组突法”的办法使最短帧仍为64字节
    • 同时将争用字节增大为512字节

传输媒体方面

10Mbit/s以太网支持同轴电缆、双绞线和光纤

100Mbit/s和1Gbit/s以太网支持双绞线和光纤

10Gbit/s以太网只支持光纤

image-20250527175534255

  • 快速

    • IEEE802.3u标准

    • 传输速率100Mb/s

    • 仍使用 IEEE 802.3 CSMA/CD 协议(全双工模式时不用)

    • MAC 帧格式仍然是 802.3 标准规定的

    • 最短帧长不变,但将一个网段的最大电缆长度减小到100m

    • 线缆标准

      100BASE-TX:使用2 对UTP 5 类线或屏蔽双绞线 STP

      100BASE-FX:使用1对光纤

      100BASE-T4:使用4对 UTP3类线或5类线

  • 千兆

    • IEEE802.3z标准

    • 传输速率1Gb/s

    • 仍使用 IEEE 802.3 CSMA/CD 协议(全双工模式时不用)

    • 线缆标准

      1000BASE-X:基于光纤

      1000BASE-SX SX表示短波长

      1000BASE-LX LX表示长波长

      1000BASE-CX CX表示铜线

      1000BASE-T:使用 4对5类双绞线UTP

  • 万兆以太网(只用在干线)

    • IEEE802.3ae标准
    • 传输速率10Gb/s
    • 帧格式不变
    • 只使用光纤
    • 只工作在全双工模式,不存在争用,因此不用CSMA/CD

局域网互联

物理层拓展局域网

  • 使用中继器(repeater)或集线器(HUB)(工作在物理层)

  • 优点:可以方便地实现网络的扩展,且成本较低

  • 缺点:碰撞域增大,碰撞发生概率增大,可能影响网络性能

数据链路层拓展局域网

网桥

  • 根据 MAC 帧的目的地址对收到的帧进行转发

  • 过滤帧的功能

    • 当收到一个帧时,检查该帧的目的 MAC 地址,确定将该帧转发到哪一个接口

    • 无需转发 丢弃

    • 广播帧(目的地址是全1)向其他端口都转发

  • 隔离碰撞域功能

    • 不同网段物理信号隔开->碰撞检测独立进行

image-20250313152231246

例子:1-> 3 无需转发 丢弃(过滤功能)

​ 5-> 2 转发

  • 优点

    • 过滤通信量、增大吞吐量
      • 隔离碰撞域
    • 扩大了物理范围
    • 提高了可靠性
    • 互连不同物理层、不同 MAC 子层和不同速率的局域网
      • 因为数据链路层相同
  • 缺点

    • 广播风暴
      • 因某些站点频繁发送广播帧产生网络拥塞
      • 只适合于用户数不太多(不超过几百个)和通信量不太大的局域网
    • 存储转发增加时延
    • 在MAC子层并没有流量控制功能

透明网桥(transparent bridge)

  • 站点并不知道所发送的帧将经过哪几个网桥,网桥对各站“透明”

  • 是一种即插即用设备,标准:IEEE 802.1D

  • 自学习算法(self-learning)建立转发表

    • 原理:若从 A 发出的帧从接口 x 进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到 A

    • 初始时转发表为空,通过自学习逐步建立

    • 网桥收到一个帧后的处理过程

      • 首先进行自学习,检查帧中源地址在转发表中是否存在,如不存在,则在转发表添加一项,记下源地址和进入网桥的接口

      • 然后转发帧,根据收到的帧中的目的地址在转发表中查找如果找到,则对应的接口即为转发接口

        如果未找到,则向除进入接口外的所有其他接口转发(泛洪)

    image-20250525003248472

  • 生成树算法

    • 用途:当多个局域网互连形成环路时,避免帧无休止转发

    • 方法:建立生成树,找出网络拓扑的一个子集

    • 网络拓扑动态变化,生成树需定期更新

      image-20250525003302125

多接口网桥—交换机/交换式集线器

  • 网路接口:十几到几十个,每个接口可连接主机或其他交换机
  • 工作原理:网桥,每一个网络接口被视为一个网段
    • 交换机是一种多接口网桥
  • 与集线器相比
    • 提高网络性能:交换机工作在数据链路层,每个接口为一个网段(碰撞域)
    • 集线器由所有接口共享传输介质的带宽,而交换机为每个接口独享带宽

虚拟局域网(VLAN)

  • IEEE 802.1Q在以太网帧中加入tag字段,供交换机识别转发

  • VLAN(Virtual LAN),在现有局域网基础上,通过将网络站点分组,构成若干逻辑上独立的虚拟局域网

  • 注意:帧不会在两个VLAN之间自动转发,包括广播帧

  • ==VLAN的用途:便于管理、控制广播风暴、安全性、…==

    image-20250525003451392

不同VLAN主机无法直接数据链路层通信,属于不同广播域

即使连在一个交换机,也不行

划分方法

  • MAC地址
  • IP地址
  • 接口

题目

image-20250524195546153

image-20250524195531696

某局域网采用CSMA/CD协议实现介质访问控制,数据传输率为100Mb/s,主 机甲和主机乙的距离为2km,信号传播速度是200000km/s。请回答下列问题, 并给出计算过程。

(1) 若主机甲和主机乙发送数据时发生冲突,则从开始发送数据时刻起,到两台主机均检测到冲突时刻为止,最短经过多长时间?最长经过多长时间?(假 设主机甲和主机已发送数据时,其它主机不发送数据)

甲乙间单向传输时延= 2/200000 = 10us 最短:无论冲突点在何处,冲突信号向甲乙方向扩散的总时间不小于10us 最长:甲发送的帧即将到达乙时,乙开始发送数据造成冲突,甲检测到该冲突的 时间= 20us

image-20250524221550103

2)若网络不存在任何冲突与差错,主机甲总以标准的最长以太网数据帧(1518 字节)向主机乙发送数据,主机乙成功收到一个数据帧后,就立即向主机甲发送一个64字节的确认帧,主机甲收到确认帧后方可发送下一个数据帧。此时主机甲的有效数据传输速率是多少(不考虑以太网的前导码)?

甲方发送一个数据帧的时间即发送时延t1=1518x8bit-10Mbs=1.2144ms

乙方确认帧的发送时延t2=64x8bit-10Mb/s=0.0512ms

甲方的发送周期T=数据帧发送时延t1+确认帧发送时延t2+双程传播时延 2t0=1.2856ms

有效数据传输速率=信道利用率x信道带宽(最大数据传输速率)

有效数据传输速率=发送周期内发送的数据量/发送周期

以太网帧的数据部分为1500B

1500x8/T=12000bit/1.2856ms=9.33Mb/s。

在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,传输速率为1Gbps,电缆中的信号传播速度是200000km/s。若最小数据帧长度减少800 比特,则最远的两个站点之间的距离至少需要:

争用期=800bit/1Gbps

争用期=2*单向时延=2*L/200000km/s

为什么局域网采用广播通信 方式而广域网不采用 呢?

局域网:

局域网中的机器都连接到同一条物理线路,所有主机的数据传输都经过这条链路

采用的通信方式是将主机要发送的数据送到公用链路上,发送至所有的主机,接收端通过地址对比,接收发往自己的数据,并丢弃其他数据的方式。

广域网:

由更大的的地理空间、更多的主机构成的

  • 主机间发送数据时,将会独自占用通信链路,降低了网络的使用率
  • 消耗主机的处理能力、造成了数据的无效流动
  • 极易产生广播风暴

假定站点A和B在同一个10 Mbit/s以太网网段上。这两个站点之间的传播时延为 225比特时间。现假定A开始发送一帧,并且在A发送结束之前B也发送一帧。

如果A发送的是以太网所容许的最短的帧,那么A在检测到和B发生碰撞之前能否把自己的数据发送完毕?换言之,如果A在发送完毕之前并没有检测到碰撞,那么能否肯定A所发送的帧不会和B发送的帧发生碰撞?(提示:在计算时应当考虑到每一个以太网帧在发送到信道上时,在MAC帧前面还要增加若干字节的前同步码和帧 定界符。)

设在t=0时A开始发送

若干字节的前同步码和帧定界符总共8字节,一个字节等于8bit

在t=(64+8)*8=576比特时间,A发送完毕

假定B在t=224比特时间时发送了数据,在t=255比特时间时,b检测出碰撞,发送信号

经225比特时间到达A,这时t=449比特时间,A还没有发送完毕(224+225=450<576)

因此A在检测到和B发生碰撞之前,不能把自己的数据发送完

如果A在发送完毕之前并没有检测到碰撞,能肯定A所发送的帧不会和B发送的帧发生碰撞

上题中的站点A和B在t = 0时同时发送了数据帧。当t= 225比特时间,A和B同 时检测到发生了碰撞,并且在t= 225 + 48 = 273比特时间完成了干扰信号的传输。

A 和B在CSMA/CD算法中选择不同的r值退避。假定A和B选择的随机数分别是rA =0和rs= 1。

试问A和B各在什么时间开始重传其数据帧?

A重传的数据帧在什么 时间到达B?

A重传的数据会不会和B重传的数据再次发生碰撞?

B会不会在预定的重传时间停止发送数据?

时刻 事件
t=0 A 和 B 同时发送
t=225 双方检测到碰撞
t=273 = 225 + 48 双方完成干扰信号发送
A退避 rA=0 ⇒ 等0比特时间;B退避 rB=1 ⇒ 等512比特时间
A在 t=273 之后立即检测信道
信道实际空闲时间 = t=498(273 + 225)48bit的最后1bit到达的时间
A帧间间隔等待96 ⇒ t=498 + 96 = 594 比特时间,A开始重传
A信号传播至B需要 225 ⇒ A的帧在 t=594 + 225 = 819 比特时间到达B
B在 t=785(273 + 512)检测信道,发现它还在被A占用(直到819) B载波监听
因此B不能在 t=881 发送帧,必须重新退避等待