• 王道计网:数据链路层


    一、导论

    f763dd2e3217418d9139b73b22231686.png

    网络层的数据报分组封装成帧。

    4b411ad96e194c358ec632ed669dac3d.png

    本质上是数据链路层封装之后,在物理层传输bit流,中间站点又会向上到数据链路层,这是一个实际过程,但是在单独考虑数据链路层时,我们可以忽略经过的物理层,直接认为是水平的。

    一、基本概念

    62ffb672cec74ed8a28c7c4057728ba4.png

    数据链路层负责把网络层交付给它的数据报,无差错地传输给相邻结点。

    物理层的中继器只起到增加信号传输距离的作用,它并不管数据是否正确,所以不作为结点。

    数据链路是逻辑链路,而链路是物理通道。

    b373e7cd569948e9914441f0a9b87a83.png

    二、功能概述

    fbf7882d22214215bc5e38b47b07e3ab.png

    数据链路层是为网络层提供服务,让传输数据在逻辑上无差错。

    二、功能

    一、封装成帧

    17b341b3a7ee4d27bb97b00fc78efd58.png

    最大传送单元 MTU(maximum transmission unit)

    帧定界符可以在比特流中识别出帧!

    二、透明传输

    02e6b26d26494040af33264b274b7a5f.png

    透明传输就是不管你传的是什么,我都可以正常接受。

    采取的措施:

    ①字符计数法

    66ca88ff4b8a46b69f81ed8ccb6fc8c6.png

    ②字符填充法

    004e1b8ffa494a238fe4949628c54887.png

    f96d6f92082f454983e0783c8cd13248.png

    ③零比特填充法

    出现连续五个1,后面一定填个0。

    8ccc5089dd1042babab131f5e8ae6141.png

    保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。

    ④违规编码法

    cf594cfc5bd147a39029f4801e6c9452.png

    由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

    三、差错控制

    ①差错的由来
    370372d36d1846d3b107a0a1b6ddfb16.png

    差错控制的对象是冲击噪声。

    ②差错控制

    (比特错)《知道错误,但是不知道哪里错了》

    b662c7a0072144d9ba06250af40c6c7d.png

    任何两个结点之间都可以进行差错检查。

    ③奇偶校验码

    47dab21bfe524158988d55dfb74ca764.png

    奇校验码约定字符中有奇数个1是对的。

    ④CRC循环冗余码

    (硬件实现)

    CRC是方法,FCS是冗余码

     给了一长串数据,对每个组后面都得加上FCS(帧检验序列冗余码),7902ecdc7ffb4f96b0e4858481c4fac6.png

    例子:

    4056b98986da4275a63ca152d214759b.png

    凡是接收端数据链路层接收的帧均无差错。


    b614638f2ad141d68de3e8272f8774d5.png

    ⑤纠错编码

    海明码<知道错误,还能纠错,只能纠错单比特>

    (1)海明距离

     44257d28fbb14406b97c3c5edccd5cfc.png

    (2)确定校验码位数

    8cfbff1928fa4bacac1bbbf508a25525.png

    (3)确定校验码位置

    d5bc68e28cc240189e12406c92b490fe.png

    (4)求出校验码的值

    6cb60267685d4d4382e0c9112f0872d9.png

    (5)检错与纠错

    0625af01229a424e8b8935cec067fbc5.png

            海明码实际上用x4与x5、x6、x7偶校验得到x4,然后收到数据时再采用偶校验,就可以判断这四位里面是否有一位发生了错误。

            然后由于这里引入了三个校验位,那么就可以得到三个集合中的元素是否产生错误,最终取交集就是出错的位。

            校验位的数值可以指定出错的位置,加上校验位r,一共有m+r位,校验位又要能够说明不出错的情况,所以一共m+r+1种情况,所以校验位的种类2的r次方要≥m+r+1。

    四、流量控制与可靠传输机制

    b86011c8f8e74cbc996e1c4f6c874e5d.png

    (1)流量控制(铲屎官)

    7567b2c307a449f1887d366a167cdd0f.png

    数据链路层是结点对结点的控制

    传输层是端到端的控制。

    (2)流量控制方法

    注意数据链路层是以帧为单位传输的。

    8331161c82574418950fb8c7bf5dc1c5.png

    de4764deca3b421fb14afaeda8833f72.png

    链路层滑动窗口协议的窗口大小在发送过程中是固定的!

    没有收到确认则不移动,可以实现可靠传输

    不会无限发送,只会发送窗口中的,可以实现流量控制。

    (1)停止-等待协议

    ①基础

    数据包实际上就是数据,在不同层次说法不同,比如在数据链路层是帧,在网络层是分组,IP数据报,在传输层就是数据段。之后在链路层讨论,所以以帧为单位。

    7aae47e2c99442ebab609068c3a4fb8f.png

    ②无差错停等协议

    (ack,命令正确应答;确认字符(acknowledgement character))

    564ac4ec1da545b8858ac859f931953f.png

    ③有差错情况

    ba7672d9157f448aa11a41f708d2b577.png

    RTT是传播时延,只管传播过程花费的时间,所以需要比平均RTT更长。

    只有收到确认帧才可以丢掉副本。

    编号可以解决帧丢失和帧出错,我们发现,在发送0号帧的时候,如果没有收到确认,那么发送方手里一直想发送的是0号帧,所以不会出现由于编号原因乱窜。直到拿到确认之后才会发送1号帧。

    超时重传,自动重传,ARQ


    f0d33130cb5d4ce18eded2ec2da2a6b7.png

    我们发现,如果接收方接收到了同一个编号的帧,那么它就认为重复了,但是还是会确认一次。


    5abf6596ebc94b038efa413ea50b10a6.png

    ④性能分析

    480bcd54d08a4cd4af208656b6ff7c9f.png

    119e9777d462483e8b9e50f0bee00418.png


    (2)后退N帧协议(GBN,goback-n)

    ①滑动窗口

    GBN的滑动窗口,发送窗口多个窗口,接收窗口只有一个。

    值得注意的是,发送窗口内的帧并不一定是全都已经发送了的,可能只发送一部分,重发的时候,发的是已经发送但未被确认的,所以不要认为是把整个窗口的全都发送了。

            发送窗口,发送方只有在接受到ACK应答的时候,才可以移动窗口,窗口中的内容是,能发送的,有的已经发送等待确认,而窗口右边的是不能发送的,窗口大小固定,在没得到ACK时就不能移动。

            接收窗口,接收方在接收到帧时,可以向右移,然后回复ACK,但是可以累积确认,比如接受了0,1,2,3之后回复一个ACK 4,表示的是前面全都已经接受了(换句话说,能回复确认4 说明窗口已经移动到了4,前面的一定已经接受到了),发送方也会相应的移动那么多。

    接收方发送的应答帧(ACK)编号x是接收方希望收到的下一帧的编号。<吉大课程的ACK编号含义>

    ②发送方必须响应的三件事

    上层指的是网络层。

    081e0e452ee5426baf7c69c823895fa5.png

            GBN实际上是对超时事件的处理,如果发送方现在发送了,1-2-3-4等,由于某种原因,可能一直没收到接收方的应答(可能是一号帧出了问题,导致接收方一直等待一号帧但是发送方只发了一次,也可能是累积确认的那个帧的问题,导致一号帧一直没被确认),那么发送方会把1-2-3-4等重发一次(把已经发送但是没被确认的)。

    ③接收方要做的事

    1068b2cc966246f884b812695f0bbe8b.png

    接收方发送的确认帧被发送方收到后,发送方滑动窗口右移,发送方会把新移入的帧传送一次。

    接收方如果遇到了不需要的帧,那么就会把最高的已经确认的帧发送确认给发送方。

    <接收方不耐烦,你别发一些我不需要的,我已经收到了这个!你赶紧再发一次我需要的>

    ④运行实例

    78ec4c6cf65e468d952e9337ee0169bd.png

    <接收方不耐烦,每次遇到不需要的就说,我只要番茄! 然后发送方收到这个消息就会把所有已经发送但是没被确认的窗口里的帧都重发一次,当然除非是这个帧在发送方的窗口内,那么发送方的窗口移动一格,然后只发送新的,如果不在那就只能全都重发>

    发送方重发有两个情况:第一个是接收方的不耐烦,第二个是超时。重发的都是在窗口中已经发送但没被确认的帧!!!!!

    ⑤总结

    d362936dce594fb7869c1e31eadb6625.png


    (3)选择重传协议(SR)

    ①发送方要做的事情

    c048cb6d568848c08e2ff32a4a266556.png

    每个帧都独立定时,而且每个帧独立重传!!

    ②接收方要做的事

    58bbb64fa0e0423abc38c4ce4d2abfcd.png

    接收谁就ACK谁(而且你会发现即使是已经ACK了 也发送ACK防止ack没了),发送方接收到ACK谁就ACK谁。

    只不过不是按序的接收方要把数据就缓存起来。

    ③窗口大小

    0898ce9fd6ab42eba8a7ef7d8bc996da.png

    五、信道划分介质访问控制

    (1)传输数据使用的两种链路

    be16929124d04816ab06a955ce800973.png

    (2)信道划分介质访问控制(MAC,多路访问控制)

    防止同时想要发送消息,使得混乱

    290f7c6a97e747bb87f96c3dcade514c.png

    e50fe34cf6b4409a94680beb8fb725bb.png

    静态划分信道是对信道预先进行划分。

    (3)静态划分信道

    ①频分多路复用(FDM)

    b8e8c214a9a84551a2be21a7f0efa26c.png

    每个用户利用不同的频带同时发送。

    ②时分多路复用(TDM)

    bdc5015ce4d54a978890d7e817588a87.png

    占用固定的时隙,很像并发中的循环轮转算法。

    (4)随机访问介质访问控制

    220d506c42dd4bbd99c1dd4d9768435c.png

    只有当电磁波到达结点时,这个结点才会知道这个信道上是否有人发送信息,由于传播时延的存在很容易冲突。

    CSMA的共同特点是,先监听再发送数据,且是多个主机接入到一根总线上,但是CD是碰撞检测,它可以边发送数据边监听,还可以对碰撞实施策略;而CA是碰撞避免。

    只有随机访问MAC会发生冲突。

    ①CSMA协议

    8e58ea9f91c24da08d444c20467aa847.png

    393cdba4960c418fbdfb352ac2dcb098.png

    b82a1a86aeb74d688344b11e8f3de595.png

    db08a64fcb414e44b231008c3584f4ca.png

    他们都不能检测冲突,都在自己的道路上行走。

    82151c48bd4341cba0aa6fa8982423ef.png

    ②CSMA/CD 协议

    运用于总线型以太网(有线网)。

     

    1d771815387942d4adb55fcdffb99b94.png

    碰撞检测,边发送边监听。

    e753f88eb41743228fcc0c73e2d3b749.png

    相当于如果我发送了一个数据,等了2τ才接受到一个数据,说明对面没有在我发送的过程中发送,不然就会在2τ之前收到。

    二进制指数退避算法:

    103d33f6b3e4483daaebf188d1e6fdbd.png

    k是重传次数,而r的取值是一个0到2的k次方-1的数。

    最小帧长:

    防止帧太短了,导致虽然碰撞达到了,但是在发送的时候没达到,发完了才发现碰撞。

    2da725f5c32b4998aef728d72be89375.png

    CSMA/CA协议

    运用于无线网

    (5)轮询访问MAC协议

    a7e7afeb1f6f4ee3a03a7c6059ce784f.png

    ①轮询协议:主结点轮流“邀请”从属结点是否发送数据。

    ②令牌传递协议:

     只有掌握令牌的能发送数据。(所以不可能产生碰撞)

    85ff86be857345989bdcd99b3bc5cfdb.png

    三、局域网基本概念和体系结构(广播式链路)

    一、局域网的基本概念

    使用广播信道

    61f3934b1bb641b69233c930b07691ad.png

    一、局域网拓扑结构

    4c967cb1660444f99e9744a5517718b5.png

    总线型最常用。

    二、局域网传输介质

    6a04875fc7cf43519771921555b9ec68.png

    三、局域网介质访问控制方法

    a21ec8a93c6441ad8bee62fcdf9b90c9.png

    四、局域网的分类

    c2e201d908af43288852747d5787cfab.png

    WiFi是无线局域网的一种应用。

    FDDI网(光纤技术):802.8

    五、IEEE 802标准

    以太网:802.3

    无线局域网WLAN:802.11

    FDDI网:802.8

    令牌环网:802.5

    7da3e9506d104ebb9a69f2a4c8640981.png

    LLC子层  为网络层提供服务。

    MAC子层 处理传输媒体的内容,提供跟帧有关的功能。

    四、以太网

    一、概述

    89a4932463bd4d4c8b06379d7885e8df.png

    满足两个之一标准都能叫作以太网。

    以太网是采用总线型结构(发展成了星型),使用CSMA/CD冲突控制。

    6d932c7689b843068cab8c6dcb7377d5.png

    二、服务

    ea8feff9af4b4399a31611abe698d599.png

    2dd0e0e092584f079dab98ccd90245c6.png

    三、10BASE-T以太网

    10是传输速率,BASE是传送的信号类型是数字信号,T是twisted 双绞线

    d9e3693a8e2f4df2afd410a2196402db.png

    四、以太网MAC帧

    以太网MAC帧最小是64字节

    采用曼彻斯特编码,不需要结束定界符,因为没发送数据的时候电平是不变的,可以通过这个来判断结束。

    d74a72396b5841b0a3b17aa9ff6857fe.png 

    五、高速以太网

    交换机可以隔离冲突。

    12c3281116f94ae09052bc72476a4916.png

    五、802.11无线局域网

    WiFi的范围比无线局域网要小。

    一、MAC帧格式

    1e0678c5d4754bbb855bd304728ddc31.png

    二、分类

    9a35c91a78f045b8a8b62aec5e1cd92d.png

    50ad51f6d8a2421aabeb14173e6175ff.png

    每个WiFi都是一个基本服务集。

    六、广域网及相关协议(点对点)

    广域网覆盖物理层,链路层和网络层。

    局域网覆盖物理层和链路层。

     1fc41d6cdcdc4570bb579d77295914c9.png

    一、PPP协议(点对点协议,链路层协议)

    1fb8c471eec14881aaf091394b0a2dcd.png

    2d72dc01cde54e35ab68f35a52542d86.png

    319b83874a4f4fdeb7c7de0050e190c0.png

    面向字节的协议,面向字节的协议。

    二、HDLC协议

    b52413376b51484386b96d72e93c086d.png

    81a4e0ecee06463d9d621ff321de6f3c.png

    HDLC协议比较可靠,而链路层不需要那么可靠,所以HDCL没那么常用。

    三、PPP协议VSHDLC协议

    099f5f4e94b84d3497fec6e0c1e00afe.png

    透明传输方法:

    PPP:字符插入法

    HDLC:0比特填充法

    七、链路层设备

    每一个端口都是一个冲突域(网段)。

    dafd2cbae30c412d97f769af56f6cee9.png

    一、网桥

    冲突域内可以单独通信

    1f41dae2b37841ec9e0409d7c8135abd.png

    ①透明网桥:

    自学习:网络可以通过源地址得到,源地址对应的接口,以后要是有人要发给这个地址,那就可以直接找到了。

    如果A->B,先找B的接口有没有没有的话其他的每个接口都发送,有的话直接按照接口转发,也会找A的接口有没有,没有的话记录下来。

    f6642d9bab314b40a66bb89b64fa9c26.png

    ②源路由网桥

    6a56c15d8cc94deeaa5fd520c0b36cb4.png

    发送帧找出方案。

    二、以太网交换机(多接口网桥)

    独占总带宽。

    ①直通式交换机

    ②存储转发式交换机

    aa4ee927f2f341fa8d9eefb6a19c6a55.png

    转发机制:自学习

    和网桥是一样的。

    三、冲突域和广播域

    294ad31f06f04ebcafde67f76e6ad8c6.png

    交换机的端口数就是冲突域数,

    路由器的端口数就是广播域数,没有路由器就是1

     

     

  • 相关阅读:
    点云深度学习系列博客(三): 多尺度特征分析
    AWS入列CNCF基金会
    vscode setting.json 全局设置 工作区设置 位置 优先级
    编译mbedtls (mingw方式)
    Flex布局使用
    【案例回顾】春节一次较波折的MySQL调优
    docker的快速入门教程
    【Python】Matplotlib可视化50例
    Ubuntu20.04 PostgreSQL 14 安装配置记录
    OpenCV之pencilSketch函数
  • 原文地址:https://blog.csdn.net/m0_63997099/article/details/134072847