《《数据链路层 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据链路层 》PPT课件.ppt(166页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 1/169第第3章章 数据链路层数据链路层v定义和功能定义和功能v数据帧的组成数据帧的组成v可靠性传输可靠性传输v数据链路层示例数据链路层示例Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 2/169v为网络层提供一个较好的服务接口为网络层提供一个较好的服务接口v为网络层提供可靠的传输服务为网络层提供可靠的传输服务数据链路层的定义数据链路层的定义数据链路层的上层是网络层,数据链路层数据链路层的上层是网络层,数据链路层将借助于物理层为网络层提供服务将借助于物
2、理层为网络层提供服务数据链路层的协议数据单元(数据链路层的协议数据单元(PDU)是帧)是帧Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 3/169数据链路层的功能数据链路层的功能v数据链路层的任务是把网络层的数字数据组合成帧,并数据链路层的任务是把网络层的数字数据组合成帧,并加上一定的校验码后交物理层加上一定的校验码后交物理层v物理层用不同的信号表示二进制数据位,从而把帧用一物理层用不同的信号表示二进制数据位,从而把帧用一段连续的信号串表示并传送到目的主机段连续的信号串表示并传送到目的主机v目的主机的物理层将信号还原成比特串交数据链路层,目的主机
3、的物理层将信号还原成比特串交数据链路层,井数据链路层确认正确后送到网络层井数据链路层确认正确后送到网络层v数据链路层为源和目的主机的网络层之间提供一条可靠数据链路层为源和目的主机的网络层之间提供一条可靠的数据链路的数据链路Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 4/169相连、物理链路和数据链路相连、物理链路和数据链路v所谓相连,可以理解为物理介质的连接,但当所谓相连,可以理解为物理介质的连接,但当采用多路复用技术时也可以是信道的连接,其采用多路复用技术时也可以是信道的连接,其特征为:所传输的数据是按序的特征为:所传输的数据是按序的v物理链
4、路:一段无源的点到点的物理连接,中物理链路:一段无源的点到点的物理连接,中间没有任何交换节点间没有任何交换节点v数据链路:包括一条物理连接和为实现数据传数据链路:包括一条物理连接和为实现数据传输而在两端配置的硬件及其相关的通信协议输而在两端配置的硬件及其相关的通信协议Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 5/169数据链路层提供的服务数据链路层提供的服务v数据链路层的服务是通过有无连接、数据链路层的服务是通过有无连接、有无确认来区分的有无确认来区分的无确认无连接的服务无确认无连接的服务有确认无连接的服务有确认无连接的服务有确认有连接的服务
5、有确认有连接的服务Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 6/169确认和连接确认和连接v确认:接收方在收到数据帧后,必须给确认:接收方在收到数据帧后,必须给发送方发回一个确认发送方发回一个确认v面向连接:发送方和接收方在传输数据面向连接:发送方和接收方在传输数据之前必须建立一条数据链路,传输结束之前必须建立一条数据链路,传输结束后必须释放该链路后必须释放该链路Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 7/169数据链路层的服务数据链路层的服务v无确认无连接的服务无确认无连接的服务v有确认
6、无连接的服务有确认无连接的服务v有确认有连接的服务有确认有连接的服务Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 8/169无确认面向无连接的服务无确认面向无连接的服务 v无确认是指接收方在收到数据帧后,毋需发回一个确认无确认是指接收方在收到数据帧后,毋需发回一个确认v无连接的服务是指在数据传输前毋需建立数据链路无连接的服务是指在数据传输前毋需建立数据链路v物理线路的连接并非意味着提供了有连接的服务物理线路的连接并非意味着提供了有连接的服务v无确认并非不可靠,其可靠性可由上层负责无确认并非不可靠,其可靠性可由上层负责例如:局域网例如:局域网1.共
7、享信道不需要、也不允许建立连接共享信道不需要、也不允许建立连接2.信道较为理想,数据传输的误码率很低信道较为理想,数据传输的误码率很低3.即使出错或丢失由上层负责恢复即使出错或丢失由上层负责恢复Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 9/169数据链路层的服务数据链路层的服务v无确认无连接的服务无确认无连接的服务v有确认无连接的服务有确认无连接的服务v有确认有连接的服务有确认有连接的服务Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 10/169有确认面向无连接的服务有确认面向无连接的服务 v使
8、用前不建立连接,即不建立数据链路,但每帧传输使用前不建立连接,即不建立数据链路,但每帧传输必须得到确认必须得到确认v这在信号传播延时较大、线路状态不一定很可靠的情这在信号传播延时较大、线路状态不一定很可靠的情况下是有效的况下是有效的例如:无线通信例如:无线通信1.如建立连接,则信道使用率很低如建立连接,则信道使用率很低2.然而,由于数据传输的误码率相对较然而,由于数据传输的误码率相对较高,所以确认是必要的高,所以确认是必要的Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 11/169数据链路层的服务数据链路层的服务v无确认无连接的服务无确认无连接的
9、服务v有确认无连接的服务有确认无连接的服务v有确认有连接的服务有确认有连接的服务Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 12/169有确认的面向连接服务有确认的面向连接服务 v使用前先建立连接,即先建立数据链路,并且每使用前先建立连接,即先建立数据链路,并且每帧的传输必须得到确认帧的传输必须得到确认v有连接的服务必须在使用前先建立连接(即建立有连接的服务必须在使用前先建立连接(即建立数据链路),然后使用,最后释放连接数据链路),然后使用,最后释放连接例如:电话例如:电话1.电话是一种实时的应用,如不是面向连电话是一种实时的应用,如不是面向连
10、接,则实时性难以得到保证接,则实时性难以得到保证2.电话是一对一的、双向的数据传输电话是一对一的、双向的数据传输Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 13/169数据的可靠传输数据的可靠传输v将传输的信息组合成帧将传输的信息组合成帧v校验和重发校验和重发v流量控制流量控制保证直接相连的两台主机的可靠性传输保证直接相连的两台主机的可靠性传输Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 14/169第第3章章 数据链路层数据链路层v定义和功能定义和功能v数据帧的组成数据帧的组成v可靠性传输可靠性
11、传输v数据链路层示例数据链路层示例Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 15/169数据帧的组成数据帧的组成v字符计数法字符计数法v带字符填充的首尾界符法带字符填充的首尾界符法v带位填充的首尾标志法带位填充的首尾标志法 v物理层编码违例法物理层编码违例法帧的组成必须保证能识别一个完整的帧,并保证一帧的组成必须保证能识别一个完整的帧,并保证一旦出现传输差错而导致前一个帧丢失时,也必须能旦出现传输差错而导致前一个帧丢失时,也必须能识别后一个帧,即具有识别后一个帧,即具有帧帧再同步能力再同步能力Computer Networks v5 cs.s
12、jtu 2023/2/4第3章 数据链路层 16/169字符计数法字符计数法v假设帧的长度用一个字节表示,并作为帧的头部假设帧的长度用一个字节表示,并作为帧的头部一旦帧长度计数被误读,将无法再同步,所以不能采用一旦帧长度计数被误读,将无法再同步,所以不能采用 第第1帧帧第第2帧帧帧长度计数错帧长度计数错帧长度计数帧长度计数第第1帧帧第第4帧帧第第3帧帧第第2帧帧5123456789801234568789012351234767898012345687890123TnbmP188Fig.3-4字符计数成帧法字符计数成帧法Computer Networks v5 cs.sjtu 2023/2/4
13、第3章 数据链路层 17/169数据帧的组成数据帧的组成v字符计数法字符计数法v带字符填充的首尾界符法带字符填充的首尾界符法v带位填充的首尾标志法带位填充的首尾标志法 v物理层编码违例法物理层编码违例法帧的组成必须保证能识别一个完整的帧,帧的组成必须保证能识别一个完整的帧,并保证一并保证一旦出现传输差错而导致前一个帧丢失时旦出现传输差错而导致前一个帧丢失时,也必须能,也必须能识别下一个帧,识别下一个帧,即具有帧再同步能力即具有帧再同步能力Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 18/169带字符填充的首尾界符法带字符填充的首尾界符法 v用特
14、殊的字符作为帧头和帧尾界符用特殊的字符作为帧头和帧尾界符FLAG HeaderPayloadfieldTrailer FLAG这是一种面向字符的帧格式,所传输的数据都是字符这是一种面向字符的帧格式,所传输的数据都是字符(ASCII或或EBCDIC字符),但帧中不允许出现帧界符字符),但帧中不允许出现帧界符标志,在面向字符的串型通信中常使用这种格式标志,在面向字符的串型通信中常使用这种格式(PPP)接收方一旦丢失了一个接收方一旦丢失了一个FLAG,只要继续搜索下一个,只要继续搜索下一个FLAG,就可重新确定帧边界,即具有再同步能力,就可重新确定帧边界,即具有再同步能力TnbmP189Fig.3-
15、5(a)由由Flag标志的一个帧标志的一个帧Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 19/169面向字符的帧格式面向字符的帧格式v面向字符的帧格式不适宜传输数据中包含二进制数的帧,面向字符的帧格式不适宜传输数据中包含二进制数的帧,因为在包含二进制数的帧中很可能出现与因为在包含二进制数的帧中很可能出现与FLAG相同的相同的bit序列(通常序列(通常FLAG用用ASCII字符字符7EH定义)定义)v一种方法是在二进制数中偶然出现的一种方法是在二进制数中偶然出现的FLAG前再插入一个前再插入一个ESC(ASCII字符字符1BH),这种方法称为字符
16、填充法),这种方法称为字符填充法41337E5C4B0C41331B5C4B0C41331B7E5C4B0C41331B1B5C4B0C41331B7E5C4B0C41331B1B5C4B0C41331B1B1B7E5C4B0C41331B1B1B1B5C4B0CComputer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 20/169数据帧的组成数据帧的组成v字符计数法字符计数法v带字符填充的首尾界符法带字符填充的首尾界符法v带位填充的首尾标志法带位填充的首尾标志法 v物理层编码违例法物理层编码违例法帧的组成必须保证能识别一个完整的帧,并保证一帧的组成必须保证
17、能识别一个完整的帧,并保证一旦出现传输差错而导致前一个帧丢失时,也必须能旦出现传输差错而导致前一个帧丢失时,也必须能识别下一个帧,即具有帧再同步能力识别下一个帧,即具有帧再同步能力Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 21/169带位填充的首尾标志法带位填充的首尾标志法 v在面向二进制位的同步串行通信中常使用在面向二进制位的同步串行通信中常使用带位带位填充的首尾标志填充的首尾标志格式,如格式,如HDLC这是一种面向二进制位的帧格式,把所有需传输的数据(不论是字符这是一种面向二进制位的帧格式,把所有需传输的数据(不论是字符或表示一个浮点数的
18、二进制位串,还是一个或表示一个浮点数的二进制位串,还是一个MP3的文件)一字排开,的文件)一字排开,并以特殊的位模式并以特殊的位模式01111110作为帧标志,即一个帧的开始(同时标志作为帧标志,即一个帧的开始(同时标志前一个帧的结束)前一个帧的结束)如果由于干扰,一个帧标志没有被正确接收,则继续扫描接收串,一如果由于干扰,一个帧标志没有被正确接收,则继续扫描接收串,一旦扫描到旦扫描到01111110,即新的一帧从此开始,即具有再同步能力,即新的一帧从此开始,即具有再同步能力即使字符也并非都是即使字符也并非都是8位的,东方文字是位的,东方文字是16位,位,UNICODE是是16位位Comput
19、er Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 22/169面向面向bit的帧格式的帧格式v当帧中出现一个与帧标志相同的位串当帧中出现一个与帧标志相同的位串01111110,则在,则在连续连续5个个1后自动插入一个后自动插入一个0,即变成,即变成01111101,接收,接收方将自动删除第方将自动删除第5个个1后的后的0v这称为位插入法,也称为透明传输这称为位插入法,也称为透明传输011011111111111111110010011011111011111011111010010011011111111111111110010TnbmP190Fig.3-6(a
20、)(b)(c)位插入法示例位插入法示例Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 23/169数据帧的组成数据帧的组成v字符计数法字符计数法v带字符填充的首尾界符法带字符填充的首尾界符法v带位填充的首尾标志法带位填充的首尾标志法 v物理层编码违例法物理层编码违例法帧的组成必须保证能识别一个完整的帧,并保证一帧的组成必须保证能识别一个完整的帧,并保证一旦出现传输差错而导致前一个帧丢失时,也必须能旦出现传输差错而导致前一个帧丢失时,也必须能识别下一个帧,即具有帧再同步能力识别下一个帧,即具有帧再同步能力Computer Networks v5 cs
21、.sjtu 2023/2/4第3章 数据链路层 24/169物理层编码违例法物理层编码违例法 v在曼切斯特编码中,连续高电平或连续在曼切斯特编码中,连续高电平或连续低电平可用作帧界符低电平可用作帧界符采用冗余编码技术,如曼切斯特编码,即对连续两个信号进行采用冗余编码技术,如曼切斯特编码,即对连续两个信号进行采样,可得到一个二进制位采样,可得到一个二进制位数据数据0:低:低-高电平对高电平对数据数据1:高:高-低电平对低电平对高高-高电平对和低高电平对和低-低电平对没有使用,如在二进制编低电平对没有使用,如在二进制编码中出现则称为编码违例,但这两种违例编码正好可码中出现则称为编码违例,但这两种违
22、例编码正好可用作帧界符,在令牌环网中使用编码违例格式用作帧界符,在令牌环网中使用编码违例格式Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 25/169第第3章章 数据链路层数据链路层v定义和功能定义和功能v数据帧的组成数据帧的组成v可靠性传输可靠性传输v数据链路层示例数据链路层示例Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 26/169可靠性传输可靠性传输v差错控制:校验、重发和序号差错控制:校验、重发和序号避免帧错误的保证:帧的校验避免帧错误的保证:帧的校验避免帧丢失的保证:超时和重发避免帧丢失
23、的保证:超时和重发避免帧重复的保证:帧有序号避免帧重复的保证:帧有序号v流量控制:窗口协议流量控制:窗口协议发送方和接收方之间传输速率的协调发送方和接收方之间传输速率的协调v协议描述和验证协议描述和验证Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 27/169差错控制差错控制 v确认确认v数据帧丢失数据帧丢失v重复帧重复帧如何保证数据帧的正常传输,将通过如何保证数据帧的正常传输,将通过三种手段处理三种可能出现的情况三种手段处理三种可能出现的情况:Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 28/1
24、69确认确认 接收方在收到了正确的帧后向发送方发接收方在收到了正确的帧后向发送方发肯定性确认;如收到的帧有问题,则发肯定性确认;如收到的帧有问题,则发否定性确认,此时发送方将重发此帧否定性确认,此时发送方将重发此帧确认的前提是必须经过差错检测确认的前提是必须经过差错检测Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 29/169差错检测和校正差错检测和校正 v差错的产生主要是在传输时,数据中的一位或差错的产生主要是在传输时,数据中的一位或几位因噪声干扰而出错几位因噪声干扰而出错v噪声分两种:噪声分两种:信道所固有的、持续存在的热噪声信道所固有的、持
25、续存在的热噪声 外界突发原因而造成的随机的冲击噪声外界突发原因而造成的随机的冲击噪声 v通常接收方应能检错,甚至纠错通常接收方应能检错,甚至纠错v纠错码是除纠错码是除m个数据位外增加个数据位外增加r个冗余位作为个冗余位作为纠错位,传输的总长度为纠错位,传输的总长度为n=m+rComputer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 30/169纠错码和检错码纠错码和检错码v纠错码:纠错码:海明(海明(Hamming)码码v检错码:检错码:校验和(校验和(CheckSum)块校验码(块校验码(BlockCheckCode)循环冗余检错码循环冗余检错码CRC(C
26、yclicRedundancyCheck)Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 31/169校验和校验和 v算法简单、实现容易,但检错强度较弱算法简单、实现容易,但检错强度较弱以以16位为例:位为例:4865H+6C6CH+6F20H+776FH+726CH+642EH+进位进位=71FCHHelloworld.48656C6C6F20776F726C642E71FC将发送的数据看成是二进制整数序列,并划分成一段段规将发送的数据看成是二进制整数序列,并划分成一段段规定的长度(如定的长度(如8位、位、16位、位、32位等),计算它们的和,如
27、位等),计算它们的和,如计算和时有进位,则将进位加到最后的校验和中,并将校计算和时有进位,则将进位加到最后的校验和中,并将校验和与数据一起发送;在接收端,重新计算校验和,并与验和与数据一起发送;在接收端,重新计算校验和,并与接收到的原校验和比较,如要传输接收到的原校验和比较,如要传输“Helloworld.”Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 32/169纠错码和检错码纠错码和检错码v纠错码:纠错码:海明(海明(Hamming)码码v检错码:检错码:校验和(校验和(CheckSum)块校验码(块校验码(BlockCheckCode)循环
28、冗余检错码循环冗余检错码CRC(CyclicRedundancyCheck)Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 33/169块校验码块校验码v块校验码块校验码BCC(BlockCheckCode)简单常用,但检)简单常用,但检错的强度较弱,如在同一列上有偶数位错,则不能检测错的强度较弱,如在同一列上有偶数位错,则不能检测如传输的数据都是如传输的数据都是ASCII字符(即面向字符,这在应用中很多),字符(即面向字符,这在应用中很多),每个字符进行奇偶校验,然后把所有的字符(连同奇偶位)进行异每个字符进行奇偶校验,然后把所有的字符(连同奇偶
29、位)进行异或运算,运算结果即为其块校验码,通常发送端在发送完数据区的或运算,运算结果即为其块校验码,通常发送端在发送完数据区的结束标志后发送结束标志后发送BCC,接收端一边接收数据一边计算,接收端一边接收数据一边计算BCC,最后与,最后与接收到的接收到的BCC比较,以确认所接收到的数据正确与否比较,以确认所接收到的数据正确与否如如“Helloworld.”,采用偶校验,校验后的字符序列为:,采用偶校验,校验后的字符序列为:48H 65H 6CH 6CH 6FH A0H 77H 6FH 72H 6CH E4H 2EH=2EHHelloworld.48656C6C6FA0776F726CE42E2
30、EComputer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 34/169纠错码和检错码纠错码和检错码v纠错码:纠错码:海明(海明(Hamming)码码v检错码:检错码:校验和(校验和(CheckSum)块校验码(块校验码(BlockCheckCode)循环冗余检错码循环冗余检错码CRC(CyclicRedundancyCheck)Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 35/169循环冗余检错码循环冗余检错码CRCv任何一个任何一个k位的帧都可看成为一个位的帧都可看成为一个k-1次的多项式次的多项式M(x
31、)的系数列表的系数列表如:如:1011001看成是多项式看成是多项式x6+x4+x3+x0的系数列表的系数列表v设定一个生成多项式设定一个生成多项式G(x),G(x)为为r阶,阶,krv如如xrM(x)/G(x)=Q(x)+R(x)/G(x)其中其中Q(x)为商、为商、R(x)为余数,为余数,R(x)即为即为M(x)的的CRC码码v将将CRC码接在帧后一起发送,即发送数据为码接在帧后一起发送,即发送数据为xrM(x)+R(x)v二进制运算中,减法和加法都做异或运算:二进制运算中,减法和加法都做异或运算:0+1=1,1+1=0v因为因为(xrM(x)-R(x)一定能被一定能被G(x)整除,即余数
32、为整除,即余数为0,则接收方,则接收方只要计算只要计算CRC,并所得余数为,并所得余数为0即为正确即为正确Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 36/169CRC码计算举例码计算举例如一帧为如一帧为1101011011即:即:M(x)=x9+x8+x6+x4+x3+x+1G(x)=x4+x+1T(x)=x4M(x)=x4(x9+x8+x6+x4+x3+x+1)=x13+x12+x10+x8+x7+x5+x4Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 37/169CRC码计算举例码计算举例(
33、续(续(续(续1 1)v帧:帧:1101011011v除数:除数:10011v实际传输帧:实际传输帧:1 1 0 0 0 0 1 0 1 01 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 01 0 0 1 11 0 0 1 11 0 0 1 10 0 0 0 10 0 0 0 00 0 0 1 00 0 0 0 00 0 1 0 10 0 0 0 00 1 0 1 10 0 0 0 01 0 1 1 01 0 0 1 10 1 0 1 00 0 0 0 01 0 1 0 01 0 0 1 10 1 1 1 00 0 0 0 01 1 1 0余数余数1101011011
34、1110帧数据帧数据余数余数TnbmP198Fig.3-8CRC码计算举例码计算举例Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 38/169CRC码计算举例码计算举例(续(续(续(续2 2)=11000010101110即能被即能被10011整除整除(注:模(注:模2运算的加、减和异或,其运算结果相同)运算的加、减和异或,其运算结果相同)发送方发送的是发送方发送的是T(x)+R(x)能被能被G(x)整除整除,如接收,如接收方收到的是方收到的是T(x)+R(x)+E(x),除非,除非E(x)是是G(x)的整倍的整倍数,否则不能被整除,即都能被检测
35、到已出错数,否则不能被整除,即都能被检测到已出错Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 39/169三个生成多项式国际标准三个生成多项式国际标准 vCRC-12:x12+x11+x3+x2+x1+1用于字符长度为用于字符长度为6位位vCRC-16:x16+x15+x2+1用于字符长度为用于字符长度为8位位vCRC-CCITT:x16+x12+x5+1用于字符长度为用于字符长度为8位位vIEEE802:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1CCITT:ConsultativeCo
36、mmitteeonInternationalTelegraphyandTelephone国际电报和电话咨询委员会,即现在的国际电报和电话咨询委员会,即现在的ITU-TITU-T:InternationalTelecommunicationsUnionTelecommunicationsStandardizationSector国际电信联盟国际电信联盟电信标准分部电信标准分部Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 40/169差错控制差错控制 v确认确认v数据帧丢失数据帧丢失v重复帧重复帧如何保证数据帧的正常传输:通过三如何保证数据帧的正常传
37、输:通过三种手段处理三种可能出现的情况种手段处理三种可能出现的情况:Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 41/169数据帧丢失数据帧丢失 v通过发送方的重发定时器(超时)解决通过发送方的重发定时器(超时)解决v超时(超时(TimeOut):在传输过程中,如果所发):在传输过程中,如果所发送的帧丢失,接收方根本没有收到,不可能发送的帧丢失,接收方根本没有收到,不可能发送确认帧(包括否定性确认),当然发送方也送确认帧(包括否定性确认),当然发送方也不可能等待收到如何信息,所以发送方每发送不可能等待收到如何信息,所以发送方每发送一帧,就启动一
38、个重发定时器,在所设定的时一帧,就启动一个重发定时器,在所设定的时间内,一般都应该收到确认,如收不到确认,间内,一般都应该收到确认,如收不到确认,则在重发定时器溢出后,再重发此帧则在重发定时器溢出后,再重发此帧Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 42/169差错控制差错控制 v确认确认v数据帧丢失数据帧丢失v重复帧重复帧如何保证数据帧的正常传输:通过三如何保证数据帧的正常传输:通过三种手段处理三种可能出现的情况种手段处理三种可能出现的情况:Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 43
39、/169重复帧重复帧 v重发机制也包括当接收方发送的确认帧丢失而重发机制也包括当接收方发送的确认帧丢失而导致发送方的重发定时器超时而重发导致发送方的重发定时器超时而重发v由于接收方确认帧的丢失,导致发送方多次发由于接收方确认帧的丢失,导致发送方多次发送同一帧,接收方也将多次收到同一帧,为能送同一帧,接收方也将多次收到同一帧,为能识别是否为相同的帧,应该在帧格式中增加一识别是否为相同的帧,应该在帧格式中增加一个帧的编号(序号)个帧的编号(序号)Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 44/169帧的格式帧的格式基于上述讨论,一个数据链路层的帧
40、至少应该包括下基于上述讨论,一个数据链路层的帧至少应该包括下列内容:列内容:信息信息校校验信息验信息infoCRC确认号确认号Ack_no帧序号帧序号Seq_no帧类型帧类型type帧头帧头Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 45/169可靠性传输可靠性传输v差错控制:校验、重发和序号差错控制:校验、重发和序号避免帧错误的保证:帧的校验避免帧错误的保证:帧的校验避免帧丢失的保证:超时和重发避免帧丢失的保证:超时和重发避免帧重复的保证:帧有序号避免帧重复的保证:帧有序号v流量控制:窗口协议流量控制:窗口协议发送方和接收方之间的协调发送方和
41、接收方之间的协调v协议描述和验证协议描述和验证Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 46/169流量控制流量控制 v发送速率和接收速率的匹配即流量控制发送速率和接收速率的匹配即流量控制如接收方的处理能力低于发送方,即使传输中没有如接收方的处理能力低于发送方,即使传输中没有出错,也可能被出错,也可能被“淹没淹没”,所以通常在接收方的缓,所以通常在接收方的缓冲区到达一定量时,应及时通知发送方,暂停发送,冲区到达一定量时,应及时通知发送方,暂停发送,等候通知,这就是流量控制机制等候通知,这就是流量控制机制基本数据链路协议基本数据链路协议滑动窗口
42、协议滑动窗口协议Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 47/169A、B两台主机要求可靠的、面向连接的通两台主机要求可靠的、面向连接的通信,在接收方的数据链路层,目前正运行信,在接收方的数据链路层,目前正运行的是的是wait_for_event(&event),即等待某,即等待某个事件发生个事件发生基本数据链路协议基本数据链路协议可以这样理解:在一台主机中,物理层、数据可以这样理解:在一台主机中,物理层、数据链路层、网络层等,都有各自的进程在运行,链路层、网络层等,都有各自的进程在运行,并且假设:并且假设:Computer Network
43、s v5 cs.sjtu 2023/2/4第3章 数据链路层 48/169wait_for_event(&event)的参数的参数v如如event=checksum_err,意即所接收帧的校验和错,意即所接收帧的校验和错,应考虑不发送确认帧应考虑不发送确认帧ACK,或发送否定性确认帧,或发送否定性确认帧NAKv如如event=frame_arrival,即帧已到达并校验正确,应调,即帧已到达并校验正确,应调用用from_physical_layer,从物理层取得帧,并检查帧头,从物理层取得帧,并检查帧头的控制信息,如一切正常,则仅把其中的分组交网络层的控制信息,如一切正常,则仅把其中的分组交网
44、络层v一系列过程和数据结构的定义:一系列过程和数据结构的定义:TnbmP202Fig.3-9如发生了某个事件,此过程将返回参数如发生了某个事件,此过程将返回参数event,event有两个取值:有两个取值:checksum_err(CRC错)错)frame_arrival(正确收到)(正确收到)Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 49/169三个基本数据链路协议三个基本数据链路协议(协议(协议(协议(协议1-31-3)v无限制的单工协议无限制的单工协议(协议(协议1)TnbmP205Fig.3-10一种无限制的单工协议一种无限制的单工协
45、议v单工的停单工的停 等协议等协议(协议(协议2)TnbmP207Fig.3-11一个单工的停一个单工的停等协议等协议v噪声信道的单工协议噪声信道的单工协议(协议(协议3)TnbmP210Fig.3-12一个肯定性确认和超时重发协议一个肯定性确认和超时重发协议Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 50/169无限制的单工协议无限制的单工协议v链路是理想的传输通道,所传输的任何数据链路是理想的传输通道,所传输的任何数据既不会出错也不会丢失既不会出错也不会丢失即:不需校验,也不可能出现重发,毋需差错控制即:不需校验,也不可能出现重发,毋需差错
46、控制v不管发送方以怎样的速率发送数据,接收方不管发送方以怎样的速率发送数据,接收方都能及时接收并处理都能及时接收并处理即接收端处理器的处理速度无限高,处理时间可忽略即接收端处理器的处理速度无限高,处理时间可忽略不计,缓冲区空间无限大,毋需流量控制不计,缓冲区空间无限大,毋需流量控制TnbmP205Fig.3-10一种无限制的单工协议一种无限制的单工协议一种理想的环境,理想的协议,假定:一种理想的环境,理想的协议,假定:Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 51/169协议协议1:SENDERvoidsender1(void)frames;
47、packetbuffer;while(true)from_network_layer(&buffer);s.info=buffer;to_physical_layer(&s);Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 52/169协议协议1:RECEIVERvoidreceiver1(void)framer;event_typeevent;while(true)wait_for_event(&event);from_physical_layer(&r);to_network_layer(&r.info);Computer Networks v
48、5 cs.sjtu 2023/2/4第3章 数据链路层 53/169三个基本数据链路协议三个基本数据链路协议(协议(协议1-3)v无限制的单工协议无限制的单工协议(协议(协议1)TnbmP205Fig.3-10一种无限制的单工协议一种无限制的单工协议v单工的停单工的停 等协议等协议(协议(协议2)TnbmP207Fig.3-11一个单工的停一个单工的停等协议等协议v噪声信道的单工协议噪声信道的单工协议(协议(协议3)TnbmP210Fig.3-12一个肯定性确认和超时重发协议一个肯定性确认和超时重发协议Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层
49、 54/169单工的停单工的停 等协议等协议v链路是理想的传输通道,所传输的任何数据既不会链路是理想的传输通道,所传输的任何数据既不会出错也不会丢失出错也不会丢失v考虑实际情况,接收方不可能具有足够高的考虑实际情况,接收方不可能具有足够高的CPU处处理能力来及时处理所有的接收帧,也不可能具有永理能力来及时处理所有的接收帧,也不可能具有永不溢出的缓冲区不溢出的缓冲区即:毋需差错控制,但必须进行流量控制即:毋需差错控制,但必须进行流量控制这里的单工,其实是半双工,所谓流量控制是发送方必须收这里的单工,其实是半双工,所谓流量控制是发送方必须收到前一帧的确认后才允许发送下一帧,接收方发出确认,意到前一
50、帧的确认后才允许发送下一帧,接收方发出确认,意味着前一帧已接收并交网络层,准备接收下一帧味着前一帧已接收并交网络层,准备接收下一帧TnbmP207Fig.3-11一个单工的停一个单工的停等协议等协议 协议协议1中第一个假设保留,第二个假设撤消,假定:中第一个假设保留,第二个假设撤消,假定:Computer Networks v5 cs.sjtu 2023/2/4第3章 数据链路层 55/169协议协议2:SENDERvoidsender2(void)frames;packetbuffer;event_typeevent;while(true)from_network_layer(&buffer