【文档说明】计算机网络7课件.ppt,共(25)页,118.182 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76940.html
以下为本文档部分文字说明:
计算机网络7冗余码的计算用二进制的模2运算进行2n乘M的运算,这相当于在M后面添加n个0。得到的(k+n)bit的数除以事先选定好的长度为(n+1)bit的数P,得出商是Q而余数是R,余数R比除数P至少要少1个比特。冗余码的计算举
例模二加减法不进位:如1111+1010=01011010-1101=0111书p79,n=3,P=1101,数据为101001000。设n=5,P=110101,数据是10100011
011101010110←Q商除数P→110101101000110100000←2nM被除数11010111101111010111101011010111111011010110110011010111001011010101110←R余数循环冗余检验
的原理说明循环冗余检验的举例模2运算的结果是:商Q=1101010110,余数R=01110。将余数R作为冗余码添加在数据M的后面发送出去,即发送的数据是101000110101110,或2nM+R。P可以表示为多项式的形式,如P=1101其多项式为P(x)=X3
+X2+1问:P=110101的多项式表示是什么?检测出差错在接收端,把收到的帧除以相同的P,只要得出的余数R不为0,就表示检测到了差错。但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。一旦检测出差错,就丢
弃这个出现差错的帧。只要经过严格的挑选,并使用位数足够多的除数P,那么出现检测不到的差错的概率就很小很小。应当注意仅用循环冗余检验CRC差错检测技术只能做到无差错接受(accept)。“无差错接受”是指:“凡是接受的帧(即不包括丢
弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。也就是说:“凡是接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。问题为什么数据链路层对错误帧只是丢弃
,而不是要求重传?3.3停止等待协议停止等待协议是最简单的但也是最基本的数据链路层协议。现在,数据链路层普遍采用比较简单的不可靠传输协议,而把可靠传输的责任让运输层来完成。3.3.1停止等待协议的工
作原理在发送端,每发送完一帧后就停止发送,等待着接收端的确认。如果收到来自接收端的确认帧,就继续发送下一帧。在接收端,每收到一个无差错的帧,就把这个帧交付给它的上层软件(网络层),并向发送端发送确认帧
。接收端若收到有差错的帧,就静悄悄地丢弃这个帧,其他什么也不做。帧的编号问题为了保证可靠交付,发送端必须对所发送的帧进行编号。由于每一次只发送一帧,因此停止等待协议只需要一个比特进行编号。编号只有两个值:0和1。第
一次发送0号帧,下一次就发送1号帧,依此类推。在发送确认帧时也应当明确是确认对方哪一个数据帧的序号。按习惯记法,ACKn表示已经正确收到了第n号帧的前一个帧,并期待收到下一个第n号帧。帧的编号问题(续)
因此,ACK0代表已正确接收编号为1的帧,并期待收到下一个编号为0的帧。同理,ACK1代表已正确接收编号为0的帧,并期待收到下一个编号为1的帧。停止等待协议的工作原理时间AB送主机送主机(a)正常情况
AB送主机(c)数据帧丢失重传tout丢失!AB送主机丢弃(d)确认帧丢失重传tout丢失!三种情况超时计时器的作用结点A发送完一个数据帧时,就启动一个超时计时器(timeouttimer)。计时器又称为定时器。若到了超时计时器所设置的重传时间tout而仍收
不到结点B的任何确认帧,则结点A就重传前面所发送的这一数据帧。一般可将重传时间选为略大于“从发完数据帧到收到确认帧所需的平均时间”。几个问题问题1:采用停止等待协议除了能重传出错帧外,他还有什么优点?
问题2:将帧编号的好处是什么?他解决了什么问题?问题1的回答1.他还能起到流量控制的作用。发送端发送的速率一定要是接收端来得及接收,否则数据就会丢失。而停止等待协议要求对方接收完数据后再发确认信息,发送端接收到确认信息后才发送下一帧,这样接收端就不会
来不及接收。2.他还能解决同学提出的后发先到的问题。问题2的回答如果是确认帧丢失,发送端也会重传这一帧。这就会出现重复帧的问题。若结点B收到发送序号相同的数据帧,就表明出现了重复帧。这时应丢弃重复帧,因为已经收到
过同样序号的数据帧并且也交给了主机B。但此时结点B还必须向A发送确认帧ACK,因为B已经知道A还没有收到上一次发过去的确认帧ACK。3.3.2停止等待协议的算法按照习惯的表示法,ACKn表示“第n–1号帧已经收到,现在期望接收第n号帧”。ACK1表示“0号帧已收到,现在期望接收
的下一帧是1号帧”;ACK0表示“1号帧已收到,现在期望接收的下一帧是0号帧”。在发送结点(1)从主机取一个数据帧,送交发送缓存。(2)V(S)←0。(3)N(S)←V(S)。(4)将发送缓存中的数据帧发送出去。(5)设置超时计时器。(6)等待。
{等待以下(7)和(8)这两个事件中最先出现的一个}(7)收到确认帧ACKn,若n=1–V(s),则:从主机取一个新的数据帧,放入发送缓存;V(S)←[1V(S)],转到(3)。否则,丢弃这个确认帧,转到(6)。(
8)若超时计时器时间到,则转到(4)。在接收结点(1)V(R)←0。(2)等待。(3)收到一个数据帧;(假设数据已通过硬件CRC检验)若N(S)=V(R),则执行(4);否则丢弃此数据帧,然后转到(6)。(4)将收到的数据帧中的数据
部分送交上层软件(也就是数据链路层模型中的主机)。(5)V(R)←[1V(R)]。(6)n←V(R);发送确认帧ACKn,转到(2)。停止等待协议的要点只有收到序号正确的确认帧ACKn后,才更新发送状态变
量V(S)一次,并发送新的数据帧(7)。接收端接收到数据帧时,就要将发送序号N(S)与本地的接收状态变量V(R)相比较(3)。若二者相等就表明是新的数据帧,就收下,并发送确认。否则为重复帧,就必须丢弃。但这时仍须向发送端发送确认帧ACK
n,而接收状态变量V(R)和确认序号n都不变。停止等待协议的要点(续)发送端在发送完数据帧时,必须在其发送缓存中暂时保留这个数据帧的副本。这样才能在出差错时进行重传。只有确认对方已经收到这个数据帧时,
才可以清除这个副本。停止等待协议的要点(续)实用的CRC检验器都是用硬件完成的。CRC检验器能够自动丢弃检测到的出错帧。因此所谓的“丢弃出错帧”,对上层软件或用户来说都是感觉不到的。发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Au
tomaticRepeatreQuest),直译是自动重传请求,但意思是自动请求重传。3.3.3停止等待协议的重传时间设tf是一个数据帧的发送时间,且数据帧的长度是固定不变的。显然,数据帧的发送时间tf是数据帧的长
度lf(bit)与数据的发送速率C(bit/s)之比,即tf=lf/C=lf/C(s)(3-1)发送时间tf也就是数据帧的发送时延。数据帧沿链路传到结点B还要经历一个传播时延tp。结点B收到数据帧要花费时间进行处理,此时间称为处理时间tpr,发送确认帧ACK的发送时间为
ta。