TCP发送窗口拥塞窗口试题分析

简介: 考研试题分析

题目一:

来源2015年408计算机综合


试题链接:经过 4 个 RTT 后,甲的发送窗口是()。__牛客网

 

主机甲和主机乙新建一个TCP 连接,甲的拥塞控制初始阈值为 32KB,甲向乙始终以 MSS=1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配 16KB 接收缓存,并对每个数据段进行确认, 忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发送超时 的情况下,经过 4 个 RTT 后,甲的发送窗口是(A)。

A.1KB

B.8KB

C.16KB

D.32KB


发送窗口大小取决于min(rwnd,cwnd).

其中rwnd是接收缓存的空余大小,表示接收方还能接收多少。

cwnd就是我们常常画慢增长曲线,拥塞避免曲线等等分析的纵轴数值。

这里,其实很明确的告诉我们接收缓存只进不出,因此在不断减小。可是我们有一个思维惯性是喜欢思考有趣的部分,画cwnd的变化,自以为这个分析好了问题就手到擒来了,切不可忽视rwnd。这里就是个例子。


cwnd从1MSS = 1KB开始,一个RTT后变为2KB,两个RTT后变为4KB,3RTT后变为8KB,4个RTT后变为16KB


同时呢,接收缓由16KB→15KB→13KB→9KB→1KB16KB→15KB→13KB→9KB→1KB


通知窗口值,代表接收缓存剩余值(KB) 拥塞窗口大小(KB) 发送窗口大小(KB)
初始          16           1                1
经过第一个RTT        16-1=15           2           min(15, 2)=2
经过第二个RTT        15-2=13           4           min(13,4)=4
经过第三个RTT        13-4=9           8           min(9,8)=8
经过第四个RTT         9-8=1          16  通知接收缓存只有1KB了,发送窗口取min(1, 16)=1KB


经过一个RTT,第二次发送时,rwnd = 15KB,cwnd = 2KB,发送窗口取较小值:2KB


经过两个RTT,第三次发送时,rwnd = 13KB,cwnd = 4KB,发送窗口取较小值:4KB


经过三个RTT,第四次发送时,rwnd = 9KB,cwnd = 8KB,发送窗口取较小值:8KB


经过四个RTT,第五次发送时,rwnd = 1KB,cwnd = 16KB,发送窗口取较小值:1KB


当然第五次发送之后接受窗口就满了,主机甲就会周期性的只发送一个字节数据的报文段,一旦主机乙的缓存有空,确认报文段就会出现非0的通知窗口值,当然这里是题目要求,主机乙的数据不被取走,仅仅为了计算,并非实际情况。


再来看一题:

题目二:

来源为2014年408计算机综合

链接:从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发__牛客网

 

主机甲和乙已建立了TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是 (A)

A.10KB

B.12KB

C.14KB

D.15KB

分析:


当t时刻发生超时,TCP拥塞控制,拥塞窗口发生乘性减,把ssthresh设为8的一半,即为4,且拥塞窗口设为1KB。然后经历10个RTT后,拥塞窗口的大小依次为1(t时刻初始)、2(第一个RTT后)、4(第二个RTT后)、5、6、7、8、9、10、11、12(第10个RTT后),而发送窗口取当时的拥塞窗口和接收窗口的最小值,而接收窗口始终为10KB,所以选A。其中,1、2、4为慢启动,到达了阈值后开始加性增->5,6,7,8,9,10,11,12.


试题三:

题目来源:北京航空航天大学-2015-961_计算机学科专业基础综合

链接:主机甲中的应用程序使用TCP协议向主机乙发送20KB的数据__牛客网

 

主机甲中的应用程序使用TCP协议向主机乙发送20KB的数据。在建立TCP连接后,主机甲按照慢启动(慢开始)和拥塞避免机制发送数据,其拥塞窗口初始值为1,慢启动门限值ssthresh为8,且每次发送TCP报文段均搭载1KB的用户数据。


1. 如传输过程中未发生确认超时,且不考虑流量控制,则主机甲到第几轮次时能够完成题中所述20KB数据的发送?各轮次的拥塞窗口宽度是多少?


2. 如传输过程中未发生确认超时,主机乙返回的确认报文段中“窗口(Window size)”字段值始终为6KB,则主机甲到第几轮次时能够完成题中所述20KB数据的发送?


分析

1.题目说了不考虑流量控制,而流量控制是TCP接收方针对TCP发送方采取的措施,能够消除发送方使接收方缓存溢出的可能性。

也就是说,这里接收方接收缓存无限大。而发送窗口=min(接收缓存的通知值,拥塞窗口大小)。所以这里发送窗口=拥塞窗口。

并且收到的确认不超时,不考虑超时重传。

第一次:发送了1KB,收到确认之后拥塞窗口变为2KB,发送窗口也变为了2KB,此时共发送1KB

第二次:发送了2KB,收到确认之后拥塞窗口变为4KB,发送窗口变为了4KB,此时共发送3KB

第三次:发送了4KB,收到确认之后拥塞窗口变为8KB(准备开始加性增),发送窗口变为了8KB,此时共发送7KB

第四次:发送了8KB,收到确认之后拥塞窗口变为9KB,发送窗口变为9KB,此时共发送15KB

第五次:发送了9KB,收到确认之后拥塞窗口变为10KB,发送窗口变为10KB,此时共发送24KB

满足要求!到达第5次时,能够完成题中所述20KB数据的发送。



2.在TCP报文段结构中有一个接收窗口值,这里题目说明每次返回的报文中,接收窗口的值均为6KB,意味着接收窗口的通知值每次都是6KB,发送窗口值=min(6KB,拥塞窗口值)

第一次:发送了1KB,收到确认之后拥塞窗口变为2KB,发送窗口也变为了min(6KB, 2KB)=2KB,此时共发送1KB

第二次:发送了2KB,收到确认之后拥塞窗口变为4KB,发送窗口变为了min(6KB, 4KB)=4KB,此时共发送3KB

第三次:发送了4KB,收到确认之后拥塞窗口变为8KB(准备开始加性增),发送窗口变为了min(6KB, 8KB)=6KB,此时共发送7KB

第四次:收到确认发送了6KB,之后拥塞窗口变为9KB,发送窗口变为min(6KB, 9KB)=6KB,此时共发送13KB

第五次:收到确认发送了6KB,之后拥塞窗口变为10KB,发送窗口变为min(6KB, 10KB)=6KB,此时共发送19KB

第六次:收到确认发送了6KB,之后拥塞窗口变为11KB,发送窗口变为min(6KB, 11KB)=6KB,此时共发送25KB

综上分析:主机甲到第6次时能够完成题中所述20KB数据的发送。



===========================Talk is cheap, show me the code=======================


目录
相关文章
|
2月前
|
网络协议 算法 网络性能优化
tcp拥塞控制整理
tcp拥塞控制整理
45 1
|
11月前
|
监控 网络协议 应用服务中间件
动图图解!收到RST,就一定会断开TCP连接吗?
动图图解!收到RST,就一定会断开TCP连接吗?
172 0
|
2月前
|
消息中间件 Kubernetes 网络协议
Tcp/ip 定时器与滑动窗口(持续更新)
Tcp/ip 定时器与滑动窗口(持续更新)
|
9月前
|
网络协议 算法 网络性能优化
TCP拥塞控制,拥塞窗口,携带应答,捎带应答,面向字节流,异常情况处理,最终完结弹
TCP拥塞控制,拥塞窗口,携带应答,捎带应答,面向字节流,异常情况处理,最终完结弹
|
12月前
|
缓存 网络协议
图文秒懂TCP滑动窗口
小马无意中发现一个比较清晰的TCP滑动窗口视频教程,总结后在此分享,图文结合,一分钟即可秒懂窗口滑动原理,再也不怕面试官吓唬你了。视频源地址点这里,感谢原作者分享。
142 2
图文秒懂TCP滑动窗口
|
11月前
|
缓存 网络协议 算法
窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术。本文的摘要将深入揭示TCP/IP滑动窗口的工作原理,探讨其在确保数据准确性和实现高效通信方面的重要性。通过对滑动窗口大小、流控制和数据包确认机制的解析,我们将揭示如何通过优化窗口大小和流控制参数来提升网络性能。此外,我们还将介绍滑动窗口在解决网络拥塞和丢包问题方面的作用,以及如何通过精准的窗口调整实现零丢失、百分之百到达的数据传输。通过理解滑动窗口的工作原理,读者将能够更好地理解网络通信的内部机制,并为优化其应用程序的性能提供有价值的见解。
200 0
窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
|
11月前
|
缓存 网络协议
TCP的窗口控制和重发控制【TCP原理(笔记三)】
TCP的窗口控制和重发控制【TCP原理(笔记三)】
|
网络协议 Linux 应用服务中间件
粗略探讨一下tcp四次挥手
粗略探讨一下tcp四次挥手
318 0
|
消息中间件 缓存 网络协议
计网 - TCP 的稳定性:滑动窗口和流速控制是怎么回事?
计网 - TCP 的稳定性:滑动窗口和流速控制是怎么回事?
108 0
|
编解码 网络协议 网络架构
计算机网络基础 和 tcp 三次握手四次挥手,tcpdump抓包分析 协议过滤 分析,连接状态,标志位详解
wireshark 软件过滤及转码使用 ,TCP tcpdump 连接状态,标志位详解
249 1