青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

陳碩的Blog

Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲

Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲

陳碩 (giantchen_AT_gmail)

Blog.csdn.net/Solstice  t.sina.com.cn/giantchen

這是《Muduo 網絡編程示例》系列的第五篇文章。

Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx

 

本文介紹一個簡單的網絡程序 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),這樣才能校準時間。

roundtrip_ntp

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

在我設計的 roundtrip 示例程序中,協議有所簡化:

roundtrip_simple

簡化之后的協議少取一次時間,因為 server 收到消息之后立刻發送回 client,耗時很少(若干微秒),基本不影響最終結果。

我設計的消息格式是 16 字節定長消息:

roundtrip_msg

T1 和 T2 都是 muduo::Timestamp,一個 int64_t,表示從 Epoch 到現在的微秒數。

為了讓消息的單程往返時間接近,server 和 client 發送的消息都是 16 bytes,這樣做到對稱。

由于是定長消息,可以不必使用 codec,在 message callback 中直接用

while (buffer->readableBytes() >= frameLen) { ... } 就能 decode。

請讀者思考,如果把 while 換成 if 會有什么后果?

 

client 程序以 200ms 為間隔發送消息,在收到消息之后打印 RTT 和 clock offset。一次運作實例如下:

roundtrip_example

這個例子中,client 和 server 的時鐘不是完全對準的,server 的時間快了 850 us,用 roundtrip 程序能測量出這個時間差。有了這個時間差就能校正分布式系統中測量得到的消息延遲。

比方說以上圖為例,server 在它本地 1.235000 時刻發送了一條消息,client 在它本地 1.234300 收到這條消息,直接計算的話延遲是 –700us。這個結果肯定是錯的,因為 server 和 client 不在一個時鐘域(這是數字電路中的概念),它們的時間直接相減無意義。如果我們已經測量得到 server 比 client 快 850us,那么做用這個數據一次校正: -700+850 = 150us,這個結果就比較符合實際了。當然,在實際應用中,clock offset 要經過一個低通濾波才能使用,不然偶然性太大。

請讀者思考,為什么不能直接以 RTT/2 作為兩天機器之間收發消息的單程延遲?

這個程序在局域網中使用沒有問題,如果在廣域網上使用,而且 RTT 大于 200ms,那么受 Nagle 算法影響,測量結果是錯誤的(具體分析留作練習,這能測試對 Nagle 的理解),這時候我們需要設置 TCP_NODELAY 參數,讓程序在廣域網上也能正常工作。

posted on 2011-04-20 09:26 陳碩 閱讀(3166) 評論(7)  編輯 收藏 引用 所屬分類: muduo

評論

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲 2011-04-20 10:03 regexp

為什么不讓兩臺機器都通過NTP校準時間后再測試latency呢?  回復  更多評論   

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲 2011-04-20 10:33 陳碩

@regexp
局域網內 NTP 校準的準確度是多少微秒?
局域網內的 latency 是多少微秒?
這樣直接測試的結果有意義嗎?  回復  更多評論   

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲 2011-04-20 14:59 mj0011

笑了   回復  更多評論   

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲 2011-04-21 12:22 陳梓瀚(vczh)

延遲本來就不是一個固定的數字,得到這個數字大概只能做些預測之類的事情。  回復  更多評論   

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲 2011-04-21 12:59 飯中淹

耗時很少,這個描述不是很精確。
  回復  更多評論   

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲 2011-04-22 10:08 打擊裝B犯

樓主擅長把簡單的東西寫得很復雜  回復  更多評論   

# re: Muduo 網絡編程示例之五: 測量兩臺機器的網絡延遲[未登錄] 2011-04-27 00:57 欲三更

@打擊裝B犯
你說的很對哈哈

不過這個東西倒是也有用,可以計算合理TCP緩沖區大小。
  回復  更多評論   

<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

導航

統計

常用鏈接

隨筆分類

隨筆檔案

相冊

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲娇小video精品| 香蕉久久精品日日躁夜夜躁| 久久人人爽爽爽人久久久| 欧美a级一区| 欧美亚洲一区在线| 亚洲大片在线观看| 亚洲午夜精品网| 一区二区三区.www| 猛干欧美女孩| 国内精品福利| 亚洲欧美第一页| 亚洲第一偷拍| 亚洲视频精选在线| 亚洲国产日韩美| 欧美日韩一二区| 伊人成综合网伊人222| 亚洲一区二区成人| 欧美11—12娇小xxxx| 亚洲图片欧洲图片av| 裸体丰满少妇做受久久99精品| 欧美国产精品va在线观看| 欧美激情国产日韩| 国内精品久久久久久影视8| 国产精品99久久久久久宅男| 欧美专区第一页| 久久午夜精品| 亚洲综合国产精品| 欧美久久久久久久久| 在线观看日韩av| 久久久国产午夜精品| 99精品欧美| 免费观看日韩av| 在线日本成人| 欧美大片在线观看一区二区| 久久久999精品| 免费黄网站欧美| 最新亚洲视频| 欧美激情网友自拍| 欧美不卡激情三级在线观看| 亚洲国内高清视频| 欧美激情一区三区| 欧美成人午夜激情在线| 亚洲国产欧美日韩| 欧美激情一区二区| 亚洲午夜国产一区99re久久 | 久久精品国产亚洲一区二区三区 | 欧美激情bt| 日韩亚洲欧美成人| 亚洲日本免费电影| 欧美日韩1区2区| 亚洲摸下面视频| 午夜精品久久久久久久男人的天堂| 国产精品一区在线观看| 宅男噜噜噜66国产日韩在线观看| 欧美肥婆在线| 欧美日韩高清区| 亚洲欧美中文字幕| 午夜日本精品| 亚洲电影免费在线| 亚洲七七久久综合桃花剧情介绍| 欧美成人中文| 国产精品久久久久久久久动漫| 91久久精品视频| 亚洲六月丁香色婷婷综合久久| 欧美色网一区二区| 久久久久久欧美| 免费精品视频| 亚洲国产精品成人va在线观看| 欧美华人在线视频| 午夜精品久久久久久99热| 欧美一级久久久久久久大片| 精品成人免费| 亚洲精品久久久久中文字幕欢迎你 | 一本大道久久a久久精二百| 国产欧美日韩精品a在线观看| 亚洲男人的天堂在线| 亚洲激情校园春色| 国产精品美女久久久浪潮软件| 六月天综合网| 欧美日韩综合视频| 狂野欧美一区| 国产精品久久久久久亚洲调教 | 亚洲在线黄色| 亚洲精品一区在线| 久久久www成人免费毛片麻豆 | 久久激情综合网| 欧美怡红院视频| 亚洲一区二三| 欧美高清在线精品一区| 久久动漫亚洲| 欧美日韩一区精品| 欧美激情视频在线免费观看 欧美视频免费一| 国产伦精品一区二区三区高清| 亚洲小少妇裸体bbw| 一区二区三区黄色| 午夜亚洲影视| 亚洲欧美一区二区三区久久 | 亚洲第一天堂av| 老色鬼久久亚洲一区二区 | 亚洲少妇中出一区| 亚洲男人第一网站| 国产精品欧美风情| 亚洲欧美在线一区二区| 欧美一区二区在线免费观看| 国产女人精品视频| 性欧美大战久久久久久久免费观看| 性欧美xxxx大乳国产app| 国产精品初高中精品久久| 亚洲小说欧美另类婷婷| 欧美亚洲一区在线| 好吊妞这里只有精品| 久久久久国产精品www| 免费不卡欧美自拍视频| 亚洲国产三级网| 欧美日本簧片| 亚洲网站在线| 麻豆精品国产91久久久久久| 亚洲韩日在线| 国产精品国产三级国产aⅴ9色| 亚洲欧美精品一区| 欧美α欧美αv大片| 99视频一区二区| 欧美日韩日本网| 欧美一区二区三区免费视| 欧美在现视频| 美日韩在线观看| 亚洲国产精品ⅴa在线观看| 欧美国产日韩a欧美在线观看| 亚洲国产老妈| 日韩亚洲国产精品| 国产欧美视频一区二区| 狼狼综合久久久久综合网| 亚洲精品久久久久久久久久久久久 | 欧美a级片网| 在线日韩av片| 欧美风情在线| 亚洲欧美日韩在线播放| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美黑人在线观看| 一区二区三区日韩欧美精品| 国产日韩欧美高清| 欧美极品一区二区三区| 欧美一区二区视频在线观看| 亚洲欧洲一区二区在线观看| 欧美亚洲视频在线观看| 亚洲国产精品久久久久久女王| 欧美三级资源在线| 久久亚洲国产精品一区二区| 亚洲手机视频| 亚洲高清色综合| 欧美在线短视频| 日韩亚洲精品视频| 国产在线麻豆精品观看| 欧美日韩国产限制| 久久久久九九九九| 亚洲欧美国产高清va在线播| 欧美电影打屁股sp| 欧美一区二区| 夜夜嗨av一区二区三区网页| 国产一区二区三区免费观看 | 亚洲精品乱码| 国产亚洲日本欧美韩国| 欧美激情精品久久久久久黑人| 久久精品99国产精品日本 | 狠狠色综合一区二区| 国产精品久久久久天堂| 欧美激情一区二区在线 | 亚洲国产三级在线| 黄色在线成人| 国产精品一区二区三区久久久| 欧美国产专区| 精东粉嫩av免费一区二区三区| 亚洲美女毛片| 亚洲国产va精品久久久不卡综合| 久久男人av资源网站| 欧美在线免费观看视频| 亚洲一区二区三区涩| 99国产精品99久久久久久| 最新精品在线| 亚洲区一区二区三区| 亚洲福利视频网站| 黄色小说综合网站| 国内自拍一区| 樱桃成人精品视频在线播放| 在线视频国内自拍亚洲视频| 在线观看亚洲视频啊啊啊啊| 亚洲电影免费观看高清| 亚洲人成在线观看网站高清| 亚洲毛片在线观看.| 欧美成人中文| 久久久www| 噜噜噜91成人网| 欧美激情视频一区二区三区免费| 亚洲高清视频在线| 日韩亚洲国产精品| 亚洲在线1234| 久久久久久69| 欧美极品aⅴ影院| 欧美精品麻豆| 国产精品久久久久久久久久直播|