2012-02-27 139 views
1

我正在使用.asmx Web服務從Windows Mobile應用程序上傳SQL Server CE緊湊型數據庫文件。我將數據庫分塊爲1MiB塊,重新組裝服務器上的數據庫。一旦服務器完成數據庫的處理,它將使用由移動應用程序驅動的類似進程傳回設備。這很好,但一些用戶有ADSL連接,只允許〜700Kb的上傳速度。我想優化塊大小,以確保這些用戶有最好的上傳體驗。 ADSL有最佳塊大小嗎?什麼是通過DSL發送數據的最佳塊大小

回答

5

根據提供商,網絡,用戶的偏好和其他因素,不同的DSL鏈路有different packet sizes。從服務器端預測你的用戶將會擁有什麼,而且很難讓他們告訴你。

只需通過TCP發送數據。該協議設計爲self-adjust to the optimal packet size用於客戶端和服務器。

如果您將數據上傳到(大)塊以支持恢復上傳,那麼您可以計算出客戶在必須重新傳輸數據塊時會損失多少時間(例如,上傳被中斷)。因此,如果它們在傳輸1MiB塊期間被中斷,並且它們具有700Kib上行鏈路,那麼如果它們必須重新傳輸整個塊,則它們將丟失超過一秒。你可以使用它和你測量的完整TCP連接失敗的概率—套接字被關閉,並且需要重傳的塊—來計算每個文件的預期重傳開銷。由於TCP失敗非常罕見(通常它會緩衝並等待發送其餘數據,如果移動連接發生抖動),罕見的1秒連接可能並不明顯,除非您有實時控制循環。據推測,整個數據庫的上傳不是。

相關問題