一、概述

流量控制:让发送方的发送速率不要太快,要让接收方来得及接收。 解决方案:滑动窗口机制 主机A中待发送数据的字节序号:每一个小格表示100字节数据的序号 B的接收窗口为400,主机A将发送窗口也设置为400。这意味着主机A还没有收得到主机B发送来的确认时,可将序号落入发送窗口中的全部数据发送出去。 ACK:是TCP报文段首部中的标志位。取值为1表示为确认报文段。 ack:是TCP报文段首部中的确认号字段。取值201表示201之前的数据已被全部正确接收。 rwnd:TCP报文段首部中的窗口字段。取值300表示自己的接收窗口大小为300。 描述图中没有的: 主机A收到累计确认后,将发送窗口向前滑动,并将已发送并收到确认的这些数据的序号移出发送窗口。由于主机B将自己的接收窗口调整为了300,主机A相应的将发送窗口的大小调整为300。当序号为210-300字节数据的重传计时器超时了。主机A重新将该字段的报文段发送出去。 最后主机B对主机A发送零窗口的报文段后,主机A可以将缓存中序号为501-600的字节全部删除了。 9.PNG 主机B给主机A传送非零窗口得报文段,然而该报文段在传输过程中丢失了。如果不采取措施,这种互相等待而形成得死锁局面将一直持续下去。 持续.PNG 为解决互相等待而产生死锁的问题,TCP为每一个连接设有一个持续计时器, 只要TCP连接的一方对方收到零窗口通知,就启动持续计时器,若持续计时器超时,就发送零窗口探测报文,仅携带1字节的数据。 对方在确认这个零窗口探测报文时,给出现在的接收窗口值,如果接收窗口仍然是0,那么收到这个报文段的一方重新启动持续计时器。 如果接收窗口不是零,那么这种死锁的局面就可以被打破了。 注意:即使接收窗口为0,也必须要接收零窗口探测报文段,确认报文段,以及携带紧急数据的报文段。 黑欸.PNG 如果零窗口报文段丢失了,会出现什么样的问题,还能打破死锁局面吗? 答:可以打破,因为零窗口报文段也有重传计时器,当零窗口报文段超时后,零窗口报文段也被会重传。

二、习题

习题.PNG