计算机网络笔记——数据链路层基本概念及其可靠传输

一、一些概念

1.链路和数据链路

       链路:一条无源的、点到点的物理线路段,中间没有任何其他的交换结点。
       数据链路:物理链路+链路控制规程形成的数据管道。

2.数据链路层三个基本功能:封装成帧、透明传输、差错控制

       ①封装成帧:就是在一段数据的前后分别添加首部和尾部,然后构成了一个帧。首部和尾部的一个重要作用就是帧定界。
        ②透明传输:数据透明传输就是用户不受协议中的任何限制,可随机的传输任意比特编码的信息,用户可以完全不必知道协议中所规定的结束段的比特编码或者其他的控制字符,因而不受限制的进行传输。
由于帧的首部和尾部中通常都会采用一些特殊的字符或比特组合来作为帧开始和结束的标记,所以在帧的数据部分就不允许再出现与这些定界符号相同的内容,否则就会出现帧定界的错误。
        例子:
       数据部分出现了与帧结束符相同的内容,接收方就会误认为这是帧的结尾而把它接收下来,然而真正的帧并没有传输结束,后续的数据部分就只能成为一个无效的帧被丢弃。
计算机网络笔记——数据链路层基本概念及其可靠传输_第1张图片
        为了解决这个问题,在发送方的数据链路层需要对数据部分出现的与帧定界符相同的字符进行处理,比如我们可以在这些字符前面插一个转义字符,接收方在接收时再将这些转义字符删掉,同时忽略其后面字符的含义。如果转义字符也出现在数据部分,那么就在转义字符前面也插入一个转义字符,接收方收到两个连续的转义字符后,把前面的转义字符删掉即可。
计算机网络笔记——数据链路层基本概念及其可靠传输_第2张图片
       ③差错控制:数据在传输的过程中可能受到干扰,导致1变成0,0变成1,所以必须采取一些差错检测的措施,比如CRC(循环冗余校验)。

       CRC(循环冗余校验):
       将数据比特D看作一个二进制数,选择r+1比特模式(生成式)G 。
       目标:选择r个CRC 比特R, 使得 被G整除 (以2为模,即做异或运算) ,接收方知道G, 用G除以。如果有非零余数:检测到差错!
       能够检测所有小于r+1比特的突发差错,广泛用于以太网, HDCL中。

       循环冗余校验例子:
       考虑4比特的生成多项式G(x) = x^3 + 1,假设数据M(x)的值为10101010,附加比特R(x)的值是什么?

       解:

       分析:D = M(x) = 10101010,G = G(x) = X^3 + 1,将G(x)转化为二进制编码1001(根据生成式x3和x0为1,其他的x^y(y=1,2)都为0),r+1为G(x)转化为二进制编码的位数=4,r=3。所以R=000, = 10101010 000。

       G(x) = x^3 + 1,除数为1001,r=3,被除数为10101010 000
计算机网络笔记——数据链路层基本概念及其可靠传输_第3张图片
       可得余数为101,即附加比特R(x)的值是101。

       使用循环冗余校验只能做到对帧的无差错接受,但“无差错接受”≠“可靠传输”,因为数据帧除了差错之外还可能出现帧丢失,帧重复、帧乱序等情况。

二、数据链路层的可靠传输

1.停止等待协议,又称自动重传请求(ARQ协议)

       ①正常情况下,接收方收到发送方发来的一帧正确的数据后,将其提交给主机,主机向发送方发出一个确认帧ACK,发送方收到确认帧之后才能发送下一帧数据。
计算机网络笔记——数据链路层基本概念及其可靠传输_第4张图片

       ②SW0协议:引入确认和重传机制,防止信道丢包。
       如果数据在传输中出现差错,接收方通过循环冗余校验可以很容易发现这种错误,此时接收方需要向发送方发送一个否认帧,然后发送方需要重传这一帧数据,直到收到确认帧为止,这种处理方式叫做差错重传。
计算机网络笔记——数据链路层基本概念及其可靠传输_第5张图片
       ③SW1协议:引入超时定时器,即超时重传机制,防止发送方一直等待ACK,引起协议死锁。
       除了传输出错,数据帧在传输过程中也可能会丢失,由于接收方收不到数据,所以不会发出确认帧,而发送方如果一直等待下去的话,就会出现死锁,为了防止这种情况出现,引入超市定时器。如果在计时器做设置的时间内没有收到接收方发来的确认帧的话,就重传之前发出的这一帧数据,知道收到确认帧为止,我们把这种处理方式称为超时重传。
计算机网络笔记——数据链路层基本概念及其可靠传输_第6张图片
       ④SW2协议:ACK应答丢失,发送方超时重传,接收方收到重复帧,引入序号帧,接收方可以辨别重复帧,丢弃重复帧并重新发送ACK。
       当数据帧被接收方接收了,但确认帧却丢失了,这时发送方也会进行超时重传,而接收方已经接收到数据了,这就会出现重复帧的问题,为了解决重复帧问题,可以给每个发送的数据帧都带上不同的序号,根据序号,接收方就可以很容易的判断出重复帧,当收到重复帧时,接收方应当将重复帧丢弃,同时必须向发送方再发送一个确认帧,以防止发送方再超时重传。
计算机网络笔记——数据链路层基本概念及其可靠传输_第7张图片
       停止等待协议优点是简单,缺点是信道利用率太低。
计算机网络笔记——数据链路层基本概念及其可靠传输_第8张图片
       发送一帧数据的时间是TD,数据再发送方和接收方之间的信道上往返的传输时间是RTT,发送方接收确认帧的时间是TA,由上图可以看出,发送方在每一帧数据发送的过程中有效数据占用信道传输的时间仅为TD,由此可见停等协议的信道利用率非常低。

       停等协议的发送方在等待接收方确认的过程中信道一直处于空闲状态,而连续ARQ协议就解决了这个问题。

2.连续ARQ协议(流水线协议)

       连续ARQ协议采用流水线的思想, 发送方允许发送多个、传输中、未应答的分组,边发送边接收,不用停下来等待确认帧。由于连续发送,每帧数据需连续编号,确认帧也需要编号。接收方出现差错后的处理方法是不响应(这样实现起来比较简单)。
计算机网络笔记——数据链路层基本概念及其可靠传输_第9张图片
       两种流水线协议:回退N步(go-Back-N)、选择性重传(S-R)。

       ①回退N步(go-Back-N):采用按序接收的工作方式,即如果前面序号的数据帧出错或丢失,那么其后面的数据帧只能被接收方丢弃,因此如果发送方因计时器超时对某一帧数据进行重传的话,除了要重传这一帧数据外,还要把在超时之前所有没收到确认的帧都重传一遍。
       回退N步的问题:单一差错可能导致大量不必要重传。

       ②选择性重传(S-R),引入滑动窗口机制(对已经发送出去但还没确认的数据帧的数量加以限制)。
计算机网络笔记——数据链路层基本概念及其可靠传输_第10张图片
       发送窗口的作用是对发送方的流量进行控制,只有在发送窗口内的帧才能被连续发送出去。
       接收窗口的作用是为了控制哪些帧可以接收,哪些帧不能接收,接收方只有收到发送序号在接收窗口里的数据帧时才能将该帧收下,否则一律丢弃。当发送窗口和接收窗口的大小都为1时,就是停等协议,为了提高信道利用率,可以只对出现差错或丢失的数据帧进行重传,此时必须加大接收窗口,先收下那些发送序号不连续但在接收窗口内的数据帧,等所有窗口内的数据帧都到达后再一起提交,这就是选择性重传ARQ。

       例子(理解对已经发送出去但还没确认的数据帧的数量加以限制以及所有窗口内的数据帧都到达后再一起提交的意思):
计算机网络笔记——数据链路层基本概念及其可靠传输_第11张图片

       MAC地址:
       LAN地址=物理地址=MAC地址,通常用6字节16进制表示,如1a-03-65-3F-2e-46,共有2^48个LAN地址。
       IEEE地址分配方式:固定前24 bit,公司生成后24 bit,每个适配器具有唯一MAC地址。

       未掌握的知识:
       ①PPP协议。
       ②多路访问MAC协议
       分类:
       (1)信道划分MAC协议:TDMA: 时分多路访问、FDMA: 频分多路访问。
       (2)轮流:结点轮流,信息较多的轮流发送的时间较长。
       (3)随机访问:不划分信道,允许碰撞,设法从“碰撞”恢复。
       多路访问协议比较:
       信道划分MAC协议:
       在高负载时高效、公平地共享信道
       低负载时低效:信道访问中延时,当1个活跃结点时,甚至仅有分配了 1/N 带宽!
       随机访问MAC协议:
       低负载是有效:单个结点能够全面利用信道
       高负载:碰撞开销大
       轮流协议:
       兼有两方面的优点!
       ③CSMA(载波侦听多路访问)、CSMA/CD (碰撞检测)。

你可能感兴趣的:(计算机网络)