色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹一種基于UDP快速可靠的KCP協議

jf_uPRfTJDa ? 來源:移動Labs ? 2023-04-01 14:45 ? 次閱讀

Labs 導讀

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 02KCP的協議特性

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 03KCP應用案例

KCP協議的商業案例:

明日帝國:Game K17的《明日帝國》(Google Play),使用KCP加速游戲消息,讓全球玩家流暢聯網。

仙靈大作戰:4399的MOBA游戲,使用KCP優化游戲同步。

CC:網易CC使用kcp加速視頻推流,有效提高流暢性。

BOBO:網易BOBO使用kcp加速主播推流。

云帆加速:使用KCP加速文件傳輸和視頻推流,優化了臺灣主播推流的流暢度。

SpatialOS:大型多人分布式游戲服務端引擎,BigWorld的后繼者,使用KCP加速數據傳輸。

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






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1390

    瀏覽量

    79647
  • UDP協議
    +關注

    關注

    0

    文章

    70

    瀏覽量

    12859
  • RTO
    RTO
    +關注

    關注

    0

    文章

    16

    瀏覽量

    11236

原文標題:技術 | 淺談KCP協議

文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    通信必備知識!TCP與UDP協議介紹及使用

    TCP與UDP是兩個最常用的通訊協議。TCP是面向連接的協議,需要在收發數據前與對方建立可靠的連接,建立連接的過程為3次握手,斷開連接的過程為4次揮手,確保數據傳輸的
    的頭像 發表于 03-15 08:19 ?2117次閱讀
    通信必備知識!TCP與<b class='flag-5'>UDP</b><b class='flag-5'>協議</b><b class='flag-5'>介紹</b>及使用

    基于UDP協議的網絡通信應用程序

    )嵌入式Linux應用程序開發-(8)TCP-IP網絡通信應用程序(TCP-Server) 相比起TCP/IP協議可靠,面向連接,基于字節流通信這些特性,UDP協議
    發表于 11-05 08:29

    TCP和UDP協議簡析

    。二、TCP編程模型傳輸控制協議TCP (Transmission Control Protocol)是一種面向連接、可靠協議。建立個T
    發表于 12-15 08:13

    UDP協議,UDP協議是什么意思

    UDP協議,UDP協議是什么意思 UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據包
    發表于 03-29 17:35 ?1520次閱讀

    udp協議及包格式是什么

    也許有的讀者會問,既然UDP一種可靠的網絡協議,那么還有什么使用價值或必要呢?其實不然,在有些情況下UDP
    發表于 12-08 14:38 ?9984次閱讀
    <b class='flag-5'>udp</b><b class='flag-5'>協議</b>及包格式是什么

    tcp ip 協議講座:介紹IP協議UDP協議

    介紹了IP協議(包頭和IP分包),UDP協議(包頭)
    的頭像 發表于 07-03 08:05 ?3110次閱讀

    tcp和udp協議的異同

    UDP 協議 UDP 協議是無連接、不可靠個傳輸層協議
    的頭像 發表于 11-12 14:45 ?4194次閱讀
    tcp和<b class='flag-5'>udp</b><b class='flag-5'>協議</b>的異同

    什么是UDP協議

    UDP協議即用戶數據報協議,該協議主要為應用程序提供了一種無需建立連接就可以發送封裝的 IP 數據包的方法。nternet的傳輸層有兩個主要
    發表于 05-06 15:19 ?2466次閱讀

    UDP能否像TCP樣實現可靠傳輸?

    UDP (User Datagram Protocol)是一種無連接的協議,基于數據報的傳輸方式。在網絡通信中,它通常用于快速傳輸數據包,但卻無法保證數據包的
    的頭像 發表于 06-05 09:48 ?764次閱讀
    <b class='flag-5'>UDP</b>能否像TCP<b class='flag-5'>一</b>樣實現<b class='flag-5'>可靠</b>傳輸?

    UDP能否像TCP樣實現可靠傳輸?

    UDP(UserDatagramProtocol)是一種無連接的協議,基于數據報的傳輸方式。在網絡通信中,它通常用于快速傳輸數據包,但卻無法保證數據包的
    的頭像 發表于 06-08 14:50 ?1010次閱讀
    <b class='flag-5'>UDP</b>能否像TCP<b class='flag-5'>一</b>樣實現<b class='flag-5'>可靠</b>傳輸?

    udp是什么協議 TCP與UDP的區別

    TCP協議提供可靠的數據傳輸,UDP協議提供盡量高效的數據傳輸。TCP協議通過使用序列號、確認應答等機制,保證數據傳輸的
    的頭像 發表于 06-26 17:47 ?1.2w次閱讀

    FPGA以太網-UDP協議

    UDP協議一種可靠協議,也就是說在傳輸的過程中如果出錯了,并不會去重新傳輸這個協議包,這個
    發表于 07-10 11:00 ?1831次閱讀
    FPGA以太網-<b class='flag-5'>UDP</b><b class='flag-5'>協議</b>

    IP和UDP協議介紹

    電子發燒友網站提供《IP和UDP協議介紹.pdf》資料免費下載
    發表于 07-31 16:51 ?0次下載
    IP和<b class='flag-5'>UDP</b><b class='flag-5'>協議</b><b class='flag-5'>介紹</b>

    UDP與TCP的主要區別 UDP能否像TCP樣實現可靠傳輸?

    UDP與TCP的主要區別 UDP能否像TCP樣實現可靠傳輸?TCP如何實現可靠性傳輸? UDP
    的頭像 發表于 01-22 16:10 ?925次閱讀

    udp是什么協議udp協議介紹

    UDP(User Datagram Protocol,用戶數據報協議)是一種無連接的傳輸層協議,不保證數據傳輸的可靠性,只負責把數據包發送給
    的頭像 發表于 04-19 15:57 ?1735次閱讀
    主站蜘蛛池模板: 摸老师丝袜小内内摸出水 | 国产精品资源在线观看网站 | 久久成人免费观看草草影院 | 浪货嗯啊趴下NP粗口黄暴 | 2022国产91精品久久久久久 | 91热久久免费频精品动漫99 | 成人在线免费视频播放 | 亚洲精品高清中文字幕完整版 | 亚洲AV國產国产久青草 | 亚洲精品成人AV在线观看爽翻 | 一二三四中文字幕在线看 | 夜夜狂射影院欧美极品 | voyeurhit农村夫妻偷拍 | 久久精品嫩草影院免费看 | 美女脱了内裤张开腿让男人桶到爽 | 戳女人屁股流水羞羞漫画 | 国产h视频在线观看网站免费 | 国模玲玲自拍337p | 午夜在线视频国产极品片 | 精品一区二区三区免费观看 | 亚洲日韩乱码人人爽人人澡人 | 一久久| 精品国产国产精2020久久日 | 97久久精品人人槡人妻人 | 麻豆乱码一卡二卡三卡视频 | 欧美成人免费观看久久 | 久久精品国产视频澳门 | 久久久影院亚洲精品 | 国产性色AV内射白浆肛交后入 | 久久久久久免费观看 | 狠狠干狠狠色 | 国产情侣真实露脸在线 | 国产在线精彩亚洲久久 | 俄罗斯大白屁股 | 在线广播收听 | 一本大道熟女人妻中文字幕在线 | 东京热 百度影音 | 久久精品一区 | 顶级欧美不卡一区二区三区 | 免费果冻传媒2021视频 | 憋尿调教绝望之岛 |