您的位置:首页 > 理论基础 > 计算机网络

《计算机网络》知识总结-9.滑窗技术实现的要点

2016-11-22 22:27 302 查看

回顾上一章节的内容

1。滑窗是传输层通讯两端用于协调彼此收发能力的技术,免得你顾着说,我都来不及听。

2。TCP有3个字段(序号seq,确认号ack,窗口)用于实现滑窗技术。

现在我们来讲讲恶劣环境中滑窗的技术实现要点。

1。滑动窗口的建立:在连接建立后双发都知道对方的确认号ack(确认号ack是由seq产生的,接收方在接收到seq后,消耗的字节数+seq = ack,然后把确认号返回给发送方就可以了)。根据接收方的确认号和接收窗口大小,发送方就可以知道自己的发送窗口大小了。比如窗口大小为20,确认号为31,(ps:发送缓存中每个字节都会在连接建立后被编码,保存在传输控制块TCB中)那么缓存中可以发送的字节序号范围为:【31~50】。接收方的窗口也是31~50。

这里我要说一下,上面的概念我是直接从教科书上搬过来的,其实课本有存在过度描述的嫌疑,如果按照课本的理解,客户端有发送和接收窗口,服务端也有发送和接收窗口,那岂不是一个TCP链接就有4个窗口了。

而事实上经过理解,发送窗口其实就是接收窗口,只是站在发送端,被认为是发送窗口,站在接收端被认为是接收窗口。为了统一概念,我们认为从发送端到接收端,方向只有一个窗口那就是接收窗口(发送窗口,是接收窗口的映射,所以我们认为他不存在了)。

结论:一个TCP链接有2个接收窗口,分别位于客户端和服务端。

2。在接收端的角度,窗口的头永远是未确认的,如果接收程序处理了确认号为开头的连续字节窗口才会滑动,否则永远不滑动窗口。(站在发送端的角度可理解为,发送端在发送分组数据后接收到返回的确认前不会移动窗口)。窗口不可以滑动,但是可以根据需要扩大。

3。接收窗口中的数据为:

- 按顺序到达,却未被处理的。

- 没按顺序到达的数据。

这两类数据为未确认数据,如果接收端在一定时间内未收到确认(RTT超时了),就会重发。

4。接收端只要窗口头部存在已处理的连续的(有顺序)的字节,就会向发送返回确认ACK,然后滑动窗口。

5。发送端只需要一股脑的发送分组数据,只要发送的字节数不超过接收窗口的大小就行。

整个滑窗的技术要点就这些了,其实教科书讲的很复杂,因为原本只有一个东西“接收端的滑动窗口”,硬要分成2个来讲。

所以,我们只要理解接收窗口的特点就行了(2。3。4。为重点)。

下一章,讲TCP的三次握手和四次挥手的要点:

3次握手的要点:

1。TCB的生命(什么时候创建什么时候死亡),

2。为什么要进行第三次握手

四次挥手的要点:

1。什么是半关闭状态?

2。第四次挥手中涉及的时间等待计时器TIME-WAIT timer 的作用,以及2MSL是什么(最长报文段寿命)?为什么为2MSL(而不是1MSL)?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 计算机 tcp