文章目录

  • 计算机网络第三章 数据链路层
    • 3.1 使用点对点信道的数据链路层
      • 帧——数据链路层的协议数据单元
      • 基本问题
        • 封装成帧
        • 透明传输
        • 差错检测
    • 3.2 点对点协议PPP(Point-to-Point Protocol)
      • PPP协议应满足的需求:
      • PPP协议的组成
      • PPP协议帧格式
      • 透明传输
      • **异步传输时的字符填充规则:**
      • **同步传输时零比特填充规则:**
      • PPP协议为什么不使用序号和确认机制?
      • **PPP协议的工作状态:**
    • 3.3 使用广播信道的数据链路层
      • 局域网
      • 以太网
        • **网卡功能:**
        • 以太网最初的设计:
      • CSMA/CD协议——载波监听多点接入/碰撞检测
        • 以太网发送的数据都使用曼彻斯特编码的信号。
        • 多点接入
        • 载波监听
        • 碰撞检测
        • 争用期
        • 截断二进制指数退避算法
        • 最短帧长
        • CSMA/CD工作流程:
      • 集线器
      • 以太网的信道利用率
      • 以太网的MAC层
        • MAC帧格式
    • 3.4 扩展的以太网
      • 物理层扩展以太网
      • 数据链路层扩展以太网
      • 虚拟局域网VLAN
    • 3.5 高速以太网
      • 100BASE-T以太网
      • 吉比特以太网
      • 10吉比特以太网
      • 为什么计算机进行通信时发送缓存和接收缓存总是需要的?
      • 是什么原因使以太网有一个最小帧长和最大帧长?
      • 一个单个的以太网上所使用的网桥数目有没有上限?
      • 如果在数据链路层不进行封装成帧,会发生什么问题?
      • 为什么 PPP 不使用帧的编号? PPP 适用千什么情况?为什么 PP 协议不能使数据链路层实现可靠传输?
      • 以太网使用的 CSMA/CD 协议是以争用方式接入到共享信道的。这与传统的时分复用 TOM 相比优缺点如何?

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

​ 数据链路层使用的信道主要有以下两种类型

  • 点对点信道:这种信道使用一对一的点对点通信方式
  • 广播信道:这种信道使用一对多的广播通信方式

3.1 使用点对点信道的数据链路层

  • 链路指的是物理概念上相邻两个结点之间的一段物理线路
  • 数据链路除了物理线路以外,还需要一些必要的通信协议以及相关的硬件软件加到链路上,才算构成数据链路。最常用的方法是使用==网络适配器(“网卡”)==来实现这些协议。

​ 早期的数据通信协议曾叫做通信规程,因此在数据链路层,规程和协议是同义语。

帧——数据链路层的协议数据单元

​ 数据链路层把网络层交下来的数据(IP数据报)构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。

​ 点对点信道的数据链路层在通信时的主要步骤

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

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

基本问题

封装成帧

​ 在一段数据的前后分别添加首部和尾部, 然后就构成了一个帧。

​ 首部和尾部的一个重要作用就是进行帧定界
​ 控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始;另一个控制字符EOT(End Of Transmission)表示帧的结束。

透明传输

​ 透明传输是指不管从键盘上输入什么字符都可以放在这样的帧中传输出去。

​ 显然如果当数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧收下,而把剩下的那部分数据丢弃。(这样的传输就不叫“透明传输”)

​ 解决方法:

  • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
  • 如果转义字符也出现在数据中,那么应在转义字符前面插入一个转义字符ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个

**特殊比特填充法:**当数据是由二进制组成的比特块时,帧定界可以使用特殊的比特串。帧开始和帧结束用01111110

  • 发送方:报文中连续5个1,后面插入0(插入开始/结束帧之前)
  • 接收方:收到连续5个1:后为0,去掉;为1,后为0,则帧结束;否则出错。
差错检测

​ 在传输过程中可能会产生比特差错:1可能会变成0,而0也可能会变成1

​ **误码率:**在一段时间内,传输错误的比特占所传输比特总数的比率

​ 在数据链路层传输的帧中,使用了很多检错技术,包括:

  • 奇偶校验

    通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。

    当采用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

  • 循环冗余检验CRC

    例:若给定的CRC生成多项式 P ( X ) = X 3 + X + 1 P(X) = X^3 + X + 1 P(X)=X3+X+1,则除数为1011(多项式次数对应非0则除数对应位为1,否则为0),要发送的数据为10001101,则首先在数据末尾添上三个0(跟多项式最高次数相同数量的0),即10001101000,并将补足后的数据作为被除数,进行模2运算,模2运算的规则是1001与1011运算后得到0010(即每一位进行异或运算)。重复上述运算直到商的位与最后一位一致,将余数三位放入补足数据的后三位原先是0的位置作为CRC校验位。

    作为接收端,要验证是否出现差错只需要将传输来的数据以及CRC校验位用上述同样的运算规则与生成多项式对应的1011除数进行运算,若最终余数为0则判定这个帧没有差错,接受该帧;否则判定该帧出错(但无法确认具体是哪一位出错),并丢弃。

​ 在数据链路层若仅仅使用循环冗余检验CRC差错技术,则只能做到对帧的无差错接受(因为凡是检验出错的帧都会被丢弃,同时接受的帧都能以接近于1的概率认为这些帧在传输过程中没有出错)。因此也可以说,“凡是接收端数据链路层接受的帧均无差错”。

​ 无传输差错不仅仅指无比特差错,同时也需要包含对于帧丢失、帧重复、帧失序等问题的处理。


无比特差错不等于可靠传输,为什么?

  1. 两者处于不同层次,可靠传输指的是传输层,而无比特差错仅停留在数据链路层
  2. 可靠传输需要有重传确认机制
  3. 数据链路层并不提供可靠传输(我们不要求它去提供,目的是为了提高通信效率)

3.2 点对点协议PPP(Point-to-Point Protocol)

​ 互联网用户需要连接到某个ISP才能接入互联网。PPP协议就是用户计算机和ISP(已向互联网管理机构申请到一批IP地址)进行通信时所使用的数据链路层协议。

PPP协议应满足的需求:

  • 简单

    • 提供的是不可靠的数据报服务。
    • 对于数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制
    • 总之,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。
  • 封装成帧

  • 透明性

  • 多种网络层协议

  • 多种类型链路

  • 差错检测

    • 立即丢弃有差错的帧
  • 检测连接状态

  • 最大传送单元MTU

    • MTU的默认值为1500字节
  • 网络层地址协商

  • 数据压缩协商

​ 在TCP/IP协议族中,可靠传输由运输层的TCP协议负责,因此数据链路层的 PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站进行通信),而只支持点对点的链路通信。此外,PPP协议只支持全双工链路。

PPP协议的组成

  1. 一个将IP数据报封装到串行链路的方法。IP数据包在PPP帧里面就是其信息部分,受MTU的限制
  2. 链路控制协议LCP
  3. 网络控制协议NCP

PPP协议帧格式

  • PPP帧的首部有四个字段,尾部有两个字段
  • 首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),规定为0x7E(二进制表示为01111110)。标志字段表示一个帧的开始或结束,即PPP帧的定界符。如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。
  • 首部的第二个地址字段A规定为0xFF,第三个控制字段C规定为0x03。
  • 首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据。
  • 尾部的第一个字段(2字节)是使用CRC的帧检验序列FCS
  • 首部和尾部中间的信息字段(IP数据报)的长度是可变的,不超过1500字节。

透明传输

  • 当PPP用在异步传输时,就使用一种特殊的字符填充法
  • 当PPP在同步传输链路时,协议规定采用硬件来完成比特填充

异步传输时的字符填充规则:

  1. 把信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)
  2. 若信息字段中出现一个0x7D的字节,则将其转变为2字节序列(0x7D,0x5D)
  3. 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变成2字节序列(0x7D,0x23)。

同步传输时零比特填充规则:

  1. 只要发现有5个连续1,则立即填入一个0。经过这种零比特填充后的数据,就可以保证在信息字段中不会出现6个连续1.
  2. 接收端先找到标志字段F以确定一个帧的边界,接着用硬件将比特流中连续5个1后的一个0删除,以还原成原来的信息比特流。

PPP协议为什么不使用序号和确认机制?

  • 在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理
  • 在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的。
  • 帧检验序列FCS字段可保证无差错接受

PPP协议的工作状态:

  • 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
  • PC机向路由器发送一系列的LCP分组
  • 这些分组及其响应选择一些PPP参数,并进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机称为因特网上的一个主机
  • 通信完毕时,NCP释放网络连接,收回原来分配出去的IP地址。接着LCP释放数据链路层连接,最后释放物理层的连接。

​ PPP协议不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。


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

局域网

​ 主要特点:

  • 网络为一个单位所拥有
  • 地理位置和站点数目均有限

主要优点:

  • 具有广播功能,从一个站点可以很方便地访问全网

  • 便于系统的扩展和逐渐演变,各设备的位置可灵活调整和改变

  • 提高了系统的可靠性、可用性和残存性

​ 采用一对多的广播通信模式会导致多个设备在广播信道上同时发送数据时,造成彼此干扰,导致发送失败。

解决方法:

  • 静态划分信道:例如频分复用、时分复用、波分复用、码分复用等,但这种划分信道的方法代价较高,不适合于局域网使用
  • 动态媒体接入控制(多点接入):其特点是信道并非在用户通信时固定分配给用户
    • 随机接入:所有用户可随机地发送信息,常见的有以太网
    • 受控接入:用户不能随机地发送信息而必须服从一定的控制,常见的有探询,或者叫轮询

以太网

​ 第一个IEEE的以太网标准IEEE 802.3,数据率为10Mbit/s。

​ IEEE 802委员会将局域网的数据链路层拆成两个子层:

  • 逻辑链路控制LLC子层(在适配器中几乎已经被淘汰)
  • 媒体接入控制MAC子层

​ 与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关。

​ 计算机通过通信适配器(网卡)连接到局域网。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的。而适配器和计算机之间的通信则是通过计算机主板上的IO总线以并出书方式进行的。

​ 适配器在接收和发送帧时,不使用计算机的CPU。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。计算机的硬件地址就在适配器的ROM中,而计算机的软件地址——IP地址,则在计算机的存储器中。


网卡功能:
  1. 进行串行/并行转换
  2. 对数据进行缓存
  3. 在计算机的操作系统中安装设备驱动程序
  4. 实现以太网协议

以太网最初的设计:
  • 将许多计算机连接到一根总线上,因为易于实现广播通信,同时既简单又可靠(因为总线上没有有源器件)
  • 为了实现一对一通信/寻址,将接收站的硬件地址写入帧首部中的目的地址字段中,仅当数据帧中的目的地址与适配器的硬件地址一致时,才能接收这个数据帧。

​ 为了通信的简便,以太网采取较为灵活的无连接的工作方式:不必先建立连接就可以直接发送数据;对发送的数据帧不进行编号,也不要求对方发回确认。(这样做的理由是局域网信道的质量很好,因此产生差错的概率是很小的)

​ 以太网提供的服务是不可靠交付,即尽最大努力的交付。当目的站收到有差错的数据帧时就直接丢弃此帧。


CSMA/CD协议——载波监听多点接入/碰撞检测

​ 以太网中多台计算机或多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。

​ 如何才能避免?采用CSMA/CD,即载波监听多点接入/碰撞检测。

以太网发送的数据都使用曼彻斯特编码的信号。
  • 优点:把每一个码元再分成两个相等的部分,这样保证了每一个码元的正中间出现一次电压的转换,便于接收端提取位同步信号。
  • 缺点:所占的频带宽度比原始的基带信号增加了一倍。
多点接入

​ 说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。

载波监听

​ “载波监听”指的是每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。不管在发送前,还是在发送中,每个站都必须不停地检测信道。

碰撞检测

​ “碰撞检测”(“冲突检测”)就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值就会增大。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明发生了碰撞。

争用期

​ 电磁炮在1km电缆的传播时延为5μs。

​ 局域网的一端A需要单程传播时延的2倍的时间,才能检测到与另一端B的发送产生了冲突。将这边的端到端往返时延 2 τ 2\tau 2τ 称为争用期,或碰撞窗口。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

​ 因此在使用CSMA/CD协议时一个站不可能同时进行发送和接收,所以使用CSMA/CD的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。

​ ==发送的不确定性:==每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离。

经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发送碰撞。

​ 如果希望以太网发生碰撞的机会很小,则必须使整个以太网的平均通信量远小于以太网的最高数据率。

截断二进制指数退避算法

发生碰撞的站在停止发送数据后,要推迟一个随机时间t才能再发送数据。

  • 设 k = Min[重传次数, 10](当k≤10时,参数k等于重传次数)

算法如下:

  • 基本退避时间取为争用期 2 τ 2\tau 2τ
  • 从整数集合[0,1,…,( 2 k − 1 2^k-1 2k−1)]中随机选取一个数,记为r。则重传所需的等待时间 t = r ∗ 2 τ t = r * 2\tau t=r∗2τ
  • 当重传达16次仍不能成功时即丢弃该帧,并向高层报告
最短帧长

​ 由于存在一种可能:即发送端的帧非常短,在 2 τ 2\tau 2τ 争用期内就已经把帧全部发送出去(并且在这期间没有检测到冲突),那么就不会收到帧发生碰撞的情况,也就不会进行重传了,这显然不是我们所希望的。

​ 解决这一问题的办法:考虑到对于10 Mbit/s的以太网,在 2 τ 2\tau 2τ 也就是 51.2 μ s 51.2 \mu s 51.2μs时间内能够发送512bit,即64字节,因此规定最短帧长不得小于64字节,如果发送的数据非常少,则需要加入一些填充字节补齐至64字节。(凡收到长度小于64字节的帧都是由于冲突而异常中止的无效帧,应当立即丢弃)。

​ 电磁波在光线中的传播速率约为: 2 ∗ 1 0 8 m / s 2 * 10 ^8 m/s 2∗108m/s,所以在10 Mbit/s以太网中,信号最远能传输的距离是:
1 2 ∗ 51.2 ∗ 1 0 − 6 ∗ 2 ∗ 1 0 8 ≈ 5000 m \frac{1}{2} * 51.2 * 10 ^{-6} * 2 * 10^{8}\approx 5000m 21​∗51.2∗10−6∗2∗108≈5000m

​ 强化碰撞:当发送数据的站一旦发现了碰撞时,除了立即停止发送数据外,还要再继续发送32bit或者48bit的认为干扰信号,以便让所有用户都知道现在以及发生了碰撞。

以太网还规定了帧间最小间隔为9.6 μ s \mu s μs,相当于96比特时间。这样做是为了使刚到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

CSMA/CD工作流程:

**(1)准备发送:**适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,但在发送之前,必须先检测信道

**(2)检测信道:**若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲,就发送这个帧。

(3)发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里存在两种可能性:

  1. 发送成功:争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完后什么也不做。回到准备发送阶段
  2. 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。然后执行指数退避算法,等待r倍512比特时间后,返回到检测信道阶段;若重传达16次仍不能成功,则停止重传而向上报错

​ 以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测发生了碰撞,则在推迟一段时间后再把这个暂时保留的帧重传一次。

载波监听了,为什么还要进行碰撞检测?

因为信号存在传播时延,如果两个站同时侦听发现总线上没有信号并同时发送,就会造成碰撞。


集线器

​ 以太网从之前的总线结构逐渐过渡到星形拓扑结构,在星形的中心增加了一种可靠性非常高的设备——集线器。(使用双绞线)

​ IEEE制定星形以太网 10BASE-T的标准802.3i。“10”代表10Mbit/s数据率。

传统以太网使用同轴电缆/总线型拓扑结构

使用集线器的双绞线以太网

10BASE-T的特点:

  • 使用无屏蔽双绞线,采用星形拓扑
  • 每个站需要用两对双绞线,分别用于发送和接收
  • 双绞线的两端使用RJ-45插头
  • 集线器使用了大规模集成电路芯片,因此集线器的可靠性提高
  • 每个站到集线器的距离不超过100m

集线器的特点:

  1. 集线器工作在物理层,只是简单地转发比特,不进行碰撞检测。
  2. 使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。
  3. 同一时刻至多只允许一个站发送数据。

采用集线器的以太网在逻辑上是总线网,物理拓扑为星型(考点☆)
用集线器扩展以太网优缺点(考点√)

  • 优点:

    • 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。
    • 扩大了以太网覆盖的地理范围。
  • 缺点:
    • 碰撞域增大了,但总的吞吐量并未提高。
    • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

以太网的信道利用率

​ 成功发送一个帧需要占用信道的时间是: T 0 + τ T_0 + \tau T0​+τ,比这个帧的发送时间要多一个单程端到端时延。(因为极端情况下,发送站在传输媒体的一端,而比特在媒体上传输到另一端所需的时间是 τ \tau τ)

​ 要提高以太网的信道利用率,就必须减小 τ \tau τ 和 T 0 T_0 T0​ 之比。

​ 在以太网中定义了参数 a ,它是以太网单程端到端时延 τ \tau τ 与帧的发送时间 T 0 T_0 T0​ 之比: a = τ T 0 \large a = \frac{\tau}{T_0} a=T0​τ​
​ a → 0 a \rightarrow 0 a→0时,表示一发生碰撞就可以立即检测出来,并立即停止发送,因而信道利用率很高。
​ a → ∞ a \rightarrow \infty a→∞时,表示争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。

​ 为了让上述式子中的分子尽可能小,分母尽可能大,当数据率一定时:1、以太网的连线的长度受到限制 2、同时以太网的帧长不能太短

​ 极限信道利用率 S m a x S_{max} Smax​为 S m a x = T 0 T 0 + τ = 1 1 + a S_{max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1+a} Smax​=T0​+τT0​​=1+a1​,该等式表明:虽然实际的以太网不可能有这样高的极限信道利用率,只有当参数a远小于1才能得到尽可能高的极限信道利用率。反之,若参数a远大于1,则极限信道利用率就远小于1,而这时实际的信道利用率就更小了。


以太网的MAC层

​ 在局域网中,硬件地址又被称为物理地址或MAC地址。

​ 在IEEE802规定的48位MAC地址字段中,前三个字节(高24位)是由RA向厂家分配的组织唯一标识符,后三个字节(低24位)是由厂商自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复的地址。

​ 当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。

​ 适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址。如果是发往本站的帧则收下。

​ “发往本站的帧”包括以下三种帧:

  • 单播帧(一对一):收到的帧的MAC地址与本站的硬件地址相同
  • 广播帧(一对全体),发送给本局域网上所有站点的帧(全1地址)
  • 多播(组播)帧(一对多)发送给本局域网一部分站点的帧
MAC帧格式

​ 最常用的MAC帧是以太网V2的格式。其格式为:前十二字节分别为目的地址和源地址(开头是目的,然后是源),然后是两个字节的类型字段(用来标记上一层使用的是什么协议),第四个字段是数据字段,其长度范围在46字节到1500字节之间(46是为了保证整个MAC帧的最小长度为64字节),最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。

MAC帧如何判断帧结束?
由于以太网采用曼彻斯特编码传输信息,因此在曼彻斯特编码的每一个码元的正中间一定有一次电压的转换,当发送方把一个以太网帧发送完毕后,就不在发送其他码元了。因此发送方网络适配器的接口上的电压也就不再变化了。这样接收方就可以很容易地找到以太网帧的结束位置了。往前数4字节就能确定数据字段的结束位置

​ 在传输媒体上实际传送的要比MAC帧还多8个字节。这是因为当一个站在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接收,结果使整个MAC成为无用的帧。所以为了快速实现位同步,从MAC子层向下传到物理层时还需要在帧的前面插入8字节(由硬件生成),它由两个字段构成:第一个字段是7个字节的前同步码,作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步(“实现位同步”)。第二个字段是帧开始定界符10101011。
==注意:==在使用SONET/SDH进行同步传输时不需要用前同步码,因为在同步传输时收发双方的位同步总是一直保持着的。

​ 还需注意,在以太网上传送数据时是以帧为单位传送的。以太网在传送帧时,各帧之间还必须有一定的间隙。因此,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个 MAC 帧。可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。

什么情况下MAC帧是无效帧?

  • 数据字段的长度与长度字段的值不一致
  • 帧的长度不是整数个字节
  • 用收到的帧检验序列FCS查出有差错
  • 收到的帧的MAC客户数据字段的长度不在46~1500字节之间(即MAC帧长度不在64~1518字节之间)

对于检查出的无效的MAC帧就简单丢弃,以太网不负责重传丢弃的帧


3.4 扩展的以太网

​ 在许多情况下,我们希望对以太网的覆盖范围进行扩展。扩展的以太网在网络层看来仍然是一个网络

物理层扩展以太网

常用手段:

  • 使用光纤扩展

    主机使用光纤(通常是一对)和一对光纤调制解调器连接到集线器,光纤调制解调器的作用就是进行电信号和光信号的转换,使用这种方法可以很容易使主机和几公里以外的集线器相连接

  • 使用集线器扩展

    将多个以太网连接成更大的、多级星形结构的以太网

    • 优点:使原来属于不同碰撞域的网络能够接入同一碰撞域,扩大了以太网覆盖的地理范围。
    • 缺点:碰撞域扩大了但总吞吐量没有提高,如果不同碰撞域使用不同的数据率,那么就不能采用集线器将他们互连起来。

​ 碰撞域是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。碰撞域越大,发生碰撞的概率越高。


数据链路层扩展以太网

​ 早期使用网桥,现在使用以太网交换机。

​ 网桥原理:当网桥收到一个帧时,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者是把它丢弃。

  • 网桥工作在数据链路层
  • 它根据 MAC 帧的目的地址对收到的帧进行转发和过滤。
  • 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。
  • 网桥可以互联不同类型的局域网
  • 网桥使各网段成为隔离开的碰撞域。

以太网交换机的工作原理与特点

  • 以太网交换机实质上就是一个多接口的网桥。 通常都有十几个或更多的接口。
  • 每个接口都直接与一个单台主机或另一个以太网交换机相连 。工作在全双工方式。
  • 以太网交换机具有并行性。能同时连通多对接口,使多对主机能同时通信。
  • 以太网交换机的每个接口是一个碰撞域。相互通信的主机都是独占传输媒体,无碰撞地传输数据。

​ 以太网交换机也叫交换式集线器、第二层交换机,实质上就是一个多接口的网桥,相互通信的主机独占传输媒体,无碰撞地传输数据。

​ 以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存

​ 以太网交换机是一种即插即用的设备,其内部的帧**交换表(地址表)**是通过自学习算法自动地逐渐建立起来的。

​ 传统10Mbit/s的共享式以太网若共有10个用户,则每个用户占有的平均带宽只有1Mbit/s;而若使用以太网交换机来连接,虽然每个接口到主机的带宽还是10Mbit/s,但单独用户通信是独占而不是与其他网络用户共享带宽,因此拥有10个接口的交换机的总容量为100Mbit/s。

​ 以太网交换机的交换方式有两种:存储转发方式和直通方式

​ 以太网的自学习功能示意图

例题:假设:A 向 B 发送了一帧,C 向 E 发送了一帧,E 向 A 发送了一帧。请分析:此时,S1 和 S2 的交换表内容分别是什么?

解答:

​ 自学习功能存在的问题:回路(自学习过程中导致以太网帧在网络的某个环路中无限制地兜圈子)

​ 解决方案:生成树协议STP:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。

​ 以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,以全双工方式工作,但仍然采用以太网的帧结构。


虚拟局域网VLAN

​ 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。

​ 虚拟局域网的优点:

  • 改善了性能(避免了广播风暴)
  • 简化了管理
  • 降低了成本
  • 改善了安全性

​ 划分方法:

  1. 基于交换机端口(第一层)
  2. 基于计算机网卡的MAC地址(第二层)
  3. 基于协议类型的方法(第二层)
  4. 基于IP子网地址的方法(第三层)
  5. 基于高层应用或服务的方法

​ VLAN的以太网帧格式(802.1Q帧):在MAC帧格式的基础上,在源地址字段和类型字段中间加入了4字节的VLAN标记字段,用来指明该帧属于哪一个虚拟局域网。前两个字节总是设为0x8100,称为IEEE802.1Q标记类型,后两字节是标记控制信息。
​ 这样的VLAN帧长度为68~1522字节(比MAC帧多4字节)222


3.5 高速以太网

速率达到或超过100Mbit/s的以太网称为高速以太网。

100BASE-T以太网

又被称为快速以太网,其代号为 IEEE802.3u

特点:

  • 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用CSMA/CD协议
  • 保持最短帧长不变,但将一个网段的最大电缆长度减小到100米
  • 帧间时间间隔从原来的9.6 μ s \mu s μs改为现在的0.96 μ s \mu s μs

吉比特以太网

  • 允许在1Gbit/s下以全双工和半双工两种方式工作

  • 在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议。

  • 为保持64字节最小帧长度,以及100米的网段的最大长度,吉比特以太网增加了两个功能:

    • 载波延伸

      使最短帧长仍为64字节,同时将争用时间增大为512字节。

      凡发送的MAC帧长不足512字节时,就用一些特殊字符填充在帧的后面,使MAC帧的发送长度增大到512字节。接收端在收到以太网的 MAC 帧后,要将所填充的特殊字符删除后才向高层交付。

    • 分组突发

      当很多短帧要发送时,第一个短帧采用载波延伸方法进行填充,随后的一些短帧可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发。

  • 当吉比特以太网工作在全双工方式时,不使用载波延伸和分组突发

10吉比特以太网

主要特点:

  • 与10Mbit/s、100Mbit/s和1Gbit/s以太网帧格式完全相同
  • 不再使用铜线而只使用光纤作为传输媒体
  • 只工作在全双工方式

为什么计算机进行通信时发送缓存和接收缓存总是需要的?

  • 缓存可以很好地解决发送速率和接收速率不一致的矛盾,还可以很方便地进行串并转换,即比特流串行写入并行读出,或并行写入串行读出。

是什么原因使以太网有一个最小帧长和最大帧长?

  • 最小帧长

    • 对于有用的非常短的帧,以太网标准规定要在数据部分进行填充,使其长度达到以太网标准规定的最小帧长的长度。因发生碰撞而异常中止的短帧的长度肯定都是小于最小帧长的长度。
    • 如果以太网上偶尔出现噪声,这也会形成很短的帧,其长度也是小于以太网标准规定的最小帧长的长度。规定了最小帧长就可以把由噪声产生的短帧丢弃。
  • 最大帧长
    • 设置最大帧长是为[保证各个站都能公平竞争接入到以太网。因为如果某个站发送特长的数据帧,则其他的站就必须等待很长的时间才能发送数据。

以太网的覆盖范围受限的一个原因是如果站点之间的距离太大,那么由于信号传输时会衰减得很多因而无法对信号进行可靠的接收 试问:如果我们设法提高发送信号的功率,那么是否就可以增大以太网的通信距离?

​ 不可以。能否正确接收信号并非取决于信号的绝对功率大小,而是取决于信噪比。以太网信道中的噪声主要是其他双绞线中的信号通过电磁感应所造成的 。如果所有的站都提高信号的发送功率,那么这种噪声功率也随之增大,结果信噪比并未提高,因而并没有降低误码率 所以依靠增大信号的发送功率是不能增大以太网的通信距离的


一个单个的以太网上所使用的网桥数目有没有上限?

​ 网桥仍然使用 CSM CD 协议,因此,从原理上讲,以太网似乎不应当对网桥的数目有什么限制 但是要知道,每 一个网桥会引入一帧的时延。因此,以太网上的网桥太多就会影响到以太网的性能。


如果在数据链路层不进行封装成帧,会发生什么问题?

​ 如果在数据链路层不进行封装成帧,那么数据链路层在收到一些数据时,就无法知道对方传送的数据中哪些是数据,哪些是控制信息,甚至数据中有没有差错 不清楚(因为无法进行差错检测)。数据链路层也无法知道数据传送结束了没有,因此不知道应当在什么时候把收到的数据交给上一层


为什么 PPP 不使用帧的编号? PPP 适用千什么情况?为什么 PP 协议不能使数据链路层实现可靠传输?

  • PPP 不使用帧的编号,因为帧的编号是为了出错时可以有效地重传,而 PPP 并不需要实现可靠传输。

  • PPP 适用于线路质量不太差的清况下。如果通信线路太差,传输就会频频出错。但 PPP又没有编号和确认机制,这样就必须靠上层的协议(有编号和重传机制)才能保证数据传输的正确无误。这样就使数据的传输效率降低。


以太网使用的 CSMA/CD 协议是以争用方式接入到共享信道的。这与传统的时分复用 TOM 相比优缺点如何?

  • 应当说, CSMA/CD 协议与传统的时分复用 TDM 各有优缺点。

    • 网络上的负荷较轻时, CSMA/CD 协议很灵活,哪个站想发送就可以发送,而且发生碰撞的概率很小 。如使用时分复用 TDM, 效率就比较低。
    • 当很多站没有信息要发送时,分配到的时隙也浪费了 。但网络负荷很重时, CSMA/CD 协议引起的碰撞很多,重传经常发生,因而效率大大降低。但这时 TDM 的效率就很高。









【计算机网络】南航计算机网络第三章 数据链路层相关推荐

  1. 计算机网络原理笔记 第三章 数据链路层(一)

    计算网络原理 第三章 数据链路层 数据链路层(一) 3.1 使用点对点信道的数据链路层 3.1.1 数据链路层和帧 3.1.2 三个基本问题 数据链路层的信道类型 3.2 点对点协议 PPP 3.2. ...

  2. [吴功宜]计算机网络学习笔记--第三章 数据链路层

    教材:计算机网络(第四版) 作者:吴功宜 吴英 出版社:清华大学 第三章 数据链路层 3.1 差错产生的原因与差错控制方法 物理线路:由传输介质与通信设备组成 设计数据链路层的主要目的:在有差错的物理 ...

  3. 计算机网络原理第二章笔记,计算机网络原理笔记 第三章 数据链路层(一)

    数据链路层(一) 3.1 使用点对点信道的数据链路层 3.1.1 数据链路层和帧 数据发送模型 数据链路层的信道类型 数据链路层使用的信道主要有以下两种类型:点对点信道.这种信道使用一对一的点对点通信 ...

  4. 计算机网络知识点总结——第三章数据链路层

    目录 一.功能概述 二.封装成帧&透明传输 (一)封装成帧 (二)⭐透明传输⭐ (三)组帧的四种方法 三.差错控制(检错编码) (一)冗余编码 (二)⭐奇偶校验码⭐ (三)⭐⭐循环冗余码CRC ...

  5. 计算机网络题库---第三章数据链路层

    主要选取谢希仁第八版,复习资料 1.  数据链路(即逻辑链路)与链路(即物理链路)有何区别? "电路接通了"与"数据链路接通了"的区别何在? 答:数据链路与链路 ...

  6. 计算机网络原理【第三章 数据链路层】课后习题答案

    3-01 数据链路(即逻辑链路)与链路(即物理链路)有何区别? "电路接通了"与"数据链路接通了"的区别何在? 答:数据链路与链路的区别在于数据链路出链路外,还 ...

  7. 计算机网络——第三章 数据链路层(详细附图)

    第三章 数据链路层 3.1 数据链路层概述 3.1.1 本章问题 封装成帧 差错检测 可靠传输 广播信道的数据链路层 网桥和交换机的工作原理 3.2 封装成帧 封装成帧 透明传输 面向字节的物理链路 ...

  8. 计算机网络第三章数据链路层习题答案

    计算机网络第三章数据链路层习题答案 3-02数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点. 答:链路管理 帧定界 流量控制 差错控制 将数据和控制信息区分开 透 ...

  9. 计算机网络第三章——数据链路层(仅记录我所认为重要的知识点)

    计算机网络第三章--数据链路层 数据链路层使用的信道类型 点对点信道 广播信道 数据链路层位置 数据链路层的3个基本问题 数据链路和帧 链路 数据链路 数据链路层传输的是帧 封装成帧 透明传输问题 差 ...

最新文章

  1. mysql shharding_mysql 技术内幕 的示例数据库
  2. 建立二叉树A【openjudge】
  3. 用go语言制作读取excel模板批量生成表格工具
  4. VTK:相互作用之RubberBand2DObserver
  5. tcp 发送数据长度比预设缓存大_一文秒懂 TCP/IP实际五层结构(下篇)
  6. [css] z-index有时不起作用的原因是什么?怎么解决?
  7. 权威可信 | 华为云云测通过中国电子技术标准院软件测试工具能力评价
  8. 《算法之道》精华 难解问题部分
  9. java 单例模式的几种写法
  10. 北航的计算机与技术专业如何,计算机科学与技术考研北航的这个专业怎么样
  11. 三步解决error Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  12. 大数据处理技术-头歌平台-答案
  13. ubuntu下查看硬件配置
  14. BurpSuite-安全测试神器之代理设置
  15. mybatis-generator工具生成对应的自定Service和Controller
  16. OpenCV VideoCapture使用方法(视频文件、摄像头、网络视频文件)
  17. js中几种对数值取整数和小数部分的方法
  18. using声明和using编译指令
  19. 基础编程-学习网站-菜鸟教程
  20. 四轴无人机动力学模型

热门文章

  1. 所有的快捷方式打不开怎么办?
  2. scrapy爬取网易云音乐的MP3链接
  3. 关于过度依赖计算机的英语作文,2016年6月英语四级作文范文:过度依赖网络
  4. Java8实战笔记--组合异步编程
  5. 微信小程序 富文本编辑器组件 editor
  6. 逆天!波士顿动力再出视频,机器狗大跳火星哥热舞
  7. mongo连接命令 windows_Windows 平台安装
  8. Windows一键配网脚本
  9. IRS综述2:面向智能可重构环境——智能反射面辅助的无线通信网络
  10. 【云原生】nuclio:一个高性能的“serverless”框架