2015-06-25 41 views
1

這可能超出了Node.js可以控制的範圍,但任何指向此問題的其他解決方案的指針都會受到讚賞。可以Node.js強制更大的POST請求塊大小?

我正在通過HTTP POST將大文件上傳到Node.js服務。當它在本地或局域網上運行時,服務器接收的塊總是65536字節,上傳速度很快。

當我將相同的文件上傳到在遠程服務器上運行的相同代碼(Google Cloud VM或co-lo上的真實硬件)時,接收的塊位於1448-2869字節之間,並且上傳速度非常慢低於連接的帶寬限制)。

我不知道決定在哪個地方通過WAN連接發送更小的數據塊,如果是由客戶端軟件執行的計算(curl和node.js客戶端產生相同的結果),或者它是路由硬件之間的切片數據包,或完全不同的東西。

我想知道是否有任何事情可以通過服務器強制執行更大的塊,或者可能是克服與處理這些小塊相關的服務器宕機的替代方法?

回答

1

經過大量實驗並與網絡工程師討論此問題時,問題的核心是當連接超出直接以太網鏈路時,MTU大小施加的限制。

我的解決方案是修改應用程序以使用多個同時發生的請求,以基本上填補由較小塊的網絡開銷創建的空白。其結果是以更小的複雜性爲代價大大加快了網絡傳輸速度。