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

Fork me on GitHub
隨筆 - 215  文章 - 13  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456


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

常用鏈接

留言簿(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協議是什么?是一種基于UDP的數據傳輸協議(UDP-based Data Transfer Protocol,簡稱UDT)。

  • UDT協議的主要作用是什么?UDT的主要目的是支持高速廣域網上的海量數據傳輸,而互聯網上的標準數據傳輸協議TCP在高帶寬長距離網絡上性能很差。

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

  • UDT的使用場景是什么?由于UDT完全在UDP上實現,它也可以應用在除了高速數據傳輸之外的其它應用領域,例如點到點技術(P2P),防火墻穿透,多媒體數據傳輸等等。

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


    UDT協議的主要特性有哪些?

  • 基于UDP的應用層協議: 有基本網絡知識的朋友都知道TCP和UDP的區別和使用場景,但是有沒有一種協議能同時兼顧TCP協議的安全可靠和UDP協議的高效,那么UDT就是一種。

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

  • 可靠的協議:依靠包序號機制、接收者的ACK響應和丟包報告、ACK序號機制、重傳機制(基于丟包報告和超時處理)來實現數據傳輸的可靠性。

  • 雙工的協議:每個UDT實例包含發送端和接收端的信息。

  • 單播的數據流。

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

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


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

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

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

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

針對這個問題,ENET這個庫實現了一個性能介于TCP與UDP之間,完成可靠(不丟包,按序),保持數據的分界的優點。編程起來也挺方便的。

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


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

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

RakNet是一個基于UDP網絡傳輸協議的C++網絡庫,允許程序員在他們自己的程序中實現高效的網絡傳輸服務。通常情況下用于游戲,但也可以用于其它項目。

RakNet有以下特點:

l 高性能 在同一臺計算機上,RakNet可以實現在兩個程序之間每秒傳輸25,000條信息;

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

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

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

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

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

l 遠程終端 用RakNet,你能遠程管理你的程序,包括程序的設置,密碼的管理和日志的管理。

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

l Autopatcher Autopatcher系統將限制客戶端傳輸到服務端的文件,這樣是為了避免一些不合法的用戶將一些不合法的文件傳輸到服務端。

l 對象重載系統

l 網絡數據壓縮 BitStream類允許壓縮矢量,矩陣,四元數和在-1到1之間的實數。

l 遠程功能調用

l 強健的通信層 可以保障信息按照不同的信道傳輸


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

RakNet是為游戲應用而設計,對于實時性等游戲相關的網絡需求有很好的支持,對于大批量數據傳輸卻有點力所不及。raknet的缺點是不支持組播


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

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

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

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

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

KCP協議比較

如果網絡從來不丟包,那么你直接用 TCP就行了,甚至直接裸UDP都沒關系,但是網絡因為丟包造成卡頓,特別是高峰時期丟包會上到10%的情況,移動設備上這個情況更糟糕。

我自己評測過很多,asio_kcp 的作者做過比較詳細的評測,在網絡變糟糕的情況下,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

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

  • 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.

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

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#實現的UDP開源庫,可用于游戲,支持NAT,內部使用的可靠ARQ協議算法沒仔細去研究,不知道WIFI以及3G/4G下的表現怎么樣,暫時沒有測試數據

UDT協議詳解:
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網絡庫的整理Raknet,UDT,ENet,lidgren-network-gen3 2017-12-08 16:02 思月行云
# re: 幾種UDP網絡庫的整理Raknet,UDT,ENet,lidgren-network-gen3 2017-12-08 16:04 思月行云
KCP —— 快速可靠的網絡傳輸協議
https://www.oschina.net/p/kcp  回復  更多評論
  
# re: 幾種UDP網絡庫的整理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>
              久久精品国产第一区二区三区最新章节| 欧美亚洲综合另类| 在线观看91精品国产入口| 欧美日韩国产精品专区| 一二美女精品欧洲| 欧美一进一出视频| 亚洲一区高清| 亚洲一区二区三区影院| 亚洲日本成人在线观看| 国产精品卡一卡二卡三| 欧美日韩三级电影在线| 欧美片第一页| 久久精品国产免费| 亚洲剧情一区二区| 久久久亚洲一区| 久久精品在线免费观看| 欧美暴力喷水在线| 99精品99| 黄色成人91| 国产精品成人一区二区| 国产精品家庭影院| 国产精品久久久久久久久免费| 欧美午夜视频在线| 久久久水蜜桃av免费网站| 日韩亚洲国产精品| 久久一区免费| 欧美成人视屏| 亚洲免费影视第一页| 影音先锋久久久| 国产精品乱人伦中文| 欧美激情1区2区| 欧美日本久久| 美女被久久久| 欧美精品 国产精品| 久久人人97超碰国产公开结果| 亚洲一卡二卡三卡四卡五卡| 欧美国产精品久久| 亚洲欧洲日产国码二区| 久久久久国产精品厨房| 亚洲一区二区精品在线观看| 在线不卡中文字幕| 亚洲精品视频在线观看网站| 亚洲国内欧美| 一区二区激情| 亚洲精品美女91| 亚洲伊人伊色伊影伊综合网 | 91久久久久久国产精品| 亚洲另类视频| 亚洲风情在线资源站| 葵司免费一区二区三区四区五区| 免费观看成人www动漫视频| 亚洲高清免费| 亚洲一区二区动漫| 亚洲电影免费观看高清| 亚洲精品乱码久久久久久蜜桃91| 一区二区不卡在线视频 午夜欧美不卡'| 欧美激情1区2区3区| 99视频在线观看一区三区| 亚洲国产美女| 亚洲伊人一本大道中文字幕| 久久久一二三| 久久国产精品网站| 久久疯狂做爰流白浆xx| 欧美大片一区二区| 国产欧美韩日| 国产欧美日韩视频一区二区三区| 国产精品久久久久久一区二区三区 | 亚洲欧美国产日韩天堂区| 久久精品三级| 久久精品一区二区三区中文字幕| 小处雏高清一区二区三区| 欧美国产91| 性欧美超级视频| 欧美人牲a欧美精品| 欧美大片免费观看在线观看网站推荐| 另类激情亚洲| 国产有码在线一区二区视频| 国产综合色一区二区三区| 亚洲啪啪91| 亚洲精品久久久久中文字幕欢迎你 | 9色精品在线| 亚洲图片欧美一区| 噜噜噜久久亚洲精品国产品小说| 欧美www视频| 亚洲欧美日韩国产另类专区| 欧美国产日韩a欧美在线观看| 国产亚洲福利一区| 激情欧美日韩一区| 亚洲线精品一区二区三区八戒| 久久久久久自在自线| 老色鬼久久亚洲一区二区| 美女黄色成人网| 亚洲国产精品一区在线观看不卡 | 一本久久a久久精品亚洲| 久久综合中文色婷婷| 国产在线一区二区三区四区| 午夜精品一区二区三区电影天堂 | 午夜精品久久久久久久99樱桃 | 久久精品理论片| 国产农村妇女精品一二区| 在线亚洲观看| 亚洲欧洲一区二区在线播放| 久久综合伊人77777麻豆| 国内成+人亚洲+欧美+综合在线| 午夜免费在线观看精品视频| aa成人免费视频| 亚洲自拍电影| 欧美高清hd18日本| 国产一区二区三区视频在线观看| 久久国产日本精品| 日韩亚洲欧美综合| 久久综合激情| 亚洲精品久久久一区二区三区| 亚洲黄色尤物视频| 久久久久久久久久久久久女国产乱| 国内一区二区三区| 午夜精品久久99蜜桃的功能介绍| 欧美激情五月| 欧美日韩黄色一区二区| 亚洲资源在线观看| 亚洲精品乱码| 免费成人美女女| 这里只有精品电影| 亚洲电影有码| 欧美色精品在线视频| 欧美中文字幕第一页| 一区二区精品在线观看| 国产日韩精品视频一区二区三区| 久色成人在线| 欧美日韩大片| 在线视频你懂得一区| 亚洲国产精品成人精品| 欧美色视频在线| 一区二区三区高清在线 | 欧美图区在线视频| 久久精品一区二区三区中文字幕| 一区二区三区四区五区视频 | 国产亚洲a∨片在线观看| 欧美成人a∨高清免费观看| 欧美在线播放视频| 国产欧美成人| 久久成人一区二区| 亚洲欧美日韩在线| 国产精品专区h在线观看| 麻豆成人在线观看| 久久综合中文字幕| 亚洲综合激情| 亚洲深夜福利| 国产精品久久久久毛片软件| 亚洲尤物视频在线| 久久久女女女女999久久| 在线播放国产一区中文字幕剧情欧美 | 欧美精品色综合| 久久精品人人| 久久精品夜夜夜夜久久| 影音先锋久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久久久久久久免费樱桃| 亚洲一区二区免费视频| 亚洲一级黄色片| 国产欧美在线视频| 亚洲免费电影在线观看| 国产精品扒开腿做爽爽爽视频| 女女同性精品视频| 国产欧美一区二区精品性| 亚洲精品一区二区三区不| 极品中文字幕一区| 亚洲欧美激情精品一区二区| 99这里只有久久精品视频| 久久米奇亚洲| 久久九九热re6这里有精品 | 亚洲一区二区精品视频| 免费日韩av片| 老鸭窝91久久精品色噜噜导演| 国产精品久久国产精麻豆99网站| 欧美在线啊v| 欧美午夜不卡| 亚洲精品一区二区三区在线观看| 国产精品激情电影| 亚洲人成啪啪网站| 国产女主播视频一区二区| 鲁大师成人一区二区三区| 国产日韩亚洲欧美综合| 欧美激情网友自拍| 国产专区精品视频| 亚洲欧美精品在线| 亚洲国产精品一区制服丝袜| 欧美一区二区黄| 欧美在线一级视频| 国产精品三级视频| 亚洲视频视频在线| 亚洲第一区在线观看| 欧美一区二区高清在线观看| 欧美一级理论性理论a| 开心色5月久久精品| 亚洲欧美日韩一区二区三区在线观看 | 欧美一级二区| 久久精品系列| 欧美揉bbbbb揉bbbbb| 久久伊人亚洲|