經過一番的確認後,初步排除基本問題,如共同下載、中毒、網路速度過慢等問題,後來發現一個情況,那就是透過不同的瀏覽器會有不同的下載行為,在我透過Microsoft Internet Explorer、Microsoft Edge與Chrome這三套來分別進行測試時,發現IE與Chrome都只能在20k左右,但是透過Microsoft Edge卻可以達到2MB左右的速度,所以初步懷疑應該也不是網站限制流程的問題。
在以往的解法上,微軟官方在以前有提供透過工具(Microsoft File Transfer Manager)進行下載,可以加速處理,我以前試過也的確可以很快的下載完成,但很可惜的是在2015年3月以後就不支援了,在IE10(含)也無法透過此工具進行,雖然可以透過設定至IE9的相容性模式進行解決,但還是不太方便,而且其他的瀏覽器也無法透過此工具進行。
實際上的解法我放在最下法的部份,下面是我針對此問題透過Wireshark進分析的的過程與個人看法,再請大家參考,如有不對的部份也歡迎討論。
另外雖然看不到程式碼,但我想應該可以透過Wireshark捉個封包來看看,並藉以了解並從中找出一些眉目,所以我就索性在我Windows 10的電腦上同時透過Chrome與Edge分別各捉一個封包進行比較。
捉到的封包我們先透過Wireshark中的Analyze -> Expert Info進行分析,從下圖可以看到在透過Chrome進行下載時,會有多次的out-of order、duplicate ACK與Retransmission的情況發生,而且次數很多,相反的在Microsoft Edge上就沒有這種情況,但問題來了,發生這種情況時該如何進行調整,當然此時的建議或許你使用Microsoft Edge會是比較快的方式(哈)。
封包分析 - Chrome
封包分析 - Microsoft Edge
但進一步的從封包來看,發現從開始下載檔案後,二個瀏覽器在下載的行為上有不同的方式,首先從Chrome的下載行為上來看,Client端會送出一個Windows Size=65535,Len=0的封包,然後下一個封包Server端會回送Windows Size=20440,Len=1460的封包,然後一直反覆的確認每次的傳送。
另外我們檢查在Chrome送出時,在Windows size scaling factor的值為-1。
但是在Microsoft Edge的部份,在Windows size scaling factor值為-2,我想這就是主要的原因所在,因為每次Windows Size都需要重覆的確認,造成傳送上的延遲,另外關於Windows size scaling factor的值說明,可以參考下列的連結說明。
[Window size scaling factor: -1 (unknown)]
https://ask.wireshark.org/questions/10071/window-size-scaling-factor-1-unknown
See RFC 1323 for the specification of the TCP window scale option.
http://www.ietf.org/rfc/rfc1323.txt.pdf
當知道原因後,我進一步的追查,果然找到一個解法,詳細說明請參考下列的說明,解決方法很簡單,只需調整登錄檔中的三個參數值,如下所示。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{a9469a2f-b852-4e88-a4ee-2d17e7c19c65}]
"MTU"=dword:00000578
"EnablePMTUBHDetect"=dword:00000001
"EnablePMTUDiscovery"=dword:00000000
上述紅色的文字即代表你網路介面卡的GUID,你可開啟一個Dos Command輸入下列的指令進行查詢,再將查詢到的值填入後,再將上述的值貼入.reg檔執行即可。
查詢有線網路卡介面:netsh lan show interfaces
查詢無線網路卡介面:netsh wlan show interfaces
Browser Connections Appear to Stop Responding When Accessing IIS Over SSL
https://support.microsoft.com/en-us/kb/285821
更改後再請重新啟動電腦,再進行確認,發現就算透過Chrome進行下載時,也可以達到2MB左名的速度。
關鍵字:Download Slow、MSDN Download、Windows Size Scaling Factor、Speed up Downloads
沒有留言:
張貼留言