Freebsd
FreeBSD 傳輸緩慢 - RFC 1323 擴展問題?
我想我可能遇到了視窗縮放(RFC 1323)的問題,希望有人能告訴我發生了什麼。
- 伺服器: FreeBSD 9,apache22,提供靜態 100MB zip 文件。192.168.18.30
- 客戶端: Mac OS X 10.6、Firefox 192.168.17.47
- **網路:**它們之間只有一個開關 - 子網是 192.168.16/22 (在這個測試中,我也有 dummynet 過濾模擬所有 IP 流量的 80 毫秒 ping 時間。我已經看到了幾乎相同的“真實”設置跟踪,也有真正的網際網路流量/延遲)
問題:
- 這看起來正常嗎?
- 數據包 #2 是否指定了 65535 的視窗大小和 512 的比例?
- 數據包 #5 是否會縮小視窗大小,以便它可以使用 512 比例,並且仍將整體計算的視窗大小保持在 64K 附近?
- 為什麼窗戶比例那麼高?
這是來自wireshark的前6個數據包。對於數據包 5 和 6,我已經包含了顯示用於數據傳輸的視窗大小和縮放因子的詳細資訊。
No. Time Source Destination Protocol Length Info 108 6.699922 192.168.17.47 192.168.18.30 TCP 78 49190 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=8 TSval=945617489 TSecr=0 SACK_PERM=1 115 6.781971 192.168.18.30 192.168.17.47 TCP 74 http > 49190 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=512 SACK_PERM=1 TSval=2617517338 TSecr=945617489 116 6.782218 192.168.17.47 192.168.18.30 TCP 66 49190 > http [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSval=945617490 TSecr=2617517338 117 6.782220 192.168.17.47 192.168.18.30 HTTP 490 GET /utils/speedtest/large.file.zip HTTP/1.1 118 6.867070 192.168.18.30 192.168.17.47 TCP 375 [TCP segment of a reassembled PDU]
細節:
Transmission Control Protocol, Src Port: http (80), Dst Port: 49190 (49190), Seq: 1, Ack: 425, Len: 309 Source port: http (80) Destination port: 49190 (49190) [Stream index: 4] Sequence number: 1 (relative sequence number) [Next sequence number: 310 (relative sequence number)] Acknowledgement number: 425 (relative ack number) Header length: 32 bytes Flags: 0x018 (PSH, ACK) Window size value: 130 [Calculated window size: 66560] [Window size scaling factor: 512] Checksum: 0xd182 [validation disabled] Options: (12 bytes) No-Operation (NOP) No-Operation (NOP) Timestamps: TSval 2617517423, TSecr 945617490 [SEQ/ACK analysis] TCP segment data (309 bytes)
我從 sysadmin 團隊得到消息,這個問題是由 VMWare 網路驅動程序的一些問題引起的,該驅動程序不尊重/玩得好 sysctl 可調參數。在物理硬體上使用相同設置的吞吐量具有合理百分比的管道吞吐量,而不是我們在 VMware 中看到的 1/10 或更少。
1.) 512 並不是真正的高視窗比例 - 它只是說將提供的視窗大小向左移動 9 位。將視窗大小設置為 130(否則是一個非常非常低的值),然後應用 512 的比例因子可以得到 66560 (130<<9)。
2.) 100M 可能是文件太小。規模已經協商的事實表明一切正常。嘗試更大的文件以更好地觀察行為。如果不出意外,您將更好地了解實際吞吐量。
3.) 還要記住,特定客戶端的行為實際上可以專門覆蓋作業系統的行為——例如,Solaris 中的內置 FTP 客戶端用於將視窗大小限制為 64K,而不管作業系統是如何配置的。