• 【计算机网络】数据链路层:使用点对点信道的数据链路层


    数据链路层信道类型:

    (1)点对点信道:使用一对一的点对点通信方式

    (2)广播信道:使用一对多的广播通信方式。

    必须使用专用的共享信道协议来协调主机数据发送。

    链路:从一个节点到相邻节点的一段物理线路

    数据链路(逻辑链路): 把实现数据传输的协议的硬件和软件加到链路上,构成了数据链路。

    最常用的方法是使用网络适配器(网卡)来实现这些协议。

    帧:数据链路层协议数据单元

    三个基本问题:封装成帧、透明传输、差错控制

    封装成帧:

    网络层的IP数据报加上帧首部和帧尾部构成一个完整的帧。

    一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。

    首部和尾部的一个重要作用就是进行帧定界。

    最大传送单元MTU:规定所能传送帧的数据部分长度上限。

     使用控制字符作为帧定界符:

    控制字符SOH(01)放在一帧的最前面,表示帧的首部开始。

    控制字符EOT(04)放在一帧的末尾,表示帧的结束。

    如果在数据链路层不封装成帧,那么数据链路层在收到一些数据后,就不知道哪些是数据,那么是控制信息,并且不能进行差错检验。

    透明传输:

    透明:某一个实际存在的事物看起来好像不存在一样。

    数据链路层的透明传输表示:无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过数据链路层。

    如果数据中某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地找到帧的边界。

    使用字节填充或字符填充的方法解决透明传输的问题。

     在EOT或SOH前面插入一个转义字符"ESC"。当转义字符也出现在数据里面时,就在转义字符前在加上一个转移字符。

    差错检测:

    在传输过程中可能会出现比特差错:1->0,0->1

    在一段时间内,传输错误的比特占所传输比特总数的比率叫误码率。

    循环冗余检验CRC:

    在发送端,先把数据划分为组,假定每组k个比特。CRC运算在每组M后面再添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一个发送k+n位。

    仅用循环冗余校验CRC差错检测技术只能做到无差错接受。

    即凡是接受的帧都能以接近于1的概率认为这些帧在传输过程中没有产生差错。

    但是无比特差错和无传输差错是不同的。

    传输差错包括帧丢失、帧重复、帧失序等情况。

    在数据链路层使用CRC检验,能够实现无比特差错的传输,但是这不是可靠传输。

    CRC循环检验:

     

     

    思考题:

    数据链路层做成可靠的链路层有哪些优点和缺点?

    优点:可以使网络中的某个节点及早发现传输中出了差错,如果做成不可靠,那么网络中节点有差错时,仅仅丢掉这个帧,在TCP层发现这个错误时,才通知源主机重传出错的数据。但已经较迟,可能要传很多的数据

    缺点:如果高层使用UDP,那么就不要求可靠。使用可靠的数据链路层牺牲了实时性。

  • 相关阅读:
    【C++】基础知识点回顾 下:auto关键字、范围内的for循环
    相机坐标系
    集成Swagger
    mysql GROUP_CONCAT 以及 其逆过程
    全网最全的AItium Designer 16下载资源与安装步骤
    [附源码]计算机毕业设计中小学课后延时服务管理系统Springboot程序
    [go学习笔记.第十章.面向对象编程] 8.面向对象的三大特性-封装
    【考研高数 武忠祥+880版 自用】高数第三章基础阶段思维导图
    Docker安装Rabbitmq并挂载宿主机数据目录
    Word docx转html和markdown
  • 原文地址:https://blog.csdn.net/m0_52043808/article/details/128052142