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

陳碩的Blog

Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲

Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲

陳碩 (giantchen_AT_gmail)

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

這是《Muduo 網(wǎng)絡(luò)編程示例》系列的第五篇文章。

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

 

本文介紹一個(gè)簡單的網(wǎng)絡(luò)程序 roundtrip,用于測量兩臺(tái)機(jī)器之間的網(wǎng)絡(luò)延遲,即“往返時(shí)間 / round trip time / RTT”。這篇文章主要考察定長 TCP 消息的分包,TCP_NODELAY 的作用。

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

測量 RTT 的辦法很簡單:

  • host A 發(fā)一條消息給 host B,其中包含 host A 發(fā)送消息的本地時(shí)間
  • host B 收到之后立刻把消息 echo 回 host A
  • host A 收到消息之后,用當(dāng)前時(shí)間減去消息中的時(shí)間就得到了 RTT。

NTP 協(xié)議的工作原理與之類似,不過,除了測量 RTT,NTP 還需要知道兩臺(tái)機(jī)器之間的時(shí)間差 (clock offset),這樣才能校準(zhǔn)時(shí)間。

roundtrip_ntp

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

在我設(shè)計(jì)的 roundtrip 示例程序中,協(xié)議有所簡化:

roundtrip_simple

簡化之后的協(xié)議少取一次時(shí)間,因?yàn)?server 收到消息之后立刻發(fā)送回 client,耗時(shí)很少(若干微秒),基本不影響最終結(jié)果。

我設(shè)計(jì)的消息格式是 16 字節(jié)定長消息:

roundtrip_msg

T1 和 T2 都是 muduo::Timestamp,一個(gè) int64_t,表示從 Epoch 到現(xiàn)在的微秒數(shù)。

為了讓消息的單程往返時(shí)間接近,server 和 client 發(fā)送的消息都是 16 bytes,這樣做到對(duì)稱。

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

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

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

 

client 程序以 200ms 為間隔發(fā)送消息,在收到消息之后打印 RTT 和 clock offset。一次運(yùn)作實(shí)例如下:

roundtrip_example

這個(gè)例子中,client 和 server 的時(shí)鐘不是完全對(duì)準(zhǔn)的,server 的時(shí)間快了 850 us,用 roundtrip 程序能測量出這個(gè)時(shí)間差。有了這個(gè)時(shí)間差就能校正分布式系統(tǒng)中測量得到的消息延遲。

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

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

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

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

評(píng)論

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲 2011-04-20 10:03 regexp

為什么不讓兩臺(tái)機(jī)器都通過NTP校準(zhǔn)時(shí)間后再測試latency呢?  回復(fù)  更多評(píng)論   

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲 2011-04-20 10:33 陳碩

@regexp
局域網(wǎng)內(nèi) NTP 校準(zhǔn)的準(zhǔn)確度是多少微秒?
局域網(wǎng)內(nèi)的 latency 是多少微秒?
這樣直接測試的結(jié)果有意義嗎?  回復(fù)  更多評(píng)論   

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲 2011-04-20 14:59 mj0011

笑了   回復(fù)  更多評(píng)論   

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲 2011-04-21 12:22 陳梓瀚(vczh)

延遲本來就不是一個(gè)固定的數(shù)字,得到這個(gè)數(shù)字大概只能做些預(yù)測之類的事情。  回復(fù)  更多評(píng)論   

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲 2011-04-21 12:59 飯中淹

耗時(shí)很少,這個(gè)描述不是很精確。
  回復(fù)  更多評(píng)論   

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲 2011-04-22 10:08 打擊裝B犯

樓主擅長把簡單的東西寫得很復(fù)雜  回復(fù)  更多評(píng)論   

# re: Muduo 網(wǎng)絡(luò)編程示例之五: 測量兩臺(tái)機(jī)器的網(wǎng)絡(luò)延遲[未登錄] 2011-04-27 00:57 欲三更

@打擊裝B犯
你說的很對(duì)哈哈

不過這個(gè)東西倒是也有用,可以計(jì)算合理TCP緩沖區(qū)大小。
  回復(fù)  更多評(píng)論   

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

隨筆分類

隨筆檔案

相冊

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲男人的天堂在线| 99国产精品自拍| 国产精品久久久久久妇女6080 | 久久福利资源站| 亚洲国产综合视频在线观看| 制服诱惑一区二区| 欧美日韩国产精品一区二区亚洲| 尹人成人综合网| 久久夜色精品国产欧美乱| 亚洲少妇在线| 国产精品久久久久久久久果冻传媒 | 欧美aⅴ99久久黑人专区| 亚洲一区图片| 国产欧美一区二区三区久久人妖| 亚洲永久精品大片| 中国成人黄色视屏| 国产欧美日韩综合一区在线观看| 欧美一区二视频在线免费观看| 亚洲一区二区三区免费视频| 欧美三级视频在线| 午夜视频一区在线观看| 亚洲在线中文字幕| 国产一区二区三区四区在线观看| 久久人体大胆视频| 久久日韩精品| 亚洲三级免费电影| 99re66热这里只有精品4| 国产精品va| 欧美在线视频日韩| 国产精品无码永久免费888| 国产一区在线免费观看| 久久女同精品一区二区| 久久亚洲精品一区| av成人国产| 亚洲综合国产| 在线免费观看日韩欧美| 亚洲激情黄色| 国产精品一国产精品k频道56| 亚洲国产精品第一区二区| 久久久av毛片精品| 日韩网站在线| 午夜在线a亚洲v天堂网2018| 国模叶桐国产精品一区| 亚洲福利免费| 国产欧美日韩另类视频免费观看| 老色批av在线精品| 欧美日韩天堂| 久久久综合精品| 欧美日本簧片| 噜噜噜91成人网| 欧美视频在线看| 久久一区二区精品| 欧美日韩视频专区在线播放 | 极品尤物av久久免费看| 亚洲三级性片| 国产一区二区av| 亚洲激情成人在线| 国产在线国偷精品产拍免费yy| 欧美激情免费观看| 国产一区二区三区在线观看免费| 亚洲黄网站黄| 一区久久精品| 亚洲欧美日韩另类| 在线亚洲精品| 免费精品99久久国产综合精品| 午夜天堂精品久久久久| 欧美区国产区| 欧美电影电视剧在线观看| 国产精品永久免费在线| 亚洲精品免费在线观看| 亚洲国产aⅴ天堂久久| 香蕉久久久久久久av网站| 亚洲视频成人| 欧美激情亚洲精品| 欧美顶级大胆免费视频| 国产综合在线视频| 亚洲欧美日韩中文视频| 亚洲图片欧美午夜| 欧美大片在线影院| 美女免费视频一区| 黑人操亚洲美女惩罚| 亚洲欧美三级伦理| 亚洲一本视频| 欧美亚州韩日在线看免费版国语版| 亚洲国产天堂久久国产91| 亚洲高清不卡一区| 麻豆成人在线播放| 欧美成人国产| 最新69国产成人精品视频免费| 久久人人爽人人爽爽久久| 亚洲第一二三四五区| 久久国产毛片| 国产精品一区二区久久| 国产精品99久久久久久宅男| 亚洲素人在线| 国产精品电影观看| 亚洲网址在线| 午夜精品电影| 国产色产综合色产在线视频| 亚洲主播在线| 久久久女女女女999久久| 国产一区欧美| 久久亚洲精品一区| 亚洲欧洲一区二区在线播放| 亚洲精品中文在线| 欧美日韩美女一区二区| 在线视频精品一| 欧美一区二区三区在线观看视频| 国产伦一区二区三区色一情| 欧美一级黄色录像| 免费观看日韩| 99视频一区二区三区| 国产精品福利久久久| 欧美亚洲一区二区在线观看| 久久综合伊人77777| 亚洲激情影视| 欧美性片在线观看| 欧美在线视频一区| 欧美国产日韩精品| 亚洲一区二区三区精品在线观看| 国产精品乱码一区二区三区| 性色av一区二区三区红粉影视| 老牛国产精品一区的观看方式| 亚洲黄色小视频| 国产精品乱子乱xxxx| 久久精品午夜| 日韩视频在线一区二区三区| 欧美在线视屏| 亚洲美女精品一区| 国产女精品视频网站免费| 久久久久久久综合色一本| 亚洲人成毛片在线播放| 小嫩嫩精品导航| 亚洲国产人成综合网站| 欧美性大战久久久久久久| 久久动漫亚洲| 一本到12不卡视频在线dvd| 久久久久久电影| 亚洲午夜激情网站| 亚洲电影第1页| 国产美女精品视频| 欧美日韩福利在线观看| 久久激情综合网| 99国产精品久久久久久久成人热 | 最新亚洲一区| 久久婷婷影院| 亚洲综合日韩在线| 亚洲人成网站色ww在线| 国产欧美一区在线| 欧美日韩一区二区三区在线 | 91久久精品国产91性色| 久久国产精品第一页| 一区二区三区四区蜜桃| 亚洲福利视频一区| 国产毛片精品视频| 国产精品magnet| 国产精品一区免费观看| 欧美一级免费视频| 亚洲最快最全在线视频| 合欧美一区二区三区| 国产精品hd| 欧美日韩在线播放三区四区| 免费在线亚洲欧美| 久久亚洲色图| 久久综合色影院| 久久大逼视频| 欧美一区二区三区精品电影| 亚洲午夜小视频| 一区二区高清| 99re热这里只有精品视频 | 亚洲午夜视频在线| 一区二区三区精品久久久| 91久久久一线二线三线品牌| 欧美aaaaaaaa牛牛影院| 美国十次成人| 老司机一区二区| 久热精品视频在线免费观看| 久久精品国产v日韩v亚洲 | 亚洲欧美视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩一级免费| 亚洲一区黄色| 香蕉国产精品偷在线观看不卡| 亚洲亚洲精品在线观看 | 亚洲调教视频在线观看| 在线视频精品| 亚洲欧美日韩国产另类专区| 欧美一区二区三区日韩| 欧美一区二区三区视频| 久久精品一区中文字幕| 久久免费的精品国产v∧| 久热精品在线| 欧美精品一区在线播放| 欧美日韩一区二区三区四区在线观看| 欧美视频一区| 国产午夜精品一区理论片飘花| 激情懂色av一区av二区av| 亚洲大片免费看| 一本色道久久精品| 欧美一区二区三区视频|