计算机网络数据链路层功能分析:计算机网络-数据链路层三
计算机网络数据链路层功能分析:计算机网络-数据链路层三a.发送数据的过程出错:发送数据的过程中可能发生丢帧或者接收方检测到数据产生了差错,如果丢帧,那么接收方什么也不做,如果数据产生差错,那么接收方会直接丢弃M1。由于发送方一直收不到对M1的确认,发送方就会重新发送M1。这里还涉及到一个超时重传机制,发送方会为每个发出去的数据帧设置一个超时计时器,在设置的时间内未收到确认,发送方就会重发此帧。②出现差错协议内容:发送方每发送完一个帧就停止发送,等待接收方的确认,收到确认后再发送下一个帧。①无差错情况发送方发送M1后就停止发送,等待确认,接收方收到M1后就发出对M1的确认,发送方收到确认后再发送M2。
一、数据链路层功能
前面已经介绍了数据链路层的封装成帧、透明传输和差错控制三大功能,本次将介绍流量控制。
在数据传输时,如果发送方的发送速度过快,而接收方的接收速度又较慢,就会导致接收方来不及接收发送方发送的数据,因此需要调节发送与接收的速度相互匹配,这就是流量控制。流量控制的方法有停止-等待协议和滑动窗口协议。
1.1 停止-等待协议
协议内容:发送方每发送完一个帧就停止发送,等待接收方的确认,收到确认后再发送下一个帧。
①无差错情况
发送方发送M1后就停止发送,等待确认,接收方收到M1后就发出对M1的确认,发送方收到确认后再发送M2。
②出现差错
a.发送数据的过程出错:发送数据的过程中可能发生丢帧或者接收方检测到数据产生了差错,如果丢帧,那么接收方什么也不做,如果数据产生差错,那么接收方会直接丢弃M1。由于发送方一直收不到对M1的确认,发送方就会重新发送M1。这里还涉及到一个超时重传机制,发送方会为每个发出去的数据帧设置一个超时计时器,在设置的时间内未收到确认,发送方就会重发此帧。
b.回传确认的过程出错:ACK(acknowledge character,确认字符)在传输过程中可能出现丢失或者迟到的情况。当ACK丢失时,会一直等到超时计时器超时,然后发送方重新发送M1,接收方收到重传的M1后,会直接丢弃,并重新发送ACK(接收方收到重传的M1就表示发送方没有收到M1的确认,所以要重发ACK)。当ACK迟到时,发送方会重传M1,接收方收到M1后一样会直接丢弃并发送M1的确认。发送方收到第二个确认时会直接丢弃。
注:为了上述过程顺利实现,发送方在每次发送出去数据时,要暂时保留一份副本,以备重传(这就是存储转发名称的来历,分组交换时,需要存储副本,电路交换时,可以直接转发而不需要存储,)。超时计时器设置的时间要稍长于数据传输的平均往返时间RTT。
停止-等待协议原理十分简单,但是信道利用率太低。信道利用率是指在一个发送周期(从开始发送数据到收到确认为止)内,发送数据花费的时间占发送时间的比率。
信道利用率=(L/C)/T*100%
L为数据的比特数,单位为bit,C为数据传输速率,单位bit/s,T为发送周期,单位为s。
图中的TD=L/C,而TD RTT TA=T。
本文有些内容引用的是《计算机网络计算》谢希仁第七版教材课件。限于个人水平,文中难免有错误的地方,欢迎大家批评指正。