Freebsd

FreeBSD 傳輸緩慢 - RFC 1323 擴展問題?

  • June 15, 2012

我想我可能遇到了視窗縮放(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,而不管作業系統是如何配置的。

引用自:https://serverfault.com/questions/397741