Muduo 網路編程樣本(五)測量兩台機器的網路延遲

來源:互聯網
上載者:User

本文介紹一個簡單的網路程式 roundtrip,用於測量兩台機器之間的網路延遲,即“往返時間 / round trip time / RTT”。這篇文章主要考察定長 TCP 訊息的分包,TCP_NODELAY 的作用。

本文的代碼見 http://code.google.com/p/muduo/source/browse/trunk/examples/roundtrip/roundtrip.cc

測量 RTT 的辦法很簡單:

host A 發一條訊息給 host B,其中包含 host A 發送訊息的本地時間

host B 收到之後立刻把訊息 echo 回 host A

host A 收到訊息之後,用目前時間減去訊息中的時間就得到了 RTT。

NTP 協議的工作原理與之類似,不過,除了測量 RTT,NTP 還需要知道兩台機器之間的時間差 (clock offset),這樣才能校準時間。

以上是 NTP 協議收發消 息的協議,RTT = (T4-T1) – (T3-T2),時間差 = ((T4+T1)-(T2+T3))/2。NTP 的要求是往返路徑上的 單程延遲要盡量相等,這樣才能減少系統誤差。偶然誤差由單程延遲的不確定性決定。

在我設 計的 roundtrip 樣本程式中,協議有所簡化:

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。