期末复习——数据链路层

数据链路层

  • DLC子层:1. 负责物理介质拥塞管理(差错控制、流量控制) 2. 为帧分配序列、跟踪确认 3. 为网络层提供统一接口
  • MAC子层:1. 解决局域网中共用信道的使用产生竞争时,如何分配信道使用权。(征用型 随机、确定型 有序)

功能

为网络层提供的服务

有连接就一定要确认

  • 无确认 无连接服务
  • 有确认 无连接服务
  • 有确认 面向连接服务

组帧

4种方法
3and4较为常用

  • 1.字节计数法
    Byte Count
    很少使用
    第一个byte表示紧跟着(包括它自己)有多少个byte
    51234 51234 80123456 87890123

    1. 字符填充的首尾定界符法

    标志字节 flag byte
    界定一帧的开始和结束。特殊字符FLAG填充
    转义字符ESC !not 'ESC'!
    放在特殊字符之前
    例 A FLAG B ... A ESC FLAG B
    填充后 A ESC FLAG B ... A ESC ESC ESC FLAG B

    较复杂

    1. 比特填充的标志比特法
      USB常用
      改进,在byte = 8 bits基础上改进,从而帧可以不再是8b的倍数长。
      性能better than 字符填充
      01111110标志一帧的开始and结束(中间是连续6个1)
      ∴发送方 在这一帧中间连续5个1后自动插入一个零
      接收方遇到连续5个1减掉后面那个0
    1. 物理层编码违禁法
      曼彻斯特编码 高低——码元1,低高——码元0
      so, 高高or低低都是违禁的,可以用来标志帧的开始和终止

差错控制

detect检错 correct纠错

  • ARQ 自动重传请求 3种
    ARQ Automatic Repeat reQuest 自动重传请求
    使用检错码

    ARQ控制方法:
    发送方将要发送的数据帧附加CRC 冗余校验码一起发送;
    接收方根据这部分CRC码进行校验;
    发现错误——丢弃-->发送方超时重传。

      1. 停止-等待 ARQ
      1. Go-Back-N 后退N帧 ARQ
      1. 选择性重传 ARQ
  • FEC 前向纠错

    使用纠错码的技术

  • 检错编码

    • 奇偶校验码

      只能发现奇数个 位错误,看1的个数
      偶校验:加上最后一位校验位,有偶数个1
      奇校验:加上最后一位校验位,有奇数个1

    • CRC循环冗余校验

      also. 多项式编码、Cyclic Redundancy Check
      除法皆为模2除法,不同为1相同为0
      几个量:
      G(x) :CRC的生成多项式,接收方与发送方的约定,已经规定好了。传输过程中,始终保持不变。最高位、最低位都是1
      C(x):发送的原始数据,原始多项式
      R(x):CRC多项式,即余数
      T(x) = C(x) << R + R(x)
      K:C(x) 的位数,or 最高幂次 +1
      R:CRC码位数 = G(x) 位数 - 1
      原理:
      发送端、接收端预先商定一个生成多项式 G(x)
      K位的原始数据帧C(x),比G(x)长
      在C(x)尾部附加校验和,生成T(x),能够被G(x)除尽
      计算过程
      r位的G(x),发送K位的原始帧C(x)
      1. C(x) 尾部加 R 位0
      2. C(x) 除以 G(x),得到余数,即CRC校验码R(x)
      3. 余数替换末尾的 R 个0,得到T(x),余数位数不够在前面补0
      4. 接收端收到T(x) + E(x)
      错误分析 接收端收到T(x) + E(x)
      奇数个位发生错误——E(x) 有x奇次项
      只有1位错误——E(x) = xi
      两个独立的1位错误,E(x) = xi + xj

      举例 G(x) = x4 + x + 1 计算帧1101011111校验和
      解:
      G(x) = x4 + x + 1 即:10011
      G(x)5位,M(x)补上4个0--M(x)帧11010111110000,再除G(x)10011
      余10
      发出帧T(x) = 1101011110010,T(x)能被G(x)整除

  • 纠错编码

    • 海明码

      海明距离
      多对数据取最小值

      海明距离(d + 1) 最多检测detect d个错误
      海明距离(2d + 1) 最多纠正correct d个错误
      m+r+1≤2r
      海明码默认一串数据 只错一位,so只能检查一个错误位。
      原data = 1001101 r = 4;
      r1、r2、r4、r8 插入
      r1画一隔一、r2画二隔二、r4画4隔4、r8画8隔8
      偶校验,使得画出来的部分是偶数个1
      得到code
      检查code
      不要改变code,依次检查r1、r2、r4、r8 ,错误位记为1,正确记为0
      写成r8 r4 r2 r1,转换成十进制,即为错误位

    • 二进制卷积码

流量控制

点对点
限制发送方的数据流量,不超过接收方的接收能力。只看两端,不看中间
传输层的流量控制是端到端

  • 停等

    发送方发一帧,等待接收方应答信号,等到之后才能发下一帧
    没收到就一直等

    效率低

  • 滑动窗口

    • 单帧 停等

      发送窗口 size = 1
      接收窗口 size = 1
      源收到ACK才可以发下一帧,缓冲区才可以删除备份文件

    • Go-Back-N

      对ACK进行 n bit 编号:0 ~ 2n - 1 号码
      发送窗口 1 ≤ size ≤ 2n - 1
      接收窗口 size = 1 按顺序接收
      源可连发,对ACK进行 n bit 编号,每帧都有超时计时器;
      ACKn 表示前n帧都已经正确接收

    • SR 选择性重传

      对ACK进行 n bit 编号,否定帧NAK,
      发送窗口 1 ≤ size ≤ 2n-1
      接收窗口 size > 1收发双方窗口大小相同

  • 信道利用率

    针对发送方而言,一个发送周期内,有效发送数据时间/整个发送周期
    T发送周期,C 数据传输速率,L 共发送了L bits数据,( L/C) / T
    信道吞吐率 = 信道利用率 * 发送方发送速率

协议

HDLC

面向比特
使用序号、确认机制,提供可靠传输

SONET

PPP

面向字节
不使用序号、确认机制,只保证无差错接收CRC校验

ADSL 拨号上网

用户可以边打电话边上网,一条电话线可同时接听,拨打电话并进行数据传输,两者互不影响。
adsl传输的数据并不通过电话交换机,所以adsl上网
不需要缴付额外的电话费,节省了费用。

MAC子层 介质访问控制

信道分配

征用型 随机
确定型 有序

  • 多路复用技术

    在一条介质上,同时携带多个传输信号,从而提高传输系统的利用率。共享空间or时间or both
    这也是实现信道划分介质访问的一个途径。
    多路复用将多个信号组合在一条物理信道上进行传输,从而多个计算机/终端设备 共享信道资源-->提高信道利用率

    • FDM 频分多路复用

      子信道带宽总和≤信道总带宽
      每个子信道带宽基本相同(Hz),每个子信道传输一种信号
      不同频率同时发
      用于:
      电话网络
      蜂窝网络
      地面无线
      卫星网

    • TDM 时分多路复用

      信道传输时间作为分割对象,分成若干时间片,固定分配!ABCDABCDABCD这样发,共享带宽,分时利用信道。

      STDM:不固定分配时隙!异步时分多路复用。TDM改进version,当有数据要传的时候才被分到时间片。从而提高了线路利用率。

      用于:
      电话网络
      蜂窝网络

    • WDM 波分多路复用

      采用光的频分多路复用,在一根光纤中传输不同波长
      (λ = c/v(Hz))的信号。
      因为波长(频率)不同,各路光信号不互相干扰,好理解这个,真好记,md不像别的几个

    • CDM 码分多路复用

      每个用户有特定的地址码,用户会有 无消息(正交结果0)/发0(正交结果-1)/发1(正交结果1) 三种情况。 地址码两两之间正交性,这样频率、时间、空间上发送的信号都可能重叠,从而更加充分利用了有限的频率资源。

      例:向量T = (-1 -1 +1 -1 +1 +1 +1 -1)
      A站发消息 1给C:传了向量 (-1 -1 -1 +1 +1 -1 +1 +1)
      B站发消息 0给C:传了向量 (+1 +1 -1 +1 -1 -1 -1 +1)
      然后两个向量发生重叠 相加 :R(0 0 -2 2 0 -2 0 2)
      C收到这个叠加后的向量,怎么求A/B发了0 1哪个呢?
      需要已知A的(-1 -1 -1 +1 +1 -1 +1 +1) 将 R与A点乘=2+2+2+2=8-->/8 = 1 so,A发了1
      需要已知B的 (+1 +1 -1 +1 -1 -1 -1 +1) 将 R与B点乘=-2-2-2-2=-8-->/8 = -1 so,B发了0

  • 随机访问介质访问控制协议

    征用型
    实质上广播信道 转化成 点到点信道的行为

    因为总线型网络中,>1个用户同时发消息就会产生帧冲突,导致有冲突的用户发消息失败。不同于多路复用技术,这里不能共享空间and时间
    so要解决这个问题,用户们需要按照一些规则来反复重传自己的帧,直到无碰撞通过。

    • ALOHA 协议

      • 纯ALOHA

        Pure ALOHA 时间连续
        某站点要发数据时,直接发送;如果一段时间后还未收到确认,认为发生了冲突;冲突重发:等待一段时间后继续上述步骤;直到成功。

        可代表:总线型网络、无线信道情况
        最大吞吐量 S = 1/2e = 0.184,G = 0.5可见吞吐量低得很

        例:A pure ALOHA network transmits 200-bit frames on a shared channel of 200 kbps.
        What is the requirement to make this frame collision-free?

        一个帧需要用到 200b/200kb = 1ms 的时间
        vulnerable time?? = 2ms
        所以任何站都不应该在这1ms中开始发送数据

        vulnerable time:顾前顾后。要不和前一个帧冲突,后一个帧也不能和它冲突,so = 2*T

        A pure ALOHA network transmits 200-bit frames on a shared channel of 200 kbps.
        What is the throughput吞吐量 if the system (all stations together) produces
        a. 1000 frames per second? 1 frame/ms G = 1
        S = G * e-2G = 0.135
        throughput = 0.1351000 = 135
        b. 500 frames per second? 0.5 frame/ms G = 0.5
        S = G * e-2G = 0.184
        throughput = 0.184
        500 = 82
        c. 250 frames per second? 0.25 frame/ms G = 0.25
        S = G * e-2G = 0.152
        throughput = 0.152*250=38

      • 时隙ALOHA协议

        slot ALOHA also called 分槽ALOHA协议
        把时间分成一段段等长的时隙,每个时隙的开始才可以发送帧。减少了发送数据的随意性;帧到达后,缓存中等待一段时间,才能发出去;同一时隙中>1 个帧到达时,下一个时隙将产生冲突,然后和pure ALOHA一样重传。
        这样冲突只浪费了一个时隙,且冲突发生在时隙起点。

        最大吞吐量0.368

    • CSMA协议 载波侦听多路访问

      先听后发,信道空闲才发。
      ALOHA+载波侦听装置

      • 1-坚持CSMA

        两种情况发生冲突:
        信号传输延迟导致:由于时延,站1发送的信号还没到达站2,站2误认为信道空闲立即发送数据。
        多个站点同时监听空闲信道,同时发送。

      • 非坚持CSMA

        发送数据前,监听信号;信道空闲--立即发送;信道忙,放弃监听,随机等待一段时间再重复上述步骤

      • p-坚持CSMA

        概率p,直接与协议性能相关。用于时分信道。
        降低1-坚持CSMA多站点同时发送造成冲突的概率,和1-坚持一样坚持监听-->克服非坚持CSMA造成的时间延迟。
        信道空闲-->以概率p发送数据,(1 -q )概率推迟到下一时隙监听-发送。

    • CSMA/CD协议

      先听后发+边听边发。一旦冲突,立即停发。随机等待时机再发。发送过程中也持续监听信道,如果检测到冲突,立即停止发送,且发送一串阻塞信号--然后随机等待一段时间重新开始上述步骤。
      适用于:半双工、总线型网络环境。成功用于使用有线连接的LAN局域网,因为无线环境下存在“隐蔽站”问题,不一定能监听到

      CSMA/CD是经典局域网、以太网协议

      最小帧长 = 总线传播时延 * 数据传输速率 * 2
      最小帧长/数据传输速率 = 帧传播时延 >= 2 * 总线传播时延
      最小以太网帧长 64Bytes

      隐蔽站问题:B在A、C监听范围交界处,A和C监听结果为空闲时,都以为B空闲一起发送,结果导致碰撞冲突。
      一位空闲实际不空闲而发生冲突
      暴露站点:A是B的暴露站点——AC都在B可听范围,BD都在C可听范围,此时C发给D,而B想发A却不敢发(因为听到C在发,误以为A也收到误以为会有冲突,但是其实没有的。
      误以为不空闲实际空闲而发生冲突。

    • CSMA/CA协议

      无线网802.11 WiFi,CSMA/CA无线环境
      解决隐蔽站问题:RTS 请求发送控制帧 CTS 允许发送控制帧

      例:
      A向B发送RTS(Request To Send)帧,A周围的站点在一定时间内不发送数据,以保证B的CTS帧返回给A;
      B向A回答CTS(Clear To Send)帧,B周围的站点在一定时间内不发送数据,以保证A发送完数据;
      A开始发送,若发生冲突(两站点同时发送RTS),则等待随机时间,再重试。

      发送站点刺激接收站点发送应答短帧,从而使得接收站点周围的站点监听到该帧,并在一定时间内避免发送数据。
      而非采用载道监听机制。

  • 无冲突协议

    • bitmap 位图协议

      N个站点共享信道,编号 0~N-1。信道划分成一系列竞争周期(N个 1 bit竞争时隙 )and数据传输周期。
      一个竞争/预约周期 N个时隙,对应N个站点,要发送的站点会标记成1 。从0轮到N-1,发送也是从0轮到N-1
      预约结束之后,对这些站点按照bit顺序发送。
      so永不冲突,,但无法考虑发送的优先级。

      低负载:一轮只有一个站点要发送1帧。每帧开销为N,数据长度d个bit,信道利用率( d/ (N+d))
      高负载:一轮所有站点都要发送1帧。所以每一帧只加上额外的1位开销,信道利用率(d/(d+1)。
      最长等待时间 = 征用时隙N + 帧发送时间(N-1)d (bit)
      想预约,但刚好问完自己,同时其他所有站点都要发送b位的帧

    • 轮询访问

      令牌token传递协议
      令牌(特殊的MAC控制帧)随环形总线在各个计算机之间传递,确保同一时间只有一个站点独占信道。只有有令牌的站点才可以发送帧。

    • 二进制倒计数

  • 有限竞争协议

    • 自适应树遍历协议
       1              level0
     /   \
    2      3          level1
   / \    |  \
  4  5    6   7       level2
  |\ |\   |\  |\
  A B C D E F G H     stations站点

!先左后右,冲突向下,空闲or成功回退。
例如

  • A G要发,
    0槽:冲突在level0,节点1下所有站;;
    1号槽,节点1左子树 -->节点2下所有站,A成功;;
    2号槽,节点1右子树-->节点3下所有站,G成功

  • AC要发
    0槽:冲突 level0,节点1下所有站;;
    1号槽,节点1左子树--冲突 level1;;
    2号槽,节点2左子树-->A成功;回退到结点2;
    3号槽,节点2右子树-->C成功

  • CD要发
    0槽:冲突 level0,节点1下所有站;;
    1号槽,节点1左子树-->冲突 level1;;
    2号槽,节点2左子树-->空闲;回退;
    3号槽,节点2右子树-->冲突 level2;;
    4号槽,节点5左子树-->C成功;回退;
    5号槽,节点5右子树-->D成功;回回回OK

  • 局域网

    LAN局域网三大特性
    拓扑结构:星型、总线、环形、星型+总线复合
    传输介质:双绞线、铜缆、光纤等。
    介质访问控制方式!!
    局域网分类
    以太网(目前使用最广泛的局域网):总线型拓扑有线网络,插网卡上网,提供无连接不可靠服务,CSMA/CD二进制退避算法
    令牌环网:环形拓扑
    无线局域网802.11WiFi:CSMA/CA
    ATM网
    FDDI网802.8 环形拓扑

    • 以太网

      可以说802.3简称为以太网(although有细小差别,不想管了
      总线型拓扑
      无连接不可靠,差错检验交给高层来
      使用曼彻斯特编码的信号,每个码元中间有一次电压转换-->同步信号提取
      每块网卡的MAC地址唯一
      以太网帧:由CSMA/CD最短64B

      以太网中,传输速率=10Mbps时,时间槽=51.2us;
      一个时间槽内可以发送512bits,即64字节(所以也称一个时间槽长度为64字节)
      6B目的MAC地址+6B原MAC地址+2B类型
      +数据data部分+填充(保证至少64B)+ 4B checksum校验和
      so除了数据+填充,有18B的header和尾部,至少要中间加入(64-18) =46B

      • MAC地址

        also called物理地址,6B=48bits
        第一个Byte的第八位(最后一位):
        0:unicast单播一对一
        1:multicast组播一对多
        FF:FF:FF:FF:FF:FF :broadcast 广播 6B全1

    • 无线局域网

      802.11MAC子层协议规定,所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间的通称是帧间间隔IFS。
      IFS 帧间间隔
      SIFS:短帧间间隔。间隔需要立即响应的帧,如控制帧(RTS/CTS/ACK)等
      AIFS:任意帧间间隔。根据访问类别(即要传输的数据类型)对站点进行优先级排序,AISF的计算公式为:AISF编号*时隙+ SISF;
      PIFS:点协调IFS,中等长度。集中协调功能帧间间隔,只能够由工作于PCF模式的站点来使用
      DIFS:分布式协调IFS,最长。只能够由工作于DCF模式的站点来使用
      高优先级的帧需要等待的时间较短,因此可以优先获得发送权,但低优先级帧就必须等待较长的时间。

数据链路层设备

局域网交换机

  • 直接交换

    交换机只接收数据帧头部,检测目的地址,立即转发(无论帧是否出错)
    帧出错检测由结点主机完成(延迟小,缺乏差错检测)

  • 存储转发交换

    交换机完整地接收数据帧,并检测差错。若帧正确,则根据帧目的地址确定输出端口,进行转发出

    具有帧差错检测能力,延迟大

  • 改进的二者结合

    接收到数据的前64B之后,判断数据的头部字段是否正确
    如果正确则转发出去。

    对于短数据,交换延迟与直接交换方式比较接近;
    而对于长数据 ,由于它只对数据前部的主要字段进行差错检测,因此交换延迟将会明显减少

posted @   地尽头  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示