美文网首页
数据链路层(一):概述

数据链路层(一):概述

作者: ywhu | 来源:发表于2017-09-10 22:15 被阅读0次

    基本概念

    数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层

    示例:主机H1向主机H2发送数据


    image image

    点对点通信

    点对点信道的数据链路层

    数据链路和帧

    • 链路

    从一个节点到相邻节点的物理线路(有限或者无线),中间没有任何的交换节点。计算机之间的通信要经过很多条这样的物理链路

    • 数据链路

    在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点(点到点 point to point)所经过的传输途径

    点对点信道的数据链路层的协议单元。数据链路层把从网络层接受的数据封装成帧放到网络上,把接收到的帧中的数据取出放到网络层。

    image

    封装成帧

    在一段数据前后分别加上首部和尾部构成一段帧;首尾部的作用是确定帧的界限(帧定界);帧长等于数据长度加上首尾部的长度;为提高传输效率,帧数据长度应该尽可能大于首尾长度

    imageimage

    差错检测

    1. 比特差错和误码率

    比特在传输过程中可能产生差错,如:0变成1

    一段时间内,传输错误的比特数占总传输数的比例

    1. 非比特差错

    发送方发送:123

    • 帧重复:112
    • 帧丢失:12
    • 帧失序:132
    1. 差错校验措施
    • CRC(循环冗余检测 也称为多项式编码)

    例如:假设传送的数据M=101001(共k为,k=6),在数据M后面加供差错检测用的n位冗余码一起传送(一共发送n+k),虽然增大了数据传输的开销,但却可以进行差错检测。
    n位冗余码可以用以下方法计算,先用二进制的模2运算进行2^n乘M,这相当于在M后边添加n个0,然后用得到的(k+n)位的数除以首发双方事先确定好的长度为(n+1)位的数p,得出商是Q,而余数是R,把余数R作为冗余码添加在数据M后面发送出去。
    M=101001,n=3,P=1101,则Q=110101,R=001,二进制的除法相当于异或运算。
    接收方对接收到的帧进行CRC检验,把接收到的帧以同样的P,得出余数R,如果传输过程中没有差错,则得出的余数显然应为0.

    数据链路层仅适用CRC,只能保证对帧的无差错接受(即只能校验比特差错,非比特差错无法校验)

    • 奇偶检验法

    数据总共为d位,后面一位是校验位;采用偶(奇)校验的时候我们要在校验位添加0/1使得总共的1的位数为偶(奇)数;接收方也使用确认1的位数来检测是否发生了错误,如果发生了错了则丢弃这个数据帧

    奇偶检验检验是最简单但是也是最没有保障的。

    偶检验不能识别偶数个位的bit错误的发生,而奇校验不能识别奇数个位的bit错误(1位除外,1位错误奇偶都可以识别);奇偶校验能发现错误但是不能纠正错误

    相关文章

      网友评论

          本文标题:数据链路层(一):概述

          本文链接:https://www.haomeiwen.com/subject/ihgtsxtx.html