【计算机网络】数据链路层

文章目录

  • [1. 数据链路层概述](#1. 数据链路层概述)
    • [1.1 封装成帧](#1.1 封装成帧)
    • [1.2 差错检测](#1.2 差错检测)
    • [1.3 可靠传输](#1.3 可靠传输)
  • [2. 封装成帧](#2. 封装成帧)
  • [3. 差错检测](#3. 差错检测)
    • [3.1 奇偶校验](#3.1 奇偶校验)
    • [3.2 循环冗余校验CRC(Cyclic Redundancy Check)](#3.2 循环冗余校验CRC(Cyclic Redundancy Check))
    • 小结
  • [4. 可靠传输](#4. 可靠传输)
  • [5. 点对点协议PPP](#5. 点对点协议PPP)
    • [5.1 简介](#5.1 简介)
    • [5.2 帧格式](#5.2 帧格式)
    • [5.3 透明传输](#5.3 透明传输)
      • [5.3.1 透明传输------面向字节的异步链路采用插入转义字符的字节填充法](#5.3.1 透明传输——面向字节的异步链路采用插入转义字符的字节填充法)
      • [5.3.2 透明传输------面向比特的异步链路采用插入比特0的比特填充法](#5.3.2 透明传输——面向比特的异步链路采用插入比特0的比特填充法)
    • [5.4 差错检测](#5.4 差错检测)
    • [5.5 工作状态](#5.5 工作状态)
  • [6. 媒体接入控制](#6. 媒体接入控制)
    • [6.1 基本概念](#6.1 基本概念)
    • [6.2 媒体接入控制------静态划分信道](#6.2 媒体接入控制——静态划分信道)
      • 信道复用
      • [6.2.1 频分复用FDM](#6.2.1 频分复用FDM)
      • [6.2.2 时分复用TDM](#6.2.2 时分复用TDM)
      • [6.2.3 波分复用WDM](#6.2.3 波分复用WDM)
      • [6.2.4 码分复用CDM](#6.2.4 码分复用CDM)
    • [6.3 媒体接入控制------动态接入控制------随机接入](#6.3 媒体接入控制——动态接入控制——随机接入)
      • [6.3.1 多址接入](#6.3.1 多址接入)
      • [6.3.1.1 CSMA/CD协议------争用期(碰撞窗口)](#6.3.1.1 CSMA/CD协议——争用期(碰撞窗口))
      • [6.3.1.2 CSMA/CD协议------最小帧长](#6.3.1.2 CSMA/CD协议——最小帧长)
      • [6.3.1.3 CSMA/CD协议------最大帧长](#6.3.1.3 CSMA/CD协议——最大帧长)
      • [6.3.1.4 CSMA/CD协议------截断二进制指数退避算法](#6.3.1.4 CSMA/CD协议——截断二进制指数退避算法)
      • [6.3.1.5 CSMA/CD协议------信道利用率](#6.3.1.5 CSMA/CD协议——信道利用率)
      • [6.3.1.6 CSMA/CD协议------帧发送流程](#6.3.1.6 CSMA/CD协议——帧发送流程)
      • [6.3.1.7 CSMA/CD协议------帧接收流程](#6.3.1.7 CSMA/CD协议——帧接收流程)
      • 小结
    • [6.4 载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)](#6.4 载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance))
      • [6.4.1 帧间间隔IFS(InterFrame Space)](#6.4.1 帧间间隔IFS(InterFrame Space))
      • [6.4.2 CSMA/CA协议的工作原理](#6.4.2 CSMA/CA协议的工作原理)
      • [6.4.3 CSMA/CA协议的退避算法](#6.4.3 CSMA/CA协议的退避算法)
      • [6.4.4 CSMA/CA协议的信道预约和虚拟载波监听](#6.4.4 CSMA/CA协议的信道预约和虚拟载波监听)
        • [6.4.4.1 信道预约](#6.4.4.1 信道预约)
        • [6.4.4.2 虚拟载波监听](#6.4.4.2 虚拟载波监听)
  • [7. MAC地址、IP地址以及ARP协议](#7. MAC地址、IP地址以及ARP协议)
  • [8. 集线器和交换机的区别](#8. 集线器和交换机的区别)
    • [8.1 使用双绞线和集线器HUB的星型以太网](#8.1 使用双绞线和集线器HUB的星型以太网)
    • [8.2 使用集线器HUB在物理层扩展以太网](#8.2 使用集线器HUB在物理层扩展以太网)
    • [8.3 以太网交换机](#8.3 以太网交换机)
    • [8.4 集线器和交换机的区别](#8.4 集线器和交换机的区别)
  • [9. 以太网交换机自学习和转发帧的流程](#9. 以太网交换机自学习和转发帧的流程)
  • [10. 以太网交换机的生成树协议STP](#10. 以太网交换机的生成树协议STP)
  • [11. 虚拟局域网VLAN](#11. 虚拟局域网VLAN)
    • [11.1 概述](#11.1 概述)
    • [11.2 虚拟局域网VLAN的实现机制](#11.2 虚拟局域网VLAN的实现机制)
      • [11.2.1 IEEE 802.1Q帧](#11.2.1 IEEE 802.1Q帧)
      • [11.2.2 交换机的端口类型](#11.2.2 交换机的端口类型)
        • [11.2.2.1 Access端口](#11.2.2.1 Access端口)
        • [11.2.2.2 Trunk端口](#11.2.2.2 Trunk端口)
        • [11.2.2.3 Hybrid端口](#11.2.2.3 Hybrid端口)
      • 小结

1. 数据链路层概述

  • 链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
  • 数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路
  • 数据链路层以帧为单位传输和处理数据。

1.1 封装成帧

  • 我们将数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作,称为封装成帧,目的是在链路上以帧为单元来传送数据,就是为了实现数据链路层本身的功能

1.2 差错检测

发送方将封装好的帧通过物理层发送到传输媒体,帧在传除过程中遭遇干扰后可能会出现误码(比如比特0变成比特1)。

发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾

接受方主机收到帧后,通过检错码和检错算法,就可以判断出帧在传输过程中是否出现了误码

1.3 可靠传输

接收方收到有误码的帧后,是不会接受该帧的,将其丢弃。

  • 如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施。
  • 如果数据链路层向其上层提供的是可靠服务,那么就还需要其他措施来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本

尽管误码是不能完全避免的,但若能实现发送方发送什么接收方就能收到什么,就称为可靠传输。

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

2. 封装成帧

  1. 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
  • 帧头和帧尾中包含有重要的控制信息。
  • 帧头和帧尾的作用之一就是帧定界
  1. 透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
  • 面向比特的物理链路使用比特填充的方法实现透明传输。

零比特填充法(每5个连续1后面插入一个比特0)

  1. 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU

(M aximum T ransfer Unit)。

小结

3. 差错检测

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0而0也可能变成1。这称为比特差错。
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(B it E rror Rate)。
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一

3.1 奇偶校验

  • 待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中"1"的个数为奇数(奇校验)或偶数(偶校验)。
    • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
    • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)

一般来说奇偶校验的漏检率较高,计算机网络中数据链路层不会采用这种方法

3.2 循环冗余校验CRC(Cyclic Redundancy Check)

  • 收发双方约定好一个生成多项式G(x);
  • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
  • 接收方通过生成多项式来计算收到的数据是否产生了误码;

比如

小结

4. 可靠传输

4.1 基本概念


4.2 可靠传输的实现机制------停止-等待协议SW(Stop-and-Wait)

有可能确认分组也会丢失,需要为数据分组加上编号:

还有可能确认分组会迟到,就需要为确认分组也进行编号:

注意事项

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

  • TD:数据帧发送时延
  • RTT:收发双方之间的往返时间
  • TA:接收方发送确认分组所耗费的发送时延

4.3 可靠传输的实现机制------回退N帧协议GBN(Go-Back-N)

累积确认

有差错情况

将发送窗口中的五个分组发送,经过传输到达接收方,但是5好数据分组出现了误码,接收方根据检错码发现分组,于是丢弃该分组

后续到达的4个分组与接收窗口中的序号不匹配,都丢弃掉,并对之前按序接收的最后一个数据分组进行确认

发送方收到这些确认分组时,就知道了之前发送的数据分组出现了差错,可以不等超时计时器超时就立刻重传

在本例中,尽管序号为6,7.0,1的数据分组正确到达接收方,但由于5号数据分组误码不被接受,它们也"受到牵连"而不被接受,发送方还要重传这些数据分组,这就是所谓的Go-back-N(回退N帧)。

可见,当通信线路质量不好时,回退N帧协议的信道利用率并不比停止-等待协议高

WT取值超出取值范围

小结

4.4. 可靠传输的实现机制------选择重传协议SR(Selective Request)

4.4.1 简介

4.4.2 工作原理

仅重传出错或丢失的帧而非全部未确认帧,能提升传输效率。发送端维护发送窗口,窗口内帧可连续发送且每帧独立编号,接收端维护接收窗口,可缓存乱序到达的正确帧并按序交付上层,仅对错误帧丢弃、对正确帧单独确认

发送窗口和接收窗口尺寸问题

若接收窗口尺寸超出取值范围

注:WT取5,回传确认分组时,0号确认分组丢失

结果:若发送窗口和接收窗口尺寸超出取值范围,就会使接收方无法分辨新、旧数据分组,进而出现分组重复这种传输差错

小结

5. 点对点协议PPP

5.1 简介

  • 点对点协议PPP(P oint-to-P oint Protocol)是目前使用最广泛的点对点数据链路层协议
  • PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661.RFC1662]。
  • PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成
    • 对各种协议数据报的封装方法(封装成帧)
    • 链路控制协议LCP 用于建立、配置以及测试数据链路的连接
    • 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议

5.2 帧格式

5.3 透明传输

5.3.1 透明传输------面向字节的异步链路采用插入转义字符的字节填充法

5.3.2 透明传输------面向比特的异步链路采用插入比特0的比特填充法

5.4 差错检测

5.5 工作状态

6. 媒体接入控制

6.1 基本概念

在一个总线型的局域网内,如果哟有两个或更多的站点在同一时刻发送数据,那么信号在共享媒体上就要产生碰撞,即发生了冲突,是的这些站点的发送都失败。

  • 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。

分类

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

6.2 媒体接入控制------静态划分信道

信道复用

  • 复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
  • 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

6.2.1 频分复用FDM

如图,将传输线路的频带资源划分成多个子频带,形成多个子信道,个子信道之间需要留出隔离频带,以免造成子信道间的干扰,当多路信号输入一个多路复用器时,这个复用器将每一路信号调制到不同频率的载波上。接收端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号。

很显然,频分复用的所有用户同时占用不同的频带资源并行通信

6.2.2 时分复用TDM

如图所示,横坐标为时间,将时间划分成一个个的时隙,时分复用技术将传输线路的带宽资源按时隙轮流分配给不同的用户,每个用户只在所分配的时隙里使用线路传输数据,时分复用技术将时间划分成了一段段等长的时分复用帧,每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙。如图,每一个用户所占用的时隙是周期性出现的,七周期就是时分复用帧的长度。

很显然,时分复用的所有用户在不同的时间占用同样的频带宽度

6.2.3 波分复用WDM

这是8路传输速率均为2.5G bit/s的光载波,波长均为1310nm,经光调制后,分别将波长变换到1550~1561.2nm,每个光载波相隔1.6nm,这8个波长很接近的光载波,经过光复用器,就在一根光纤中传输。因此,在一根光纤上数据传输的总速率:8 X 2.5G bit/s = 20G bit/s。光信号传输一段距离后会衰减,因此,对衰减了的光信号必须进行方法才能继续传输。现在已经有了很好的掺铒光纤放大器,两个光纤放大器之间的光缆长度可达120km,两个光复用器和光分用器之间可以放入4个掺铒光纤放大器,是的光复用器和光分用器之间的无光电转换的距离可达600

km

6.2.4 码分复用CDM

  • 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(C ode D ivision M ultiple Access)。
  • 与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信
  • 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
  1. 码片与码片序列
    1. 1 个比特拆分为m个码片(如 m=8);每个设备分配唯一的 m 位码片序列(需相互正交)。
  2. 发信号规则
    1. 发 "1"→ 发自身码片序列;
    2. 发 "0"→ 发自身码片序列的反码。
  3. 信号传输 多个设备信号在同一频段叠加传输(空中是所有信号的码片位相加结果)。
  4. 接收解码 接收端用 "目标设备的码片序列" 与 "叠加信号" 做内积
    1. 结果 = 1→ 对应 "1";
    2. 结果 =-1→ 对应 "0";
    3. 其他设备信号因正交,内积结果为 0(被过滤)。

6.3 媒体接入控制------动态接入控制------随机接入

早期的共享式以太网采用载波监听多址接入/碰撞检测CSMA/CD(C arrier S ense M ultiple A ccess/C ollision Detection)解决传输信号发生碰撞(冲突)的问题

6.3.1 多址接入

6.3.1.1 CSMA/CD协议------争用期(碰撞窗口)

6.3.1.2 CSMA/CD协议------最小帧长

最小帧长 = 争用期 x 数据传输速率

6.3.1.3 CSMA/CD协议------最大帧长

6.3.1.4 CSMA/CD协议------截断二进制指数退避算法

当设备发送数据时检测到冲突,就用该算法延迟重发

6.3.1.5 CSMA/CD协议------信道利用率

6.3.1.6 CSMA/CD协议------帧发送流程

6.3.1.7 CSMA/CD协议------帧接收流程

小结

6.4 载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)

  • 总线局域网使用的协议:CSMA/CD
  • 无线局域网使用的协议:CSMA/CA

隐蔽站:

6.4.1 帧间间隔IFS(InterFrame Space)

6.4.2 CSMA/CA协议的工作原理

  1. 源站为什么在检测到信道空闲后还要再等待一段时间DIFS?

    答:就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。

  2. 目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?

    答:SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。

  3. 信道由忙状态转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用信道?

    答:防止多个站点同时发送数据而产生碰撞

6.4.3 CSMA/CA协议的退避算法

6.4.4 CSMA/CA协议的信道预约和虚拟载波监听

6.4.4.1 信道预约
6.4.4.2 虚拟载波监听

7. MAC地址、IP地址以及ARP协议

7.1 MAC地址

IEEE 802局域网的MAC地址格式

  • 单播:I/G 位设为 0,是一对一的通信。地址全球唯一,对应单个网络设备,数据只会精准传给这个指定设备,像网页浏览、文件传输这类点对点的场景都用它。
  • 多播:I/G 位设为 1,是一对多的通信。地址对应一个设备组,数据发送后,只有加入这个多播组的设备才会接收,适合网络电视、视频会议这类需给多个目标传相同数据的场景,能减少带宽浪费。

IEEE 802局域网的MAC地址发送顺序

字节发送顺序:第一字节 ------> 第六字节

字节内的比特发送顺序:b0 ------> b7

单播MAC地址

广播MAC地址

多播MAC地址

7.2 IP地址

从网络体系结构看IP地址与MAC地址

数据包转发过程中IP地址与MAC地址的变化情况

7.3 ARP协议

小结

8. 集线器和交换机的区别

8.1 使用双绞线和集线器HUB的星型以太网

8.2 使用集线器HUB在物理层扩展以太网

8.3 以太网交换机

直通交换不必把整个帧先缓存后在进行处理,而是在接收帧的同时,就立即按帧的目的MAC地址决定该帧的转发接口,提高了帧的转发速率

8.4 集线器和交换机的区别

9. 以太网交换机自学习和转发帧的流程

以太网交换机丢弃帧的情况

每条记录到期自动删除

小结

10. 以太网交换机的生成树协议STP

11. 虚拟局域网VLAN

11.1 概述

11.2 虚拟局域网VLAN的实现机制

11.2.1 IEEE 802.1Q帧

11.2.2 交换机的端口类型

  • 缺省 VLAN ID(也译作 "默认 VLAN ID")是网络设备(交换机为主)出厂或初始化后默认分配给所有端口的 VLAN 编号,是未手动配置 VLAN 时设备默认使用的 VLAN 标识,本质是为了让交换机端口在无自定义 VLAN 配置时仍能正常通信。
11.2.2.1 Access端口
11.2.2.2 Trunk端口
11.2.2.3 Hybrid端口

小结

相关推荐
@insist1234 小时前
网络工程师-VLAN 技术原理与配置指南(软考局域网核心考点)
网络·网络工程师·软考·软件水平考试
TechWayfarer4 小时前
如何搭建企业级IP归属地查询平台?
网络·网络协议·tcp/ip
TechWayfarer4 小时前
科普:IP归属地中的IDC/机房/家庭宽带有什么区别?
服务器·网络·tcp/ip
执行部之龙6 小时前
https连接建立以及密钥加密详解
网络协议·http·https
EmbeddedCore6 小时前
守护网络通信的基石:深入解析SSL/TLS协议
网络·网络协议·ssl
(Charon)7 小时前
【网络编程】关于 KV 数据库项目搭建的一些思考:从网络层到存储层该怎么想
网络
liulilittle9 小时前
WintunAdapter 设计解析:一个 VNP 数据面的无锁优雅实现
网络·c++·it·通信
奋斗tree9 小时前
HTTP Error 503 常见原因及解决方案
网络·网络协议·http
雪域迷影9 小时前
evpp-现代化C++11高性能的Reactor模式的C++网络库
开发语言·网络·c++