计算机网络个人笔记:第三章-数据链路层

三、数据链路层

(一)数据链路层机制概述

1.将网络层传下来的数据报(分组)加上首尾部组装成帧(组帧时要保证透明传输),

2.并在帧中添加一些校验信息,保证其在接收方链路层能对帧错和位错进行检错和纠错。

3.在决定是否发送数据(接收方决定如何回复确认时)时,要根据协议考虑是否发生冲突(使用访问控制手段的多用复用或监听协议),

4.还要考虑接收方是否接得下、是否正确接收(使用流量控制和可靠传输手段的滑动窗口协议)。

5.根据以上协议判断后,若可以发送,则通过物理层进行发送。过程中通过链路层设备网桥和交换机扩大物理范围、隔离冲突域、提高传输可靠性。

(二)功能一:组帧

1.定义:网络层传下来的IP数据报加首部、尾部构成一个帧。接收端收到物理层上交的比特流后,根据首部和尾部标记,识别出帧的开始和结束。属于定义数据格式。

2.四种方法:

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。链路层看不到有什么妨碍数据传输的东西。为了实现这一点,控制信息(首部尾部)必须不会与数据重复导致错误。

(1)字符计数法:用第一个字节(8比特)表明帧内有多少字符数。(第一个字节发生错误时影响大)。

(2)字符填充法:设定两个特定比特组合,放在首尾。数据中若出现这些特定比特组合,在前面加转义字符。则接收方把转义字符去掉就行了。(实现复杂和不兼容性)

(3)零比特填充法:用一个特定比特组合放在首尾01111110,发送端在数据中只要有5个1就填个0。接收方在确定在帧界限后扫描,只要有5个1就去掉1个0(常用)。

(4)违规编码法:如在曼彻斯特编码中不应出现高高和低低组合,则用他们作为帧的起始(常用)。

(三)功能二:差错控制

1.差错的起因和类型:差错由噪声引起,包括全局性的噪声(线路本身电气特性产生随机噪声,是信道固有的,解决办法是提高信噪比来减少或避免干扰)及局部性的噪声(外界突发原因造成的冲击噪声,是产生差错的主要原因,常用编码技术解决),会导致帧错(丢失、重复、失序)或位错(比特位0、1出错)。路由器在链路层使用差错控制,可以把错误帧丢弃,在后面节省资源。

2.解决方法:

(1)帧错使用后面的滑动窗口协议的确认-重传机制解决(见功能三)。

(2)位错使用检错编码(奇偶校验码、循环冗余码CRC)、纠错编码(海明码)解决:

-1-奇偶校验码(检错):n-1位信息元前面添一位,使得1的个数为奇(偶)数。如果有两位比特错了就检验不出了。

-2-CRC循环冗余码(检错):

要传的数据/生成多项式,得到的余数为冗余码。发送的数据为要发数据+冗余码。接收方用收到的数据/生成多项式,若余数为0,则无错。FCS生成和CRC检验有硬件实现,处理迅速不会延误数据传输。

计算题方法:

在发送数据后面加上r个0,r为多项式的最高阶。用加完后的数据除多项式,方法是对齐摆放后同0异1。将余数加到发送数据上。接收方验证时同理。

-3-海明码(纠错):

步骤一:用海明不等式:2^r>=k+r+1确定校验码位数r(k为信息位)。

步骤二:将校验码放在2的n次方位置,剩下位置就是数据位。

步骤三:求出校验码的值:将数据位数对应到二进制数,看每位校验码所处位数的二进制数哪位是1,找这位也是1的数据位即为其可校验的数据位,校验码需与这些数据异或为0(同0异1)。

步骤四:检错并纠错:令所有校验码与其校验的位异或运算,算出r个数字。从最后一个往前写,组成的二进制数对应的数字就是出错的位数。

记忆点:检测d比特错要用d+1海明距,纠正d比特错要用2d+1海明距。

(四)功能三:访问控制

1.访问控制的目的:

(1)传输数据可使用点对点链路(相邻结点通过一个链路相连,常用于广域网),广播式链路(所有主机共享通信介质,例子是早期的总线以太网,常用于局域网,典型拓扑结构为总线型、星型(逻辑上还是总线型))。

(2)在广播式链路中,要对共享介质进行访问控制,使大家避免因同时使用介质而造成互相干扰。介质访问控制方法有:静态划分信道、动态分配信道。

2. 静态划分信道:

即复用分用技术,把多个信号组合在一条物理信道上进行传输,使多个计算机可以共享信道资源,提高信道利用率。信号在进入共享信道前复用,出时分用。

(1)频分多路复用FDM:每个时间内,不同用户占用不同频段。

充分利用传输介质带宽,效率高,技术成熟易实现。

(2)时分多路复用TDM:每个用户交替使用信道,在时隙循环中轮流用。TDM帧即4个一轮就是4。TDM使用数字信号,FDM适用模拟信号。FDM比TDM更充分第利用了带宽。

(3)统计时分复用STDM:在每个用户突发性强时,用集中器将各用户发出的分成一个个时隙的数据组合成一个STDM帧,其中的时隙数小于连接在集中器上的用户数。STDM帧按需分配。

(4)波分多路复用WDM:光的频分复用,光纤中进行。

(5)码分多路复用CDM:不同用户的1被编码成一个m位的(1、-1)序列,发1时发这个序列,发0时发其反码,各用户之间的1编码要正交(点积为0)。发送时将他们的对应发送比特转换为m位序列后加和,将加和的m为序列发送到对面后,接收方将该序列点积每一个发送方的m位序列并除以m,就能得到对应用户发送的该位比特是什么。码分多址(CDMA)是码分复用的一种方式。

3.动态分配信道(动态媒体接入控制技术):

分为随机介质访问和轮询介质访问控制(不在考纲),以下介绍各种随机介质访问控制方法:

(1)ALOHA协议:

-1-纯ALOHA协议,不监听信道,想发就发,发送方冲突则接收方会反馈,则发送方停止并等一随机时间再开始。问题是成功率太低。

-2-时隙ALOHA协议,把时间分成若干个相同大小的时间片,所有用户在时间片开始是同步接入网络信道,若发生冲突需等到下一个时间片再开始发送。

(2)CSMA协议:CS载波监听(监听方式是当几个站同时在总线发送数据时电压摆动值会超过一个范围),每个站在发送前检测总线是否有计算机在发送数据。MA多点接入,表示许多计算机以多点方式连接在一根总线上。

-1-一坚持CSMA:发送前先监听信道,空传,不空就等到空了马上传,发现冲突就等随机时间再重新监听。优点:空就能发,利用率较高;缺点:假如有两个及以上要发,则冲突不可避免

-2-非坚持CSMA:空传,忙则等随机时间再监听。优点:随机重监听降低冲突可能;缺点:可能大家都在等随机时间,信道利用率低。

-3-P坚持CSMA:空以p概率传,1-p则等到下个时间片再传,忙则等随机再监听

(3)CSMA/CD协议:CSMA上加了CD(碰撞检测),应用于半双工网络。边发送时边监听是否其他站发送数据。

-1-即使发送前监听了信道发现是空闲的再发,也可能发生冲突,因为可能我的信号发到半路上时对方的信号发出。发出信号后如果有冲突,最长在2*单程传播时延a的时间内会知道。

-2-碰撞后不能马上重发,重传时间使用截断二进制指数规避算法:先确定基本退避时间2a,第k次重传时,从{0,1,2.。。,2^(k与10的最小值)}中随机选一个数r,2ra就是退避时间。重传达16次仍不成功说明网络太拥挤,放弃发送此帧并向高层报告出错。

-3-最小帧长:若帧太短则来不及检测到碰撞就发完了,则定义 帧长/数据传输速率>=2*单程传播时延a。以太网规定最短帧长为64字节。

(4)CSMA/CA协议:在CSMA加上CA(碰撞避免):CSMA/CD用于总线型以太网,CSMA/CA用于无线局域网,因为无线局域网中方向太多,无法用CD算法。另外有隐蔽站问题,A要给B发数据,但C不知道,也去给B发,C就是隐蔽站。

原理:发送前监听,空闲则发RTS(包括发射和接收端地址、数据持续发送时间等),忙则等待。接收端收到RTS就响应CTS,收到CTS就发,同时预约信道(发送方告知其他站点自己要传多久数据)。接收端收到数据帧后用CRC来检验数据正确性,正确就响应ACK,没有就根据二进制指数退避算法在下一时间重发。

(五)功能四:流量控制(可靠传输)

1.链路层与传输层流量控制的区别:

链路层流量控制点对点(结点间),主要是收不下就不回复确认。

传输层流量控制端到端(主机间),主要是收不下给发送端一个窗口公告。

2.流量控制与可靠传输的定义及解决方法:

流量控制使接收方有足够的缓冲空间接收每一个帧;可靠传输要实现发送端发啥,接收端收啥。滑动窗口机制同时解决了以上两个问题(收不到确认发不了,收不到确认自动重传)。以下有三种实现滑动窗口机制的不同协议(无需纠结以下三个协议是哪个层次的):

(1)停止等待协议(特殊的滑动窗口协议,发送和接受窗口皆1):

-1-机制:每发完一个帧(比如1号)就停,等对方确认后(确认1号帧到达)再发下一个。数据帧编号只用1bit也可以。发完一帧后保留其副本,若没收到确认,超时时就重发该帧。重传时间(自发送到重传)应略大于平均RTT(往返传播时延,发送后到收到确认)。

-2-停止等待协议的问题及解决方法:

为解决停等协议利用率低的问题,需连续发送多个帧(流水线技术),故需要(1)增加序号范围(2)缓存多个备份。故引入后退N帧协议GBN和选择重传协议SR。

-3-信道利用率的计算:

信道利用率=(L/C)/T=(L/C) / (L/C+RTT),发送方一个发送周期内,有效发送数据所需要的时间占整个发送周期的步履。发送L比特数据,C为发送方数据传输率,T为从开始发送数据到收到一个确认帧为止的时间,即两倍的传播时延+传输时延。信道吞吐率=信道利用率*发送方的发送速率。

(2)后退N帧协议:

-1-机制:发送方允许发送的帧的序号称为发送窗口,接收方的允许接收帧的序号称为接收窗口。每次发送方发送自己能发送的所有序号的帧,接收方在GBN中仅1接收窗口,每收一个发一个ACK确认,发送方收到一个确认往前移一格发送窗口。滑动窗口长度应in【1,编号数-1】才能保证区分新帧和旧帧。

-2-GBN中发送方需响应的三件事:

-2.1-网络层调用:上层要发送数据时,链路层发送方检查发送窗口是否已满,如果没满就发,满了将数据返回上层,上层等一会再发(或链路层缓存)。

-2.2-收到一个ACK:累积确认,收到n号帧确认则之前的全部成功。

-2.3-超时事件:超时时发送方会重传从未确认帧往后所有的帧重传。

-3-GBN中接收方做的事:

若正确按序收到n号帧,发送一个ACKn,并将数据交付上层。其余情况就丢弃(不按序),并发送上一正确收到的帧的确认。

-4-性能分析:优:因连续发送数据而提高了信道利用率。缺:重传时把原来已经正确发送的数据帧重传,传送效率降低。针对其缺点提出了选择重传协议。

(3)选择重传协议SR(发送和接收窗口都>1):

-1-SR发送方需响应的三件事:

-1.1-上层调用:有位子就发,不然就返回上层或缓存。

-1.2-收到ACK:该帧序号在窗口内则发送方将那个被确认的帧标记为已接收。若该帧时窗口下界,则窗口向前移一位。

-1.3-超时时只重传一个帧(一个帧一个计时器)。

-2-SR接收方做的事:

窗口内的帧来着不拒,不管是否失序。接收方收到一个帧但不按序,则缓存该帧,直到其前面的帧都来了在一起交付给上层,然后向前移动滑动窗口。如果收到小于窗口下界帧,就返回一个ACK。对数据帧逐一确认。

-3-窗口长度的选择问题:发送窗口最大值=接收窗口最大值=2^(帧编号所用比特位-1)。发送窗口最好等于接收窗口。

(六)数据链路层设备:

1.冲突域:

(1)冲突域表示的是在这个网络区域内不能有两个设备同时发送信号,不然就是导致冲突。通常一个物理层设备(集线器)所连的一堆主机构成一个冲突域。

(2)物理层扩展发送距离可以使用光纤或集线器,而链路层扩展发送距离用网桥和交换机,网桥和交换机可以隔离冲突域,收到帧时会根据MAC帧的目的地址来转发和过滤,不会向所有接口转发。传输层可靠,网络层不可靠,链路层可靠,物理层不可靠。

2.网桥:

(1)定义与功能:网桥把几个以太网(冲突域)连接起来,网桥两端就是两个网段(一般只使用同一物理层设备能够直接通讯的那一部分),常用两个端口,也有三或四个但通常都比较少。

(2)优点:能过滤通信量,增大吞吐量,扩大物理范围,提高可靠性(某网段的故障不影响其他网段),能互连不同物理层、不同速率、不同MAC子层的以太网。

(3)分类:

-1-透明网桥:以太网上的站台仿佛看不到网桥的存在,网桥自己用自学习算法填满转发表。每次一个帧从一个接口发进来,网桥就将收到的接口号和帧的起点地址对应存入转发表,再扫描其目的地址,如果目的地址不在转发表内就从所有其他接口发出去,如果有就只从对应的接口发出。(转发表要定期更新,以防网络拓扑结构变化)

-2-源路由网桥:源站先以广播方式向目的站发一个发现帧,目的站会将n中路径返回,源站选择其中最优化的路径放在首部。

3.以太网交换机:

(1)定义与功能:即多接口网桥。通常有十几个端口,可以连集线器或主机。可以独占传输媒体带宽,每个连接的冲突域都可以使用最大的传输媒体带宽,无需平分。

(2)分类:

-1-直通式交换机:查完目的地址(6字节的MAC地址)立即转发,延迟小可靠性低(不能检查是否正确),无法支持具有不同速率端口的交换。

-2-存储转发时交换机:将帧存入缓存检查正确性再转发,错就丢,延迟大可靠性高,支持具有不同速率端口的交换,目前常用。

你可能感兴趣的:(计算机网络个人笔记:第三章-数据链路层)