首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP ACK窗口收缩

TCP ACK窗口收缩
EN

Server Fault用户
提问于 2015-03-16 14:58:41
回答 1查看 173关注 0票数 0

(注意:我不是网络工程师)我们正在向外部供应商发送文件,并对不同的服务进行随机超时。似乎我们经常在较大的文件上超时。我们捕获了一个数据包,它显示了我们的窗口正在缩小,并怀疑小的有效载荷在窗口达到0之前就完成了,其中大的有效载荷给了我们一个RST。

代码语言:javascript
复制
    11369 > su-mit-tg [ACK] Seq=677231 Ack=253694 Win=32768 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=256614 Win=29848 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=259534 Win=26928 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=262454 Win=24008 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=265374 Win=21088 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=268294 Win=18168 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=271214 Win=15248 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=274134 Win=12328 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=277054 Win=9408 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=279974 Win=6488 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=282894 Win=3568 Len=0
    11369 > su-mit-tg [ACK] Seq=677231 Ack=285814 Win=648 Len=0

编辑:我指的是我们从应用程序中调用的不同的web服务。超时并不总是在特定服务上失败,而是在不同的时间命中所有服务。我不能从不同的网络发送它。

EN

回答 1

Server Fault用户

发布于 2015-03-16 15:27:38

我认为这个问题与IO问题或应用程序问题有关,而且出于任何原因,套接字缓冲区已经完成了空间。

我这样做是为了在linux中重现与IO相关的问题:

代码语言:javascript
复制
/dev/vdb                 2.0G  1.6G  470M  77% /brick1

[root@nod01 ~]# ls -l /dev/vdb
brw-rw---- 1 root disk 252, 16 Apr 19 22:46 /dev/vdb

echo "252:16 $((1024*250))" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device ## Limit write to 250KB per second

cd /brick1 ## change directory for downloading the Centos Iso


wget ftp://mirror.fdcservers.net/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD2.iso


00:19:58.992042 IP mirror.50966 > nod01.example.com.46637: Flags [.], ack 1, win 46, options [nop,nop,TS val 2662018758 ecr 5131800], length 0
00:19:58.992107 IP nod01.example.com.46637 > mirror.50966: Flags [.], ack 11256736, win 0,  options [nop,nop,TS val 5144749 ecr 2661992655], length 0 ## I'm telling to the sender, please don't send me more data, because my socket buffer is full


[root@nod01 ~]# netstat -tunap | grep wget
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp   5264896      0 192.168.122.244:46637   208.53.158.34:50966     ESTABLISHED 15574/wget          #### note the sender has 5M of data in the doesn't buffer, because it cannot write fast in /brick1 as data arrive
tcp        0      0 192.168.122.244:51331   208.53.158.34:21        ESTABLISHED 15574/wget          
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/675847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档