• 【网络基础】数据链路层实现的三大功能


    数据链路层实现的三大功能分别为:

    (1) 封装成帧

    (2) 透明传输

    (3) 差错控制


    1、封装成帧

    封装成帧就是在一段数据前后分别加入首部和尾部,构成了一个帧。

    接收端在收到物理层上交的比特流后。能依据首部跟尾部的标记。从收到的比特流识别帧的開始和结束。

    此外,首部跟尾部还包含很多必要的控制信息。

    在发送帧时,是从帧首部開始发送。各种数据链路层协议都要对帧首尾部格式有明白的规定。每一种协议都限定了帧的数据部分长度上限-----最大传输单元MTU。

    附:最大传输单元MTU(笔者腾讯一面亲历)

    一个UDP报文能传输的最大数据为多大?

    以太网的数据链路层规定了最大传输单元MTU=1500(字节),那么实际上一个IP数据报最长也就是1500 字节,而IP数据报又是由UDP报文或TCP流封装得到的,那么一个UDP报文最大长度为1500-20=1480.20为IP数 据报的首部长度。

    而在运输层。UDP也有自己的首部(8字节),所以在应用层一个UDP报文能传递的最大数据 为1500-20-8=1472(字节)






    2、透明传输

    什么是透明传输,为什么须要透明传输?看下图:



    解决透明传输的方法:

    1、发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。


    2、字节填充或字符填充——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
    3、假设转义字符也出现数据其中。那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时。就删除其中前面的一个。 


    实现方法见下图:





    3、差错检測

    在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
    为了保证数据传输的可靠性,在计算机网络数据传输时。必须採用各种差错检測措施。 


    CRC循环冗余检測

    在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。


    发送端运行的操作:

    在发送端,先把数据划分为组。假定每组 k 个比特。

     
    如果待传送的一组数据 M = 101001(如今 k = 6)。

    我们在 M 的后面再加入供差错检測用的 n 位冗余码一起发送。  

    冗余码计算实例:

    如今 k = 6, M = 101001。
    设 n = 3, 除数 P = 1101,(除数P是我们自己约定的。n的取值是 P的位数减1)
    被除数是 (2^n)M = 101001000。

    (对M从后開始补0,一共补n位)
    模 2 运算的结果是:商 Q = 110101,(计算结果见下图)
                余数 R = 001。
    余数 R 作为冗余码加入在数据 M 的后面发送出去。发送的数据是:101001001。共 (k + n) 位。 


    CRC 是一种经常使用的检错方法,而 FCS 是加入在数据后面的冗余码。



    接收端运行的操作:

    从发送端接收到数据M:101001001(包括冗余码FCS)
    发送端、接收端约定的除数 P = 1101
    M%P 运算结果若为0。表示无比特差错
    M%P 运算结果不为0,表示比特差错,丢弃该帧



    仅用循环冗余检验 CRC 差错检測技术仅仅能做到无差错接受。“无差错接受”是指:“凡是接受的帧(即不包含丢弃的帧)。我们都能以很接近于 1 的概率觉得这些帧在传输过程中没有产生差错”。

    也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。

     


















    本文由Cout_Sev 搜集整理并改动

    自谢希仁老前辈《计算机网络第5版》

    转载请注明出处

    谢谢!




  • 相关阅读:
    socket
    IPv4 IPv6
    2变量与基本类型之const限定符
    15面向对象程序设计
    深度探索C++对象模型之第三章:数据语义学
    线段树(成段更新) 之 poj 3468 A Simple Problem with Integers
    USACO 之 Section 1.1 Ad Hoc Problems (已解决)
    构造字符串 之 hdu 4850 Wow! Such String!
    模拟 + 最短路 之 hdu 4849 Wow! Such City!
    简单题(需要注意一个细节) 之 hdu 4847 Wow! Such Doge!
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5399131.html
Copyright © 2020-2023  润新知