2013-08-21 94 views
0

我正在開發一個網絡支持的框架(最初用於Android系統),其中包括了三種基本服務信號強度的影響:主機發現網絡通信的QoS監控建立在WiFi網絡速度

對於最後一項服務,我嘗試實現一種方法,該方法返回單個主機可以定期發送到另一個主機的最大郵件數(MPS)。

根據要發送的對象的大小和網絡速度,我可以很容易地通過可以通過網絡發送的理想MPS 進行粗略估計。當我嘗試在方程中包含信號強度(SS)時出現問題。

protected int getMPS(NetworkApplicationData message, Context context) { 
    int messageSizeBits = MemoryUtils.sizeOf(message) * 8; 
    int networkSpeedMbps = getNetworkSpeed(context); 
    float signalStrength = getNetworkSignalStrength(context); 
    // FIXME: what about signalStrength? 
    return networkSpeedMbps * 1024 * 1024/messageSizeBits; 
} 

所以這裏的基本問題是:是否有任何預先建立的研究關於信號強度對無線網絡速度的影響?

做了一些測試,我注意到,根據信號強度,建立的網絡速度發生變化。例如,對於「標準化」的100%SS,Android API返回54Mbps的網絡速度值;和40%的SS,API返回7Mbps的網絡速度值。我應該僅僅依靠Android API返回的網絡速度值嗎?在這種情況下,我將主要得到高估的MPS。

無論如何,我需要知道哪些是解決此問題的正確方法,並將計算基於正式研究。

+0

您應該指定您的目標通信技術。從你的價值看,它似乎是Wi-Fi?版本811a/g? –

+0

@Luis它的確適用於當前移動設備中使用的WiFi網絡(a/b/g/n)。感謝您的反饋。 –

回答

1

這是一個在EE和CS中深入研究的主題。 WiFi網絡吞吐量主要取決於兩個因素:信噪比(SNR)值和網絡擁塞。前者是物理層(PHY)問題,後者是MAC層問題。在兩層測量的數據速率是完全不同的。在PHY中,數據速率由SS(或更準確地說,信噪比)確定。根據香農的信息理論,更高的SS意味着更高的數據速率。 PHY的數據速率假定單個WiFi設備連續傳輸而不存在任何爭用。但在現實世界中並非如此。 54Mbps是高SS的典型PHY數據速率。

在MAC中,數據速率是通過PHY數據速率乘以WiFi設備在CSMA協議下贏得競爭的時間百分比得到的。即使只有一對WiFi設備,在MAC層測量的數據速率(幾乎與在應用層測量的數據速率相同)大約是PHY數據速率的一半。

回到你的問題,在一個清晰的WiFi網絡中,將從Android API返回的網絡速度除以一半來估算實際數據速率。在繁忙的網絡中,您的實際數據速率只能通過在線測量得出,而且它始終在變化。

+0

感謝您的詳細解釋!我會嘗試應用您的方法並檢查結果,以便將此答案設置爲已接受。 –