TCP窗口大小去0 / Wget停止下载?

我有一个有点复杂的设置,不起作用,我很费力地追查根本原因。

首先是大局:

节点后端是一个中等大小的Windows Azure工作者angular色,运行JBoss 5.它stream出HTTP多部分/分块的JSON数据。

Node前端是运行JBoss 5的中等大小的Windows azure工作者angular色。它正在从后端节点请求HTTP multipart / chunked JSON数据,然后再通过http发布。

这些stream非常直接,可以用浏览器或wget进行testing。

我们观察到溪stream在一段时间(几小时到几天)之后停止工作。 为了跟踪下来,我在前端(即客户端)启动了一个wget,然后发现了一个Wireshark以查看最新的信息。 Wireshark被设置为转储到文件的环形缓冲区。 stream的速度大概是100KB / s,所以性能不应该是一个问题。 我观察到的是:wget的接收窗口从130000开始,减less到517字节。 它最终达到0,比wget坐在那里有相当一段时间(有时几秒,有时达到100s),直到它再次接受数据。 看到这个wireshark:

编号时间源目标协议信息
  138300 17:33:47.038970 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 12610206 Win = 27 Len = 0
  138301 17:33:47.069346 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610206 Ack = 1 Win = 514 Len = 118
  138302 17:33:47.069353 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610324 Ack = 1 Win = 514 Len = 119
  138303 17:33:47.069358 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610443 Ack = 1 Win = 514 Len = 118
  138304 17:33:47.069362 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610561 Ack = 1 Win = 514 Len = 109
  138305 17:33:47.069366 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610670 Ack = 1 Win = 514 Len = 126
  138306 17:33:47.069370 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610796 Ack = 1 Win = 514 Len = 115
  138307 17:33:47.069374 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12610911 Ack = 1 Win = 514 Len = 119
  138308 17:33:47.069378 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611030 Ack = 1 Win = 514 Len = 116
  138309 17:33:47.069382 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611146 Ack = 1 Win = 514 Len = 115
  138310 17:33:47.069386 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611261 Ack = 1 Win = 514 Len = 116
  138311 17:33:47.069390 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611377 Ack = 1 Win = 514 Len = 115
  138312 17:33:47.069499 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 12611492 Win = 22 Len = 0
  138313 17:33:47.069569 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611492 Ack = 1 Win = 514 Len = 132
  138314 17:33:47.069573 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611624 Ack = 1 Win = 514 Len = 121
  138315 17:33:47.069577 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611745 Ack = 1 Win = 514 Len = 103
  138316 17:33:47.069581 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611848 Ack = 1 Win = 514 Len = 107
  138317 17:33:47.069585 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12611955 Ack = 1 Win = 514 Len = 118
  138318 17:33:47.069589 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612073 Ack = 1 Win = 514 Len = 118
  138319 17:33:47.069593 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612191 Ack = 1 Win = 514 Len = 117
  138320 17:33:47.069597 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612308 Ack = 1 Win = 514 Len = 126
  138321 17:33:47.069601 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612434 Ack = 1 Win = 514 Len = 108
  138322 17:33:47.069605 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612542 Ack = 1 Win = 514 Len = 112
  138323 17:33:47.069609 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612654 Ack = 1 Win = 514 Len = 109
  138324 17:33:47.069613 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612763 Ack = 1 Win = 514 Len = 107
  138325 17:33:47.069617 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612870 Ack = 1 Win = 514 Len = 104
  138326 17:33:47.069621 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12612974 Ack = 1 Win = 514 Len = 115
  138327 17:33:47.069625 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613089 Ack = 1 Win = 514 Len = 107
  138328 17:33:47.069629 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613196 Ack = 1 Win = 514 Len = 107
  138329 17:33:47.069633 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613303 Ack = 1 Win = 514 Len = 123
  138330 17:33:47.069638 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613426 Ack = 1 Win = 514 Len = 105
  138331 17:33:47.069641 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613531 Ack = 1 Win = 514 Len = 129
  138332 17:33:47.069712 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 12613660 Win = 14 Len = 0
  138333 17:33:47.069756 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613660 Ack = 1 Win = 514 Len = 111
  138334 17:33:47.069761 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613771 Ack = 1 Win = 514 Len = 114
  138335 17:33:47.069765 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12613885 Ack = 1 Win = 514 Len = 127
  138336 17:33:47.069769 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614012 Ack = 1 Win = 514 Len = 109
  138337 17:33:47.069773 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614121 Ack = 1 Win = 514 Len = 107
  138338 17:33:47.069777 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614228 Ack = 1 Win = 514 Len = 106
  138339 17:33:47.069781 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614334 Ack = 1 Win = 514 Len = 120
  138340 17:33:47.069785 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614454 Ack = 1 Win = 514 Len = 110
  138341 17:33:47.069789 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614564 Ack = 1 Win = 514 Len = 114
  138342 17:33:47.069793 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614678 Ack = 1 Win = 514 Len = 107
  138343 17:33:47.069797 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614785 Ack = 1 Win = 514 Len = 109
  138344 17:33:47.069801 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12614894 Ack = 1 Win = 514 Len = 119
  138345 17:33:47.069805 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615013 Ack = 1 Win = 514 Len = 113
  138346 17:33:47.069809 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615126 Ack = 1 Win = 514 Len = 116
  138347 17:33:47.069813 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615242 Ack = 1 Win = 514 Len = 120
  138348 17:33:47.069817 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615362 Ack = 1 Win = 514 Len = 114
  138349 17:33:47.069870 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 12615476 Win = 7 Len = 0
  138350 17:33:47.069908 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615476 Ack = 1 Win = 514 Len = 108
  138351 17:33:47.069912 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615584 Ack = 1 Win = 514 Len = 107
  138352 17:33:47.069916 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615691 Ack = 1 Win = 514 Len = 107
  138353 17:33:47.069919 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615798 Ack = 1 Win = 514 Len = 115
  138354 17:33:47.069923 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12615913 Ack = 1 Win = 514 Len = 120
  138355 17:33:47.069927 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616033 Ack = 1 Win = 514 Len = 107
  138356 17:33:47.069931 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616140 Ack = 1 Win = 514 Len = 119
  138357 17:33:47.069935 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616259 Ack = 1 Win = 514 Len = 122
  138358 17:33:47.069939 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616381 Ack = 1 Win = 514 Len = 105
  138359 17:33:47.069943 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616486 Ack = 1 Win = 514 Len = 113
  138360 17:33:47.069947 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616599 Ack = 1 Win = 514 Len = 107
  138361 17:33:47.069950 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616706 Ack = 1 Win = 514 Len = 114
  138362 17:33:47.069954 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616820 Ack = 1 Win = 514 Len = 127
  138363 17:33:47.069959 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12616947 Ack = 1 Win = 514 Len = 132
  138364 17:33:47.070004 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] 52902> 5284 [ACK] Seq = 1 Ack = 12617079 Win = 0 Len = 0
  138365 17:33:47.390902 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617079 Ack = 1 Win = 514 Len = 1
  138366 17:33:47.599283 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617080 Win = 0 Len = 0
  138367 17:33:48.203458 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617080 Ack = 1 Win = 514 Len = 1
  138368 17:33:48.411799 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617081 Win = 0 Len = 0
  139055 17:33:50.015857 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617081 Ack = 1 Win = 514 Len = 1
  139056 17:33:50.224262 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617082 Win = 0 Len = 0
  141485 17:33:54.234768 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617082 Ack = 1 Win = 514 Len = 1
  141972 17:33:54.442993 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617083 Win = 0 Len = 0
  146212 17:34:03.422127 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617083 Ack = 1 Win = 514 Len = 1
  146214 17:34:03.630469 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617084 Win = 0 Len = 0
  153400 17:34:22.203389 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617084 Ack = 1 Win = 514 Len = 1
  153967 17:34:22.411696 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617085 Win = 0 Len = 0
  156977 17:34:59.547273 94.245.90.204 10.211.148.222 TCP [TCP ZeroWindowProbe] 5284> 52902 [ACK] Seq = 12617085 Ack = 1 Win = 514 Len = 1
  156978 17:34:59.755506 10.211.148.222 94.245.90.204 TCP [TCP ZeroWindow] [TCP ACKed lost segment] 52902> 5284 [ACK] Seq = 1 Ack = 12617086 Win = 0 Len = 0
  156983 17:35:49.424340 10.211.148.222 94.245.90.204 TCP [TCP窗口更新] 52902> 5284 [ACK] Seq = 1 Ack = 12617086 Win = 517 Len = 0
  156984 17:35:49.427810 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12617086 Ack = 1 Win = 514 Len = 1440
  156985 17:35:49.427893 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12618526 Ack = 1 Win = 514 Len = 1440
  156986 17:35:49.427934 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 12619966 Win = 506 Len = 0
  156987 17:35:49.427960 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12619966 Ack = 1 Win = 514 Len = 1440
  156988 17:35:49.427991 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 12621406 Ack = 1 Win = 514 Len = 1440 

我不明白为什么wget会这么忙。 我也看到与我们的JBoss / Java客户端类似的行为。 “通常”的stream如下所示:

编号时间源目标协议信息
      46 17:31:04.858278 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1 Ack = 1 Win = 514 Len = 108
      50 17:31:04.858306 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 109 Win = 516 Len = 0
      61 17:31:04.858528 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 109 Ack = 1 Win = 514 Len = 95
     166 17:31:04.861793 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 204 Ack = 1 Win = 514 Len = 107
     167 17:31:04.861813 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 311 Win = 515 Len = 0
     320 17:31:04.869327 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 311 Ack = 1 Win = 514 Len = 102
     326 17:31:04.869393 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 413 Ack = 1 Win = 514 Len = 117
     327 17:31:04.869408 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 530 Win = 515 Len = 0
     328 17:31:04.869419 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 530 Ack = 1 Win = 514 Len = 96
     329 17:31:04.870048 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 626 Ack = 1 Win = 514 Len = 113
     330 17:31:04.870069 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 739 Win = 514 Len = 0
     337 17:31:04.870431 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 739 Ack = 1 Win = 514 Len = 107
     383 17:31:04.871195 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 846 Ack = 1 Win = 514 Len = 116
     388 17:31:04.871222 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 962 Win = 513 Len = 0
     423 17:31:04.872362 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 962 Ack = 1 Win = 514 Len = 99
     440 17:31:04.873151 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1061 Ack = 1 Win = 514 Len = 100
     446 17:31:04.873182 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 1161 Win = 512 Len = 0
     508 17:31:04.875097 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1161 Ack = 1 Win = 514 Len = 98
     599 17:31:04.877254 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1259 Ack = 1 Win = 514 Len = 104
     604 17:31:04.877307 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 1363 Win = 517 Len = 0
     639 17:31:04.878517 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1363 Ack = 1 Win = 514 Len = 115
     657 17:31:04.878662 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1478 Ack = 1 Win = 514 Len = 104
     660 17:31:04.878693 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 1582 Win = 516 Len = 0
     683 17:31:04.879737 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1582 Ack = 1 Win = 514 Len = 106
     716 17:31:04.880392 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1688 Ack = 1 Win = 514 Len = 100
     720 17:31:04.880448 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 1788 Win = 515 Len = 0
     767 17:31:04.882359 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1788 Ack = 1 Win = 514 Len = 104
     841 17:31:04.883507 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 1892 Ack = 1 Win = 514 Len = 108
     843 17:31:04.883527 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 2000 Win = 515 Len = 0
     851 17:31:04.884238 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 2000 Ack = 1 Win = 514 Len = 101
     896 17:31:04.885225 94.245.90.204 10.211.148.222 TCP 5284> 52902 [PSH,ACK] Seq = 2101 Ack = 1 Win = 514 Len = 116
     904 17:31:04.885276 10.211.148.222 94.245.90.204 TCP 52902> 5284 [ACK] Seq = 1 Ack = 2217 Win = 514 Len = 0

另外我真的不明白为什么窗口只是517个字节。任何想法? 由于使用了当前的7级协议,数据包非常小(100-200字节)。

编辑:6GB或8GB后数据传输失败。 似乎没有32位的东西。 链接/硬件是未知的,但应该在一个微软Azure数据中心。 这里是wget的连接设置(删除几位,以保证最低的隐私):

编号时间源目标协议信息157007 17:50:49.590140 10.211.148.222 94.245.90.204 TCP 58291> 5284 [SYN] Seq = 0 Win = 8192 Len = 0 MSS = 1460 WS = 8帧157007(66字节在线,66字节捕获)到达时间:2012年4月16日17:50:49.590140000帧编号:157007帧长度:66字节捕获长度:66字节以太网II,Src:00:15:5d:36:03:6d(00:15: 5d:36:03:6d)Dst:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff:0a)目的地:02:f5:0a:d3:ff:0a(02 :f5:0a:d3:ff:0a)地址:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff:0a).... 0 .... ... .... .... = IG位:个人地址(单播).... 1。  .... .... .... .... = LG位:本地pipe理地址(这不是出厂默认设置)来源:00:15:5d:36:03:6d(00:15:5d :36:03:6d)地址:00:15:5d:36:03:6d(00:15:5d:36:03:6d).... 0 .... ... = IG位:个人地址(单播)... ..0。 types:IP(0x0800)Internet协议,源:10.211.148.222(10.211.148.222),Dst:94.245 90.204(94.245.90.204)版本:4报头长度:20字节区分服务字段:0x00(DSCP 0x00:默认; ECN:0x00)0000 00 .. =差分服务代码点:默认(0x00)... ..0 。  (ECT):0 .... 0 = ECN-CE:0总长:52标识:0x17ac(6060)标志:0x02(不分片)0 .. =保留位:未设置.1。  =不分段:设置.0 =更多分段:未设置分段偏移量:0生存时间:128协议:TCP(0x06)源:10.211.148.222(10.211.148.222)目的地:94.245.90.204(94.245.90.204 )传输控制协议,Src端口:58291(58291),Dst端口:5284(5284),Seq:0,Len:0源端口:58291(58291)目的端口:5284(5284)序号:0(相对序列号)报头长度:32字节标志:0x02(SYN)0 ...。=拥塞窗口减less(CWR):未设置.0 .. = ECN-Echo:未设置。  .... =紧急:未设置... 0 .... =确认:未设置.... 0 ... =推送:未设置... .0 .. =重置:未设置.. ...1。  = Syn:设置[专家信息(Chat / Sequence):连接build立请求(SYN):服务器端口5284] [消息:连接build立请求(SYN):服务器端口5284] [严重级别:聊天] [组:序列]。 ... 0 = Fin:未设置窗口大小:8192选项:(12字节)最大段大小:1460字节NOP窗口比例:8(乘以256)允许NOP NOP SACK号码时间源目标协议信息157008 17:50:49.591169 94.245.90.204 10.211.148.222 TCP 5284> 58291 [SYN,ACK] Seq = 0 Ack = 1 Win = 8192 Len = 0 MSS = 1440 WS = 8帧157008(66字节在线,66字节捕获)到达时间:2012年4月16日17:50:49.591169000帧编号:157008帧长度:66字节捕捉长度:66字节以太网II,Src:02:f5:0a:d3:ff:0a(02:f5:0a:d3 :00:15:5d:36:03:6d(00:15:5d:36:03:6d)目的地:00:15:5d:36:03:6d(00:15: 5d:36:03:6d)地址:00:15:5d:36:03:6d(00:15:5d:36:03:6d).... 0 .... .... .... = IG位:个人地址(单播)... ..0。  ... .... .... .... = LG位:全局唯一地址(出厂设置)来源:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff :0a)地址:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff:0a).... 0 .... .... .... ... = IG位:单独地址(单播).... 1。  .... .... .... .... LG位:本地pipe理的地址(这不是出厂默认设置)types:IP(0x0800)Internet协议,源:94.245.90.204(94.245.90.204) ,Dst:10.211.148.222(10.211.148.222)版本:4标题长度:20字节区分服务字段:0x00(DSCP 0x00:默认; ECN:0x00)0000 00 .. =区分服务代码点:默认(0x00)... 。。  = ECN-Capable Transport(ECT):0 .... 0 = ECN-CE:0总长度:52标识:0x6cbb(27835)标志:0x02(不分段)0 .. =保留位:未设置.1。  =不分段:设置.0 =更多分段:未设置分段偏移量:0生存时间:127协议:TCP(0x06)源:94.245.90.204(94.245.90.204)目的地:10.211.148.222(10.211.148.222 )传输控制协议,端口:5284(5284),Dst端口:58291(58291),Seq:0,Ack:1,Len:0源端口:5284(5284)目的端口:58291(58291)序列号:0 (相对序列号)确认号码:1(相对确认号码)头部长度:32字节标志:0x12(SYN,ACK)0 ... .... =拥塞窗口缩减(CWR):未设置.0 ..。 ... = ECN-Echo:未设置..0。  .... =紧急:未设置... 1 .... =确认:设置.... 0 ... =推送:未设置... .0 .. =重置:未设置... ... .1。  = Syn:Set [Expert Info(Chat / Sequence):连接build立确认(SYN + ACK):服务器端口5284] [消息:连接build立确认(SYN + ACK):服务器端口5284] [严重级别:聊天] :序列] ... ... 0 = Fin:未设置窗口大小:8192选项:(12字节)最大片段大小:1440字节NOP窗口大小:8(乘以256)允许NOP NOP SACK [SEQ / ACK分析] [这是对帧中的段的ACK:157007] [段确认的RTT为:0.001029000秒]编号时间源目标协议信息157009 17:50:49.591242 10.211.148.222 94.245.90.204 TCP 58291> 5284到达时间:2012年4月16日17:50:49.591242000帧编号:157009帧长度:54字节捕获长度(ACK)Seq = 1 Ack = 1 Win = 132352 Len = 0帧157009 :54字节以太网II,Src:00:15:5d:36:03:6d(00:15:5d:36:03:6d),Dst:02:f5:0a:d3:ff:0a(02:f5 :0a:d3:ff:0a)目的地:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff:0a)地址:02:f5:0a:d3:ff:0a :F5:0A:D3:FF  :0a).... ... 0 .... .... .... = IG位:单独地址(单播).... 1。  .... .... .... .... = LG位:本地pipe理地址(这不是出厂默认设置)来源:00:15:5d:36:03:6d(00:15:5d :36:03:6d)地址:00:15:5d:36:03:6d(00:15:5d:36:03:6d).... 0 .... ... = IG位:个人地址(单播)... ..0。 types:IP(0x0800)Internet协议,源:10.211.148.222(10.211.148.222),Dst:94.245 90.204(94.245.90.204)版本:4报头长度:20字节区分服务字段:0x00(DSCP 0x00:默认; ECN:0x00)0000 00 .. =差分服务代码点:默认(0x00)... ..0 。  = ECN-CE传输(ECT):0 .... 0 = ECN-CE:0总长度:40标识:0x17ad(6061)标志:0x02(不分片)0 .. =保留位:未设置.1。  =不分段:设置.0 =更多分段:未设置分段偏移量:0生存时间:128协议:TCP(0x06)源:10.211.148.222(10.211.148.222)目的地:94.245.90.204(94.245.90.204 )传输控制协议,Src端口:58291(58291),Dst端口:5284(5284),Seq:1,Ack:1,Len:0源端口:58291(58291)目标端口:5284(5284) 2]序号:1(相对序列号)确认号码:1(相对确认号码)标题长度:20字节标志:0x10(ACK)0 ... =拥塞窗口缩减(CWR):未设置。 0 .. .... = ECN-Echo:未设置..0。  .... =紧急:未设置... 1 .... =确认:设置.... 0 ... =推送:未设置... .0 .. =重置:未设置... 。。  = SYN:未设置... ... 0 = Fin:未设置窗口大小:132352(已缩放)[SEQ / ACK分析] [这是帧中的段的ACK:157008]段是:0.000073000秒]编号时间源目的地协议信息157010 17:50:49.591565 10.211.148.222 94.245.90.204 TCP 58291> 5284 [PSH,ACK] Seq = 1 Ack = 1 Win = 132352 Len = 389 Frame 157010(443到达时间:2012年4月16日17:50:49.591565000帧编号:157010帧长度:443字节捕获长度:443字节Ethernet II,Src:00:15:5d:36:03:6d (00:15:5d:36:03:6d)Dst:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff:0a)目的地:02:f5:0a:d3: ff:0a(02:f5:0a:d3:ff:0a)地址:02:f5:0a:d3:ff:0a(02:f5:0a:d3:ff:0a).... 0 .... .... .... .... = IG位:个人地址(单播).... 1。  .... .... .... .... = LG位:本地pipe理地址(这不是出厂默认设置)来源:00:15:5d:36:03:6d(00:15:5d :36:03:6d)地址:00:15:5d:36:03:6d(00:15:5d:36:03:6d).... 0 .... ... = IG位:个人地址(单播)... ..0。 types:IP(0x0800)Internet协议,源:10.211.148.222(10.211.148.222),Dst:94.245 90.204(94.245.90.204)版本:4报头长度:20字节区分服务字段:0x00(DSCP 0x00:默认; ECN:0x00)0000 00 .. =差分服务代码点:默认(0x00)... ..0 。  = ECN-CE传输(ECT):0 .... 0 = ECN-CE:0总长度:429识别:0x17ae(6062)标志:0x02(不分片)0 .. =保留位:未设置.1。  =不分段:设置.0 =更多分段:未设置分段偏移量:0生存时间:128协议:TCP(0x06)源:10.211.148.222(10.211.148.222)目的地:94.245.90.204(94.245.90.204 )传输控制协议,Src端口:58291(58291),Dst端口:5284(5284),Seq:1,Ack:1,Len:389源端口:58291(58291)目的端口:5284(5284)序号:1 (相对序列号)[下一个序列号:390(相对序列号)]确认号码:1(相对确认号码)标题长度:20字节标志:0x18(PSH,ACK)0 ... =拥塞窗口减less(CWR):未设置.0 .. .... = ECN-Echo:未设置..0。  .... =紧急:未设置... 1 .... =确认:设置.... 1 ... =推送:设置... .0 .. =重置:未设置.... ..0。 数据(389字节)=数据(389字节)= Syn:未设置... ... 0 = Fin:未设置窗口大小:132352(已缩放)[SEQ / ACK分析] 2f 69 6e 74 65 72 66 61 63 65 73 2f GET / interfaces / ... 0100 54 54 50 2f 31 2e 30 0d 0a 52 61 6e 67 65 3a 20 TTP / 1.0..Range:0110 62 79 74 65 73 3d 37 35 35 37 30 32 33 35 39 36字节= 7557023596 0120 2d 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 57  - 用户代理:W 0130 67 65 74 2f 31 2e 31 31 2e 34 0d 0a 41 63 63 65 get / 1.11.4..Acce 0140 70 74 3a 20 2a 2f 2a 0d 0a 48 6f 73 74 3a 20 73 pt:* / *。  0170 63 74 69 6f 6e 3a 20 4b 65 65 70 2d 41 6c 69 76 ction:Keep-Aliv 0180 65 0d 0a 0d 0a e .... 

编辑:固定标题

窗口大小为零意味着操作系统已经接收到它的接收缓冲区中所有可用于此连接的数据,并正在等待应用程序读取()它。 换句话说,如果你没有读取服务器发送给你的数据,就像它发送数据一样快,在某个时候,它会像这样阻塞。 你如何使用wget,你能粘贴确切的脚本/命令? 和你的java程序一样,你确定它正在从服务器读取所有的数据,并且永远不会备份,或者丢失了一个数据已经准备好的事件/通知,或者有一个问题跟不上它的读取)■?

此外,请检查netstat -anp并查看Recv-Q列以查看此连接,如果不是0,则会有数据缓冲,等待您的应用程序读取它。 编辑:argh,Windows, 这个链接可能有帮助。

对不起,推迟更新的家伙。 长话短说,所有这一切背后的原因是微软Azure云中的一个破损的NAT。 它忽略RFC 5382.它们在TCP连接上的超时是60秒。 当超时被击中时,连接不会被主动closures(RST左右,如RFC所示),或者只是被忽略。 而是发生一个非常奇怪的翻译,使得软件包在正确的虚拟机上以加倍的源/目标IP到达。 虚幻引擎把这些东西扔掉了,但是这使得他们在wirehark中非常棘手。 它会将它们视为完全不同的连接。

解决scheme是一个60年代的应用程序级别的心跳。