成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談KCP協議

移動開發
KCP是一種基于UDP的快速可靠協議,能以比TCP浪費10%-20%的帶寬的代價,換取平均延遲降低30%-40%,且最大延遲可以降低70%的傳輸效果,是一種純算法的二進制協議。

Part 01

什么是KCP協議 

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

KCP整個協議只有ikcp.h、ikcp.c兩個源文件,可以方便用戶根據自己的需要集成到用戶自己的協議棧中。

所以可以把KCP協議看做應用層協議,底層采用UDP協議。但是在嚴格意義上講KCP并不是一種網絡傳輸協議,它是為UDP寫的可靠傳輸算法,它是把TCP的主要可靠傳輸機制移植到了UDP身上,讓UDP變的可靠了起來。

Part 02

KCP的協議特性  

TCP是為流量(每秒內可以傳輸多少KB的數據)設計的,講究的是充分利用帶寬。而KCP是為流速(單個數據包從一端發送到一端需要多少時間)設計的,以10%-20%帶寬浪費的代價換取了比TCP快30%-40%的傳輸速度。如果將TCP信道比喻為一條流速很慢,但每秒流量很大的大運河,那么KCP就是水流湍急的小激流。KCP有正常模式和快速模式兩種,通過以下策略達到提高流速的結果。

1、RTO不翻倍

RTO(Retransmission TimeOut)重傳超時時間,TCP超時計算是RTOx2,這樣連續丟三次包就變成RTO×8了,而KCP啟動快速模式后不x2,只是x1.5,提高了傳輸速度。

2、選擇重傳

TCP丟包時會全部重傳從丟包開始以后的數據,而KCP是選擇性重傳,只重傳真正丟失的數據包。

3、快速重傳

TCP重傳模式超時重傳:超過規定的時間RTO則重傳。

快速重傳:收到3個冗余ACK,不去等待RTO,直接重傳。比如發送端發送了1、2、3、4、5...幾個包后,然后收到遠端的ACK:1、3、4,當收到ACK3時,KCP知道2被跳過1次,收到ACK4時,知道2被跳過2次,收到Ack5時,此時可以認為2已丟失,不用等待RTO,直接進行重傳2,大大改善了丟包時的傳輸速度。

4、延遲ACK vs 非延遲ACK

TCP在連續ARQ協議中,不會將一連串的每個數據都響應一次,而是延遲發送ACK,目的是為充分利用帶寬,這樣延遲發送ACK導致RTT時間較大,延長了丟包時的判斷過程;而KCP的ACK是否延遲發送可以調節

5、UNA vs ACK+UNA

ARQ模型響應有兩種,UNA(此編號前所有包已收到,如TCP)和ACK(該編號包已收到),光用UNA將導致全部重傳,光用ACK則丟失成本太高,以往協議都是二選其一,TCP使用UNA模式,有丟包全部重傳問題;KCP有單獨ACK,且數據包和ACK包都帶UNA信息,有效降低ACK丟失成本。

6、非退讓流控

KCP正常模式同TCP一樣使用公平退讓法則,即發送窗口大小由發送緩存大小、接收端剩余接收緩存大小、丟包退讓及慢啟動這四要素決定。但傳送及時性要求很高的小數據時,可選擇通過配置跳過后兩步,僅用前兩項來控制發送頻率。以犧牲部分公平性及帶寬利用率為代價,換取流暢傳輸的效果。

Part 03

KCP應用案例 

?KCP協議的商業案例:

  • 明日帝國:Game K17的《明日帝國》(Google Play),使用KCP加速游戲消息,讓全球玩家流暢聯網。
  • 仙靈大作戰:4399的MOBA游戲,使用KCP優化游戲同步。
  • CC:網易CC使用kcp加速視頻推流,有效提高流暢性。
  • BOBO:網易BOBO使用kcp加速主播推流。
  • 云帆加速:使用KCP加速文件傳輸和視頻推流,優化了臺灣主播推流的流暢度。
  • SpatialOS:大型多人分布式游戲服務端引擎,BigWorld的后繼者,使用KCP加速數據傳輸。

KCP的優勢在丟包率高的網絡環境下才會顯示出來。如果無丟包,TCP和KCP的效率差別打不,可能只是少了建立/關閉連接。一般來講,在公網上傳輸的應用均可使用,特別是對實時性要求較高的程序,如客戶端與服務端交互很頻繁的游戲。

責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2010-09-10 14:15:19

daytime協議時間協議

2010-09-17 14:49:18

Ethereal網絡協

2010-09-08 15:06:26

藍牙協議棧

2010-07-12 17:13:12

SNMP協議管理

2010-07-01 16:33:08

UDP協議

2010-07-09 10:28:48

距離向量路由協議

2023-12-29 20:25:51

2010-06-12 17:28:35

協議封裝

2010-07-07 17:56:21

2014-09-03 09:52:45

開源

2010-09-17 15:12:28

2010-09-09 15:25:35

網絡協議

2010-06-10 14:10:58

安全電子郵件協議

2010-06-28 09:50:42

AMF協議

2011-08-03 15:51:48

Objective-C 協議 委托

2010-07-12 16:27:23

鏈路狀態路由選擇協議

2019-04-03 10:28:04

2010-07-08 13:09:49

路由信息協議

2019-12-05 10:54:34

集群RedisGossip

2010-06-25 15:22:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品完整版 | 伊人看片| 97久久精品午夜一区二区 | av一级在线观看 | 欧美在线高清 | 国产精品一区在线 | 久久亚洲国产精品日日av夜夜 | 日韩中字幕| 欧美极品在线 | 精品视频在线一区 | 最新中文字幕在线播放 | 天天综合永久入口 | 欧美综合一区 | 国产一区二区影院 | 国产视频观看 | 亚洲精品日韩在线 | 久草在线视频中文 | 日韩视频一区在线观看 | 亚洲在线 | 久久精品手机视频 | 黄色国产在线播放 | 一区二区三区精品在线 | 国产99久久久国产精品 | 日韩av黄色 | 91热在线| 殴美黄色录像 | 午夜精品 | 精品一区二区视频 | 亚洲欧美中文日韩在线v日本 | 午夜视频一区二区 | 69av在线视频 | 精品视频一区二区 | 成人欧美一区二区三区 | 日韩在线中文 | 欧美在线亚洲 | 国产一区二区欧美 | 日韩一区二区三区四区五区六区 | 九色在线| 日韩精品一区二区三区在线观看 | 亚洲在线中文字幕 | 在线观看欧美日韩视频 |