• 【计算机网络 - 第六章】链路层


    目录

    一、概述

    1、数据链路层提供的服务? 

    二、差错检测

    1、奇偶校验

    2、循环冗余校验CRC

    三、多路访问链路和协议

    1、概述

    (1)多路访问协议

    2、信道划分协议

    ① 频分多路复用FDM

    ② 时分多路复用TDM

    ③ 波分多路复用WDM

    ④ 码分多路复用CDM

    3、ALOHA协议

    (1)纯ALOHA协议(效率低)

    (2)时隙ALOHA协议

    4、载波监听多址接入/碰撞检测  CSMA/CD

    (1)基本概念

    (2)争用期(碰撞窗口)

    (3)如何确定碰撞后的重传时机?

    (4)最小帧长问题

    (5)CSMA/CD协议——帧发送流程

    (6)CSMA/CD协议——帧接收流程

    (7)信道利用率

    5、载波监听多址接入/碰撞避免  CSMA/CA

    (1)帧间间隔IFS

    (2)CSMA/CA工作原理

    四、交换局域网

    1、链路层地址——MAC地址

    (1)单播MAC地址 ​编辑

    (2)广播MAC地址

    (3)多播MAC地址

    2、地址解析协议——ARP协议

    五、集线器与交换机

    1、集线器

    2、交换机 

    3、交换机与路由器比较 

    补充: 单工、半双工、全双工的区别


    一、概述

    1、封装成帧:指链路层向上层交付的协议数据单元添加帧头和帧尾使之成为帧

    有的帧的帧头和帧尾包含帧定界

    2、透明传输:指链路层对上层交付的传输数据没有任何限制,就像数据链路层不存在一样

    • 使用字节填充 
    • 使用比特填充 —— 每5个连续1后面插1个0

    1、数据链路层提供的服务? 

    1. 成帧(网络层数据报经链路传送前,链路层协议将其用链路层帧封装起来)
    2. 链路接入(MAC协议规定了帧在链路传输的规则。链路的一段仅有一个发送方,另一端只有一个接收方的点对点链路)
    3. 可靠交付(保证无差错地经链路层移动每个网络数据报)
    4. 差错检验和纠正

    二、差错检测

    1、奇偶校验

    在待发送的数据后面添加1位奇偶校验位

    • "1"的个数为奇数【奇校验】
    • "1"的个数为偶数【偶校验】

    如果有奇数个位发生误码,奇偶性变化,可以检查出误码

    举例:

        奇校验                   1的个数变成偶数

    1 1 0 1 1 0 1 ———— 1 1 0 1 1 0 0           "1"的奇偶性改变,检测出错误

        偶校验                   1的个数变成奇数

    0 1 0 1 1 0 1 ———— 0 1 0 1 1 0 0           "1"的奇偶性改变,检测出错误

    2、循环冗余校验CRC

    收发方约定好一个生成多项式G(x) 

    G(x)=x^{4}+x^{2}+x+1

    生成的比特串:1 0 1 1 1

                             4 3 2 1 0

    发送方操作:

    接收方操作:

    检错码只能检测出是否出现差错,但不能定位错误,无法纠正错误

    三、多路访问链路和协议

    1、概述

    传输数据使用的两种链路:

    点对点链路:两个相邻节点通过一个链路相连,比如:PPP协议,常用于广域网

    广播式链路:所有主机共享通信介质,比如:以太网、无限局域网,常用于局域网

    (1)多路访问协议

    作用:节点通过这些协议来规范它们在共享的广播信道上的传输行为。

    2、信道划分协议

    ① 频分多路复用FDM

    用户在分配到一定频带后,在通信过程中至始至终都占用这个频带

    所有用户在同样的时间占用不同频率带宽

    ② 时分多路复用TDM

    将时间划分为一段段等长的TDM帧,每个用户在每个TDM帧中占用固定序号的时隙,所有用户轮流占用信道

    ③ 波分多路复用WDM

    通过光的不同波长来分解各路波长

    ④ 码分多路复用CDM

    码分多址CDMA是码分复用的一种方式

    可以在同样的时间使用同样的频带进行通信

    每一个比特时间再划分为m个短的间隔,称为码片,一般m=64或128

    使用CDMA的每一个站被指派一个m bit码片序列

    • 一个站如果要发送比特1,则发送自己的m bit码片序列
    • 一个站如果要发送比特0,则发送m bit码片序列的二进制反码

    码片序列挑选原则

    • 分配给每个站的码片序列必须各不相同
    • 每个站的码片序列必须互相正交(规格化内积为0)
    • S\cdot T=\frac{1}{m}\sum_{i=1}^{m}S_{i}T_{i}=0
    • S\cdot T=0
    • S\cdot \bar{T}=0

    举例:假设给站S分配码片序列01011101,给站T分配码片序列为10111000,这样分配对吗?

            码片序列各不相同 ✓

            码片正交 ×

            S的码片序列(-1 +1 -1 +1 +1 +1 -1 +1)

            T的码片序列(+1 -1 +1 +1 +1 -1 -1 -1)

            S×T≠0

            分配不正确

     

    设收到的码片序列为E

    根据公式S\cdot T=\frac{1}{m}\sum_{i=1}^{m}S_{i}T_{i}=0

    A×E=1        ——发送比特1

    B×E=-1       ——发送比特0

    C×E=0        ——未发送

    D×E=1        ——发送比特1         

    3、ALOHA协议

    (1)纯ALOHA协议(效率低)

    想发就发

    冲突如何检测? 发生冲突,接收方不予确认,发送方在一定时间内收不到就判断发生冲突

    冲突如何解决? 超时后等待随机一时间再重传

    最大效率为 1/(2e)=0.185

    (2)时隙ALOHA协议

    把时间划分成若干个时隙,若发生冲突,必须等到下一个时隙开始时刻再发

    最大效率为 1/e=0.37,是纯ALOHA两倍

    4、载波监听多址接入/碰撞检测  CSMA/CD

    (1)基本概念

    多址接入MA:多个站连接在一条总线上,竞争使用总线

    载波监听CS:每个站发生帧前先检测一下总线是否被占用(先听后说

    • 若检测到总线空闲96bit时间,发送该帧
    • 若检测到总线忙,继续检测,等待总线空闲96bit时间,再发送

    碰撞检测CD:正在发送帧的站边发送边检测碰撞(边听边说

    一旦发现碰撞,立刻停止发送,过一段随机时间后再次发送

    不适用于无线网络

    (2)争用期(碰撞窗口)

    最迟多久知道自己发送的数据没和别人碰撞?

    答:最多是两倍的总线单程端到端传播时延 2\tau,也称为争用期 / 碰撞窗口

    (3)如何确定碰撞后的重传时机?

    截断二进制指数规避算法

    1、确定基本退避时间为争用期2\tau

    2、定义参数k表示重传次数,k=min{重传次数,10}

    3、从 [0,1,2\ ...\ 2^{k}-1]  中随机选一个数 \gamma ,重传所需退避时间就是 2\gamma \tau

    4、当重传达16次都不能成功,说明网络太拥挤,抛弃此帧并向高层报错

    举例:

    第一次重传,k=1,r从【0,1】里选,重传时间在0和2\tau里随机选一个

    如果再碰撞,k=2,r从【0,1,2,3】里选,重传时间在【0,2\tau4\tau6\tau】里选

    在以太网的二进制回退算法中,在11次碰撞后,站点会在0~?之间随机选一个数?

    k=min{11,10}=10

    在0~2^{10}-1=1023里随机选一个数

    (4)最小帧长问题

    最小帧长 = 2\tau × 数据传输速率

    (5)CSMA/CD协议——帧发送流程

    (6)CSMA/CD协议——帧接收流程

    (7)信道利用率

    S_{max}=\frac{T_{0}}{T_{0}+\tau }=\frac{1}{1+\frac{\tau }{T_{0}}}

    当信号传播时延\tau趋近于0时,信道利用率接近100%

    【例1】采用CSMA/CD协议的网络中,传输介质的传输速率为1Gbps,电缆中信号传播速度是200000kms,若最小帧长长度减少800 bit,则最远两个站点的距离至少为?

    设最远的两个站点之间距离为d,最小帧长为l

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

    争用期 = 2倍端到端传播时延 = \frac{d}{200000\times10^{3} }\times 2

    l=\frac{d}{200000\times10^{3} }\times 2\times 10^{9}

    d=\frac{l}{10}

    因此若l减少800 m,d至少减少80 m 

    5、载波监听多址接入/碰撞避免  CSMA/CA

    适用于无线网络

    (1)帧间间隔IFS

    帧间间隔:站点必须在持续检测到信道空闲一段指定时间后才能发送帧

    帧间间隔长短取决于站点要发送帧的类型

    • 短帧间间隔SIFS:28μs,用于分隔开属于一次对话的各帧
    • DCF帧间间隔DIFS:128μs,用于发送帧和管理帧

    (2)CSMA/CA工作原理

    3.6.4 随机接入— CSMA/CA协议_哔哩哔哩_bilibili

    06:00开始

    四、交换局域网

    1、链路层地址——MAC地址

    • 当多个主机连接在同一个总线上,要实现两个主机间通信,每个主机需要一个唯一标识MAC地址
    • MAC地址又称LAN地址
    • MAC地址被称为物理地址,但并不属于物理层
    • MAC地址是适配器(网络接口)的链路层地址,不是各设备或路由器的链路层地址
    • MAC地址长6字节,共有2^{48}种MAC地址

     

    (1)单播MAC地址 

    (2)广播MAC地址

    (3)多播MAC地址

     

    2、地址解析协议——ARP协议

    • ARP协议:将网络层的IP地址转换成链路层的MAC地址
    • ARP分组有四个字段:源IP、MAC  +  目的IP、MAC
    • ARP表是自动建立的,不需要管理员配置
    • 工作方式:每台主机和路由器在其内存中具有一个ARP表,这张表包含IP地址到MAC地址的映射关系

    举例:

    • 主机B想给主机C发送数据包,但只知道C的IP地址,不知道MAC地址。

    • 主机B先在自己的ARP高速缓存中寻找C的IP地址,未找到

    • 主机B广播ARP请求报文来获取主机C的MAC地址

    • 主机C发现询问的IP地址是自己的,进行响应:

    1、主机C将B的IP地址和MAC地址记录到自己的ARP高速缓存中

    2、给主机B发送ARP响应,告知自己的MAC地址

     

    • 主机C将ARP响应报文进行单播,主机B接收到后,将C的IP地址和MAC地址记录到自己的ARP高速缓存中

     

    五、集线器与交换机

    1、集线器

    • 集线器是一种物理层设备,每个接口仅转发比特,不进行碰撞检测
    • 集线器作用于各个比特而不是作用于帧

     某主机要给另一主机发送单播帧,该单播帧会通过共享总线传输到总线上的各个主机(交给主机判断)

    2、交换机 

    • 交换机具有多个接口,每个接口可以直接与一台主机或另一个以太网交换机相连,采用全双工方式
    • 交换机有并行性,能同时连通多对接口,无碰撞(不使用CSMA/CD协议)
    • 交换机工作在链路层(包括物理层),收到帧后,在帧交换表中查找帧的目的MAC地址对应的接口号,然后进行转发

     交换机是一种即插即用设备,内部的帧交换表是通过自动学习算法自动建立的

     某主机要给另一主机发送单播帧,交换机会将该单播帧转发给目的主机(交给交换机判断)

    3、交换机与路由器比较 

    • 交换机第二层链路层的分组交换机,使用MAC地址转发分组的存储转发分组交换机,即插即用对于广播风暴不提供任何保护措施,即如果某主机出了故障并传输出没完没了的以太网广播帧,该交换机将转发所有这些帧,是以太网崩溃
    • 路由器是第三层网络层的分组交换机,使用IP地址转发分组的存储转发分组交换机,不是即插即用的,对第二层的广播风暴提供防火墙保护

    补充: 单工、半双工、全双工的区别

    单工:只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播

    半双工:允许数据在两个方向上传输,在某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机

    全双工:允许数据同时在两个方向上传输,可以在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信

  • 相关阅读:
    前端-naive ui如何渲染表格中的开关switch、单选框checkbox、按钮
    树状数组及扩展
    多国语言翻译-多国翻译语言软件免费
    编译概念总结
    【设计模式-前端】单例模式深刻理解和实现
    c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)
    Unknown custom element: <el-image>无法使用该组件,升级element-ui版本后项目报错
    JAVA 中集合取交集
    SpringCore完整学习教程4,入门级别
    大一学习分享
  • 原文地址:https://blog.csdn.net/weixin_61639349/article/details/130720102