TCP流量控制,模型联想理解


A和B共同完成一个吃苹果的任务。B是大胃王,和A说,我一次能吃400个苹果。游戏目标是A扔苹果,B吃苹果,直到吃完所有苹果
游戏开始啦!  A每扔一箱苹果,都应该在规定时间t(数据重传计时器)内收到B的回复,如果没收到就重新扔

A知道B能吃400个苹果,所以就想扔400个苹果给A,但是一个一个扔太麻烦了,现在A有很多筐,每个筐都能装100个苹果

1.A把1-100个苹果装到框里,然后把框扔给A
2.A扔101-200个,然后A还能扔400-200=200个苹果,也就是两筐
3.A扔201-300给B,但是路上丢失了,还能扔100个
4.B这个时候接收到了1-200个苹果,并且都吃完了。但是吃得太饱了,他得消化一下
就给A写了一个纸条说,ACK=1,ack=201,rwnd=300.我把1-200的苹果都吃完啦!接下来我要吃第201个苹果,并且现在最多只能吃300个苹果啦

5.A在1-200的数据重传计时器的范围内收到了纸条,就知道现在不用考虑1-200号了,就删掉他们,
然后接下来的任务就是把200-500号苹果发给A,201-300之前发过了,接下来给发301-400

6.A发 301-400   
7.A的201-300的数据重传计时器超时了,重新发201-300给B
8.B收到了201-400的数据,但是太撑了,最多还能吃100个苹果,并且下一个苹果该吃第401号了

9.A收到B的信了,所以接下来要发401-500的苹果,然后发了
10,B收到了401-500的苹果,吃了。实在吃不下了,和A说,我收到之前发的苹果了,下一次我吃第501个苹果,
但是我太撑了,让我歇一会儿消化一下,现在先不要给我发苹果了,rwnd=0.

11.A收到B的信了,知道他吃不下了,就开始给他计时算休息的时间。以五分钟为一个阶段
5分钟一到,就问B,还能吃吗

12.B说不能吃,继续等等,然后A重新计时

13然后5分钟又到了,又问B。还能吃吗?,但是这条消息丢了。超过了消息的计时器5分钟

14.A消息计时器时间到了,A重发,继续问B还能吃吗

15.B说,能吃了,A收到以后,就继续发苹果给B了


重点:(1)收到B不能吃的消息以后,每隔固定时间发邮件去问
(2)询问的邮件A知道B应该在5分钟内回复,如果5分钟后没收到B的回复,就重新发询问的邮件