Mar*_*ica 6 networking windows server-message-block tcp tcp-window
我已获得访问 Windows Server 2003 SP1 系统 (10.a.bbb.ccc) 上的共享的权限,该系统是一个文件和打印机服务器,并且经常将大文件复制到该共享。但是,有时这样的副本会失败。使用 Robocopy(在 10.xxx.yy.zzz 上)重现此问题时,我得到类似
70.4%
2013/07/31 11:20:21 ERROR 64 (0x00000040) Copying File <<file name removed>>
The specified network name is no longer available.
Waiting 30 seconds... Retrying...
New File 105.2 m <<file name removed>>
0.0%
Run Code Online (Sandbox Code Playgroud)
dumpcap + Wireshark 显示,当发生这种情况时,在复制过程中,服务器突然不再接受 TCP 端口 445 上的任何数据,方法是将窗口大小设置为零:
No. Time Source Destination Protocol Length Info
7303 5.841186000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7304 6.149715000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7305 6.150137000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7306 6.749711000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7307 6.750087000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7308 7.946779000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7309 7.947130000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7310 10.349783000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7311 10.350201000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7312 15.149910000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7313 15.150283000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7314 24.747096000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7315 24.756210000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7316 43.958531000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
7317 43.958863000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindowProbeAck] [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7318 75.216401000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 54 57918 > microsoft-ds [RST, ACK] Seq=6973070 Ack=10864 Win=0 Len=0
7319 75.225543000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 66 55972 > microsoft-ds [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
7320 75.225933000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 66 microsoft-ds > 55972 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=1 SACK_PERM=1
Run Code Online (Sandbox Code Playgroud)
因此,在 70 秒后,客户端(此处:Robocopy)调用它退出。
我的问题:这是 Windows 共享的已知问题吗?可以在文件服务器上调查/调试/跟踪什么?是否有我们需要查看或试验的特定设置?
提前致谢!
小智 3
我同意@suprjami,并愿意提供这种可能的探索途径:不是服务器的磁盘太慢,而是考虑它们可能出现故障(典型的硬盘驱动器在每次错误的集群读取时冻结约 8 秒),严重碎片化,空间不足(导致严重的碎片和严重的磁盘抖动),或者您的计算机上可能有严重的 CPU 密集型或磁盘密集型任务,导致其他一切(包括网络和磁盘子系统)都处于饥饿状态。我建议检查服务器的事件查看器是否有磁盘错误,并拉出任务管理器或进程资源管理器的一些列来显示页面错误、CPU 使用情况以及 I/O 读取字节和写入字节,并查看数字的作用。
考虑到 ZeroWindow 是 TCP 接收缓冲区已满的症状,我敢打赌问题要么是消耗了服务器上 100% 的 CPU,要么是导致服务器的网络流量严重过多并锁定了所有内容。
另一种可能性是中间设备的 TCP 实现中的缓冲区膨胀,如果该设备正在修改它以任何方式(即 NAT)中继的数据包。您的传输是否会偶然出现传输率上升或下降的情况?
| 归档时间: |
|
| 查看次数: |
12407 次 |
| 最近记录: |