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

Fork me on GitHub
隨筆 - 215  文章 - 13  trackbacks - 0
<2017年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456


專注即時通訊及網(wǎng)游服務(wù)端編程
------------------------------------
Openresty 官方模塊
Openresty 標(biāo)準(zhǔn)模塊(Opm)
Openresty 三方模塊
------------------------------------
本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請保留相關(guān)信息,這是大家對原創(chuàng)作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

相冊

Awesome

Blog

Book

GitHub

Link

搜索

  •  

積分與排名

  • 積分 - 221316
  • 排名 - 117

最新評論

閱讀排行榜

http://blog.csdn.net/u014630768/article/details/34895367

UDT庫 https://sourceforge.net/projects/udt/?source=directory

    C#包裝:https://github.com/dump247/udt-net

    

  • UDT協(xié)議是什么?是一種基于UDP的數(shù)據(jù)傳輸協(xié)議(UDP-based Data Transfer Protocol,簡稱UDT)。

  • UDT協(xié)議的主要作用是什么?UDT的主要目的是支持高速廣域網(wǎng)上的海量數(shù)據(jù)傳輸,而互聯(lián)網(wǎng)上的標(biāo)準(zhǔn)數(shù)據(jù)傳輸協(xié)議TCP在高帶寬長距離網(wǎng)絡(luò)上性能很差。

  • 那么UDT與UDP的區(qū)別又是什么?UDT建于UDP之上,并引入新的擁塞控制和數(shù)據(jù)可靠性控制機(jī)制。UDT是面向連接的雙向的應(yīng)用層協(xié)議。它同時支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報傳輸。

  • UDT的使用場景是什么?由于UDT完全在UDP上實(shí)現(xiàn),它也可以應(yīng)用在除了高速數(shù)據(jù)傳輸之外的其它應(yīng)用領(lǐng)域,例如點(diǎn)到點(diǎn)技術(shù)(P2P),防火墻穿透,多媒體數(shù)據(jù)傳輸?shù)鹊取?/span>

    (以上問題的答案均摘自wikipedia)當(dāng)然我今天也不是來當(dāng)知識搬運(yùn)工的,而是結(jié)合以上UDT協(xié)議的基本定義來深入到UDT協(xié)議內(nèi)部去解析它。


    UDT協(xié)議的主要特性有哪些?

  • 基于UDP的應(yīng)用層協(xié)議: 有基本網(wǎng)絡(luò)知識的朋友都知道TCP和UDP的區(qū)別和使用場景,但是有沒有一種協(xié)議能同時兼顧TCP協(xié)議的安全可靠和UDP協(xié)議的高效,那么UDT就是一種。

  • 面向連接的協(xié)議:面向連接意味著兩個使用協(xié)議的應(yīng)用在彼此交換數(shù)據(jù)之前必須先建立一個連接,當(dāng)然UDT是邏輯上存在的連接通道。這種連接的維護(hù)是基于握手、Keep-alive(保活)以及關(guān)閉連接。

  • 可靠的協(xié)議:依靠包序號機(jī)制、接收者的ACK響應(yīng)和丟包報告、ACK序號機(jī)制、重傳機(jī)制(基于丟包報告和超時處理)來實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)目煽啃浴?/span>

  • 雙工的協(xié)議:每個UDT實(shí)例包含發(fā)送端和接收端的信息。

  • 單播的數(shù)據(jù)流。

  • 新的擁塞算法,并且具有可擴(kuò)展的擁塞控制框架:新的擁塞控制算法不同于基于窗口的TCP擁塞控制算法(慢啟動和擁塞避免),是混合的基于窗口的、基于速率的擁塞控制算法。可擴(kuò)展的擁塞控制框架開源的代碼和擁塞控制的C++類架構(gòu),可支持開發(fā)者派生專用的擁塞控制算法。

  • 帶寬估計:UDT使用對包(PP -- Packet pair)的機(jī)制來估計帶寬值。即每16個包為一組,最后一個是對包,即發(fā)送方不用等到下一個發(fā)送周期內(nèi)再發(fā)送。接收方接收到對包后對其到達(dá)時間進(jìn)行記錄,可結(jié)合上次記錄的值計算出鏈路的帶寬(計算的方法稱為中值過濾法), 并在下次ACK中進(jìn)行反饋。


★★★ENET庫(photon的可靠udp) https://github.com/lsalzman/enet

c#包裝1:https://github.com/RainsSoft/enetcs

c#包裝2:https://github.com/RainsSoft/ENetSharp

大家都知道UDP這個東西太不可靠了,存在著亂序,丟包,包重復(fù)等缺點(diǎn),但它的速度快,包有界等優(yōu)點(diǎn),但在實(shí)際編程中要自己處理亂序啊之類的問題會發(fā)瘋 的。也許大家說用TCP就得了,第一點(diǎn)TCP的速度比較慢,第二個TCP是一個數(shù)據(jù)流一樣的東西,我們要傳數(shù)據(jù)的話還得處理數(shù)據(jù)的分界問題,也挺麻煩的。

針對這個問題,ENET這個庫實(shí)現(xiàn)了一個性能介于TCP與UDP之間,完成可靠(不丟包,按序),保持?jǐn)?shù)據(jù)的分界的優(yōu)點(diǎn)。編程起來也挺方便的。

下載地址:http://enet.bespin.org/SourceDistro.html


RakNet庫  https://github.com/OculusVR/RakNet

c#包裝:https://github.com/RainsSoft/RakNet-C-Sharp-binding-project

RakNet是一個基于UDP網(wǎng)絡(luò)傳輸協(xié)議的C++網(wǎng)絡(luò)庫,允許程序員在他們自己的程序中實(shí)現(xiàn)高效的網(wǎng)絡(luò)傳輸服務(wù)。通常情況下用于游戲,但也可以用于其它項(xiàng)目。

RakNet有以下特點(diǎn):

l 高性能 在同一臺計算機(jī)上,RakNet可以實(shí)現(xiàn)在兩個程序之間每秒傳輸25,000條信息;

l 容易使用 RakNet有在線用戶手冊,視頻教程。每一個函數(shù)和類都有詳細(xì)的講解,每一個功能都有自己的例程;

l 跨平臺,當(dāng)前RakNet支持Windows, Linux, Macs,可以建立在Visual Studio, GCC, Code,Blocks, DevCPP 和其它平臺上。

l 在線技術(shù)支持 RakNet有一個活躍的論壇,郵件列表,你只要給他們發(fā)信,他們可以在幾小時之內(nèi)回復(fù)你。

l 安全的傳輸 RakNet在你的代碼中自動使用SHA1, AES128, SYN,用RSA避免傳輸受到攻擊

l 音頻傳輸 用Speex編碼解碼,8位的音頻只需要每秒500字節(jié)傳輸。

l 遠(yuǎn)程終端 用RakNet,你能遠(yuǎn)程管理你的程序,包括程序的設(shè)置,密碼的管理和日志的管理。

l 目錄服務(wù)器 目錄服務(wù)器允許服務(wù)器列舉他們自己需要的客戶端,并與他們連接。

l Autopatcher Autopatcher系統(tǒng)將限制客戶端傳輸?shù)椒?wù)端的文件,這樣是為了避免一些不合法的用戶將一些不合法的文件傳輸?shù)椒?wù)端。

l 對象重載系統(tǒng)

l 網(wǎng)絡(luò)數(shù)據(jù)壓縮 BitStream類允許壓縮矢量,矩陣,四元數(shù)和在-1到1之間的實(shí)數(shù)。

l 遠(yuǎn)程功能調(diào)用

l 強(qiáng)健的通信層 可以保障信息按照不同的信道傳輸


UDT基于一種基于帶寬速率控制的擁塞控制算法進(jìn)行設(shè)計,主要用在小數(shù)量的bulk源共享富裕帶寬的情況下,最典型的例子就是建立在光纖廣域網(wǎng)上的網(wǎng)格計算,而在ISP提供帶寬有限的情況下運(yùn)行卻顯得消耗資源并性能不足。甚至可能被防火墻,或ISP服務(wù)商判斷為惡意帶寬使用攻擊。

RakNet是為游戲應(yīng)用而設(shè)計,對于實(shí)時性等游戲相關(guān)的網(wǎng)絡(luò)需求有很好的支持,對于大批量數(shù)據(jù)傳輸卻有點(diǎn)力所不及。raknet的缺點(diǎn)是不支持組播


★★★★ KCP - A Fast and Reliable ARQ Protocol

源碼: https://github.com/skywind3000/kcp

c#包裝:https://github.com/RainsSoft/kcp-csharp

KCP是一個快速可靠協(xié)議,能以比 TCP浪費(fèi)10%-20%的帶寬的代價,換取平均延遲降低 30%-40%,且最大延遲降低三倍的傳輸效果。純算法實(shí)現(xiàn),并不負(fù)責(zé)底層協(xié)議(如UDP)的收發(fā),需要使用者自己定義下層數(shù)據(jù)包的發(fā)送方式,以 callback的方式提供給 KCP。 連時鐘都需要外部傳遞進(jìn)來,內(nèi)部不會有任何一次系統(tǒng)調(diào)用。

整個協(xié)議只有 ikcp.h, ikcp.c兩個源文件,可以方便的集成到用戶自己的協(xié)議棧中。也許你實(shí)現(xiàn)了一個P2P,或者某個基于 UDP的協(xié)議,而缺乏一套完善的ARQ可靠協(xié)議實(shí)現(xiàn),那么簡單的拷貝這兩個文件到現(xiàn)有項(xiàng)目中,稍微編寫兩行代碼,即可使用。

KCP協(xié)議比較

如果網(wǎng)絡(luò)從來不丟包,那么你直接用 TCP就行了,甚至直接裸UDP都沒關(guān)系,但是網(wǎng)絡(luò)因?yàn)閬G包造成卡頓,特別是高峰時期丟包會上到10%的情況,移動設(shè)備上這個情況更糟糕。

我自己評測過很多,asio_kcp 的作者做過比較詳細(xì)的評測,在網(wǎng)絡(luò)變糟糕的情況下,KCP的延遲比 libenet低三倍以上:

worst network lag happen: asio: 10:51.21 291  295   269   268   231   195   249   230   225   204  enet: 10:51.21 1563   1520    1470    1482    1438    1454    1412    1637    1588    1540

更詳細(xì)的評測可以看這里:benchmark,感謝 asio_kcp 的作者 zhangyuan 詳細(xì)對比了 UDT, libenet和 kcp,并給出結(jié)論如下:

  • ASIO-KCP has good performace in wifi and phone network(3G, 4G).
  • The kcp is the first choice for realtime pvp game.
  • The lag is less than 1 second when network lag happen. 3 times better than enet when lag happen.
  • The enet is a good choice if your game allow 2 second lag.
  • UDT is a bad idea. It always sink into badly situation of more than serval seconds lag. And the recovery is not expected.

其他可以左右你選擇的情況:

  • enet has the problem of lack of doc. And it has lots of functions that you may intrest.
  • kcp's doc is chinese.
  • Good thing is the function detail which is writen in code is english. And you can use asio_kcp which is a good wrap.
  • The kcp is a simple thing. You will write more code if you want more feature.
  • UDT has a perfect doc. UDT may has more bug than others as I feeling.

我當(dāng)年主要測試了 KCP和 TCP/UDT的比較,掃了一眼 libenet覺得協(xié)議實(shí)現(xiàn)中規(guī)中矩,缺乏很多現(xiàn)代傳輸協(xié)議的技術(shù),所以并沒有詳細(xì)測試。而 asio-kcp的作者同時給出了KCP/enet/udt三者的詳細(xì)比較,為猶豫選擇的人提供了更多指引。

The bench mark is for realtime pvp game. For example, the multiplayer first person shooting game.
The requirement of realtime pvp game is packet is small and frequently. 
It wants a minimal delay. And the worst delay should be not so worse. 
The test client send 500 bytes in every 50 milliseconds. And the server send it back after receiving immediately.

Three frameworks were tested,

  • UDT - UDP-based Data Transfer Protocol
  • kcp - A Fast and Reliable ARQ Protocol
  • enet - Reliable UDP networking library


lidgren-network-gen3 

https://github.com/RainsSoft/lidgren-network-gen3

純C#實(shí)現(xiàn)的UDP開源庫,可用于游戲,支持NAT,內(nèi)部使用的可靠ARQ協(xié)議算法沒仔細(xì)去研究,不知道WIFI以及3G/4G下的表現(xiàn)怎么樣,暫時沒有測試數(shù)據(jù)

UDT協(xié)議詳解:
http://blog.csdn.net/bytxl/article/details/44979669

RakNet:http://blog.csdn.net/ww506772362/article/details/51076890
ENET庫(可靠UDP):
http://blog.csdn.net/yuanchunsi/article/details/70244338


posted on 2017-12-08 14:32 思月行云 閱讀(7386) 評論(3)  編輯 收藏 引用 所屬分類: C\C++

FeedBack:
# re: 幾種UDP網(wǎng)絡(luò)庫的整理Raknet,UDT,ENet,lidgren-network-gen3 2017-12-08 16:02 思月行云
# re: 幾種UDP網(wǎng)絡(luò)庫的整理Raknet,UDT,ENet,lidgren-network-gen3 2017-12-08 16:04 思月行云
KCP —— 快速可靠的網(wǎng)絡(luò)傳輸協(xié)議
https://www.oschina.net/p/kcp  回復(fù)  更多評論
  
# re: 幾種UDP網(wǎng)絡(luò)庫的整理Raknet,UDT,ENet,lidgren-network-gen3 2017-12-08 16:17 思月行云
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              亚洲精品影院| 亚洲小说欧美另类婷婷| 欧美a级一区二区| 美女精品在线观看| 久久野战av| 欧美二区在线播放| 欧美成人激情在线| 亚洲国产精品电影在线观看| 欧美激情导航| 亚洲欧洲久久| 日韩视频免费观看| 亚洲与欧洲av电影| 欧美一区在线直播| 久久久久久一区二区| 麻豆精品在线视频| 欧美激情第二页| 欧美三区在线| 国产欧美日韩亚洲精品| 国产综合av| 亚洲精品久久久久| 亚洲一区二区精品在线观看| 欧美一区二区| 美女脱光内衣内裤视频久久网站| 亚洲国内精品| 亚洲天堂av综合网| 久久精品72免费观看| 欧美成人中文字幕| 国产精品视频在线观看| 一区二区三区在线看| 日韩午夜av| 久久精品国产综合| 亚洲国产视频a| 亚洲专区一二三| 老司机精品视频网站| 欧美视频日韩| 永久免费毛片在线播放不卡| 亚洲精品影院| 亚洲欧美国产另类| 久久亚洲高清| 亚洲欧洲日本一区二区三区| 亚洲深夜av| 欧美亚洲在线| 欧美电影免费观看高清| 乱中年女人伦av一区二区| 欧美激情亚洲精品| 国产精品一区视频网站| 在线欧美日韩精品| 在线中文字幕不卡| 久久精品日韩一区二区三区| 蜜月aⅴ免费一区二区三区| 亚洲精品视频一区二区三区| 亚洲一级电影| 久热精品视频在线观看一区| 欧美日韩亚洲高清一区二区| 国产视频一区三区| 亚洲福利视频网站| 欧美一区二区高清| 欧美激情成人在线| 亚洲影视在线| 欧美高清自拍一区| 国产老肥熟一区二区三区| 亚洲国产三级在线| 午夜国产精品视频| 欧美激情国产高清| 亚洲欧美一区二区三区在线 | 欧美丝袜一区二区| 狠狠干综合网| 亚洲一区二区三区在线| 久久这里只精品最新地址| 日韩视频在线观看| 久久视频在线视频| 国产精品最新自拍| 一本色道久久综合亚洲精品不| 欧美在线看片a免费观看| 亚洲级视频在线观看免费1级| 亚洲欧洲av一区二区| 欧美日韩不卡合集视频| 伊人久久综合| 欧美一区二区高清| 亚洲精品一二三| 欧美在线在线| 欧美日韩视频在线一区二区观看视频| 亚洲国产婷婷| 美女免费视频一区| 欧美一级视频免费在线观看| 欧美日韩免费精品| 亚洲人成网站777色婷婷| 久久婷婷影院| 一区二区三区日韩欧美精品| 欧美国产日韩a欧美在线观看| 好吊一区二区三区| 欧美在线观看网站| 亚洲欧洲在线一区| 欧美精彩视频一区二区三区| 在线高清一区| 久久人人九九| 欧美影院成人| 国产欧美va欧美不卡在线| 中文在线一区| 欧美国产精品一区| 六十路精品视频| 一区二区在线视频播放| 久久深夜福利免费观看| 香蕉av福利精品导航| 国产精品视频自拍| 午夜精品久久久久| 午夜精品偷拍| 国内不卡一区二区三区| 久久国产精品一区二区三区四区 | 香蕉av777xxx色综合一区| 国产精品国产成人国产三级| 亚洲免费一级电影| 在线一区二区三区四区| 国产精品扒开腿做爽爽爽视频| 亚洲视频网站在线观看| 一本色道久久88综合亚洲精品ⅰ | 欧美一区二区视频免费观看| 国产伦精品一区二区三区高清版| 亚洲欧美日韩精品久久奇米色影视| 日韩视频在线播放| 欧美色偷偷大香| 销魂美女一区二区三区视频在线| 亚洲综合视频在线| 国产亚洲成精品久久| 久久精品二区三区| 欧美在线播放高清精品| 国产亚洲在线| 久久影院午夜论| 久久综合色播五月| 亚洲靠逼com| 一区二区三区av| 国产日韩欧美在线| 免费欧美在线| 免费永久网站黄欧美| 亚洲影视九九影院在线观看| 亚洲欧美变态国产另类| 激情一区二区三区| 亚洲国产欧美一区二区三区久久| 欧美日韩国产综合在线| 午夜伦理片一区| 久久精品女人的天堂av| 亚洲精华国产欧美| 一区二区三区精密机械公司 | 猫咪成人在线观看| 日韩午夜剧场| 亚洲新中文字幕| 国内伊人久久久久久网站视频| 欧美成在线视频| 欧美精品97| 久久婷婷国产综合精品青草| 欧美二区在线播放| 亚洲欧美激情诱惑| 久久亚洲一区| 亚洲午夜av在线| 久久成人羞羞网站| 日韩视频免费看| 一区二区三区.www| 好看的日韩视频| 亚洲精品一区中文| 国产午夜精品在线| 亚洲日本va午夜在线影院| 国产日韩精品入口| 亚洲电影中文字幕| 国产欧美va欧美va香蕉在| 你懂的视频一区二区| 国产精品免费观看在线| 欧美福利小视频| 国产精品一区二区久激情瑜伽| 欧美福利网址| 国产欧美在线观看一区| 亚洲激情影视| 伊人男人综合视频网| 一区二区三区免费看| 亚洲剧情一区二区| 久久黄色级2电影| 亚洲欧美日韩国产中文| 欧美成人高清| 久久夜色精品国产噜噜av| 欧美视频网址| 亚洲风情亚aⅴ在线发布| 国产日韩精品一区二区三区| 夜夜嗨一区二区| 亚洲欧洲三级电影| 久久国产精品黑丝| 亚洲综合导航| 欧美日本中文| 欧美国产精品久久| 国内一区二区在线视频观看| 亚洲性线免费观看视频成熟| 亚洲精品影院| 久色婷婷小香蕉久久| 久久精品夜色噜噜亚洲aⅴ| 欧美午夜一区| 亚洲日本无吗高清不卡| 亚洲欧洲一区二区三区| 久久精品日韩| 美腿丝袜亚洲色图| 国产综合欧美| 欧美在线观看视频一区二区三区 | 欧美成年人视频网站|