如何測量服務器和客戶端之間的實際帶寬以決定發送多少實時數據?如何利用所有可用帶寬與實時數據?
我的服務器每秒向客戶端發送30次讀取時間數據。如果服務器數據太多,它會優先處理數據塊,並丟棄任何不適合可用帶寬的內容,因爲無論如何,這些數據都會失效。數據通過可靠(20%)和不可靠通道(80%)發送(都是基於UDP的,但如果TCP作爲可靠通道可以提供任何好處,請讓我知道)。數據對延遲非常敏感。服務器經常(但並非總是)具有比可用帶寬更多的數據。發送儘可能多的數據但不超過可用帶寬是至關重要的,以避免數據包丟失或延遲較高。
服務器和客戶端是自定義應用程序,因此可以實現任何算法/協議。
我的主要問題是如何跟蹤可用帶寬。此外,有關典型帶寬抖動的任何統計信息都會有所幫助(服務器位於雲中,客戶端是全球的家庭用戶)。
目前,我正在考慮如何利用:
可靠的信道的時延信息。它應該與帶寬相關,因爲如果延遲增加,則可以(!)表示數據包丟棄導致重傳,因此服務器必須降低數據速率。
客戶端在不可靠的通道上收到的數據量在時間範圍內。特別是如果數據量低於從服務器發送的數據量。
,如果目前的等待時間是接近或低於最低的記錄之一,可以增加帶寬
的問題是,這種方法過於複雜,涉及到很多「啓發式」等應該是一個什麼樣的步增大/減小帶寬等
從誰在過去處理類似的問題,或只是什麼好主意
人們尋找任何建議
你有任何有關典型帶寬波動的信息嗎?我的意思是在中間,我瞭解用戶觀看YouTube會導致大量帶寬下降 –
無信息。快速搜索找到延遲地圖 - http://internethealthreport.com/ http://www.internettrafficreport.com/ https://www.dotcom-tools.com/internet-backbone-latency.aspx真正關心的人可能已經轉移到了合作地點,例如股票交易中心,所以最好的數據可能是專有的,並不代表任何其他人的問題。 – mcdowella