在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹一種基于UDP快速可靠的KCP協(xié)議

jf_uPRfTJDa ? 來(lái)源:移動(dòng)Labs ? 2023-04-01 14:45 ? 次閱讀

Labs 導(dǎo)讀

KCP是一種基于UDP的快速可靠協(xié)議,能以比TCP浪費(fèi)10%-20%的帶寬的代價(jià),換取平均延遲降低30%-40%,且最大延遲可以降低70%的傳輸效果,是一種純算法的二進(jìn)制協(xié)議。

Part 01什么是KCP協(xié)議

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

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

所以可以把KCP協(xié)議看做應(yīng)用層協(xié)議,底層采用UDP協(xié)議。但是在嚴(yán)格意義上講KCP并不是一種網(wǎng)絡(luò)傳輸協(xié)議,它是為UDP寫的可靠傳輸算法,它是把TCP的主要可靠傳輸機(jī)制移植到了UDP身上,讓UDP變的可靠了起來(lái)。

Part 02KCP的協(xié)議特性

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

1、RTO不翻倍

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

2、選擇重傳

TCP丟包時(shí)會(huì)全部重傳從丟包開始以后的數(shù)據(jù),而KCP是選擇性重傳,只重傳真正丟失的數(shù)據(jù)包。

3、快速重傳

TCP重傳模式超時(shí)重傳:超過(guò)規(guī)定的時(shí)間RTO則重傳。

快速重傳:收到3個(gè)冗余ACK,不去等待RTO,直接重傳。比如發(fā)送端發(fā)送了1、2、3、4、5...幾個(gè)包后,然后收到遠(yuǎn)端的ACK:1、3、4,當(dāng)收到ACK3時(shí),KCP知道2被跳過(guò)1次,收到ACK4時(shí),知道2被跳過(guò)2次,收到Ack5時(shí),此時(shí)可以認(rèn)為2已丟失,不用等待RTO,直接進(jìn)行重傳2,大大改善了丟包時(shí)的傳輸速度。

4、延遲ACK vs 非延遲ACK

TCP在連續(xù)ARQ協(xié)議中,不會(huì)將一連串的每個(gè)數(shù)據(jù)都響應(yīng)一次,而是延遲發(fā)送ACK,目的是為充分利用帶寬,這樣延遲發(fā)送ACK導(dǎo)致RTT時(shí)間較大,延長(zhǎng)了丟包時(shí)的判斷過(guò)程;而KCP的ACK是否延遲發(fā)送可以調(diào)節(jié)。

5、UNA vs ACK+UNA

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

6、非退讓流控

KCP正常模式同TCP一樣使用公平退讓法則,即發(fā)送窗口大小由發(fā)送緩存大小、接收端剩余接收緩存大小、丟包退讓及慢啟動(dòng)這四要素決定。但傳送及時(shí)性要求很高的小數(shù)據(jù)時(shí),可選擇通過(guò)配置跳過(guò)后兩步,僅用前兩項(xiàng)來(lái)控制發(fā)送頻率。以犧牲部分公平性及帶寬利用率為代價(jià),換取流暢傳輸?shù)男Ч?/p>

Part 03KCP應(yīng)用案例

KCP協(xié)議的商業(yè)案例:

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

仙靈大作戰(zhàn):4399的MOBA游戲,使用KCP優(yōu)化游戲同步。

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

BOBO:網(wǎng)易BOBO使用kcp加速主播推流。

云帆加速:使用KCP加速文件傳輸和視頻推流,優(yōu)化了臺(tái)灣主播推流的流暢度。

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

KCP的優(yōu)勢(shì)在丟包率高的網(wǎng)絡(luò)環(huán)境下才會(huì)顯示出來(lái)。如果無(wú)丟包,TCP和KCP的效率差別打不,可能只是少了建立/關(guān)閉連接。一般來(lái)講,在公網(wǎng)上傳輸?shù)膽?yīng)用均可使用,特別是對(duì)實(shí)時(shí)性要求較高的程序,如客戶端與服務(wù)端交互很頻繁的游戲。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1394

    瀏覽量

    80073
  • UDP協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    12980
  • RTO
    RTO
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    11279

原文標(biāo)題:技術(shù) | 淺談KCP協(xié)議

文章出處:【微信號(hào):5G通信,微信公眾號(hào):5G通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    通信必備知識(shí)!TCP與UDP協(xié)議介紹及使用

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

    基于UDP協(xié)議的網(wǎng)絡(luò)通信應(yīng)用程序

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

    TCP和UDP協(xié)議簡(jiǎn)析

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

    Linux下的UDP協(xié)議編程

    Linux下的UDP協(xié)議編程 介紹UDP協(xié)議,并提供個(gè)適用于客戶端和服務(wù)器端的實(shí)例子程序。 
    發(fā)表于 10-16 22:22 ?4034次閱讀
    Linux下的<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>編程

    UDP協(xié)議,UDP協(xié)議是什么意思

    UDP協(xié)議,UDP協(xié)議是什么意思 UDP 是User Datagram Protocol的簡(jiǎn)稱, 中文名是用戶數(shù)據(jù)包
    發(fā)表于 03-29 17:35 ?1532次閱讀

    udp協(xié)議及包格式是什么

    也許有的讀者會(huì)問(wèn),既然UDP一種可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價(jià)值或必要呢?其實(shí)不然,在有些情況下UDP
    發(fā)表于 12-08 14:38 ?1w次閱讀
    <b class='flag-5'>udp</b><b class='flag-5'>協(xié)議</b>及包格式是什么

    tcp ip 協(xié)議講座:介紹IP協(xié)議UDP協(xié)議

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

    tcp和udp協(xié)議的異同

    UDP 協(xié)議 UDP 協(xié)議是無(wú)連接、不可靠個(gè)傳輸層協(xié)議
    的頭像 發(fā)表于 11-12 14:45 ?4279次閱讀
    tcp和<b class='flag-5'>udp</b><b class='flag-5'>協(xié)議</b>的異同

    UDP能否像TCP樣實(shí)現(xiàn)可靠傳輸?

    UDP (User Datagram Protocol)是一種無(wú)連接的協(xié)議,基于數(shù)據(jù)報(bào)的傳輸方式。在網(wǎng)絡(luò)通信中,它通常用于快速傳輸數(shù)據(jù)包,但卻無(wú)法保證數(shù)據(jù)包的
    的頭像 發(fā)表于 06-05 09:48 ?817次閱讀
    <b class='flag-5'>UDP</b>能否像TCP<b class='flag-5'>一</b>樣實(shí)現(xiàn)<b class='flag-5'>可靠</b>傳輸?

    UDP能否像TCP樣實(shí)現(xiàn)可靠傳輸?

    UDP(UserDatagramProtocol)是一種無(wú)連接的協(xié)議,基于數(shù)據(jù)報(bào)的傳輸方式。在網(wǎng)絡(luò)通信中,它通常用于快速傳輸數(shù)據(jù)包,但卻無(wú)法保證數(shù)據(jù)包的
    的頭像 發(fā)表于 06-08 14:50 ?1052次閱讀
    <b class='flag-5'>UDP</b>能否像TCP<b class='flag-5'>一</b>樣實(shí)現(xiàn)<b class='flag-5'>可靠</b>傳輸?

    udp是什么協(xié)議 TCP與UDP的區(qū)別

    TCP協(xié)議提供可靠的數(shù)據(jù)傳輸,UDP協(xié)議提供盡量高效的數(shù)據(jù)傳輸。TCP協(xié)議通過(guò)使用序列號(hào)、確認(rèn)應(yīng)答等機(jī)制,保證數(shù)據(jù)傳輸?shù)?/div>
    的頭像 發(fā)表于 06-26 17:47 ?1.2w次閱讀

    FPGA以太網(wǎng)-UDP協(xié)議

    UDP協(xié)議一種可靠協(xié)議,也就是說(shuō)在傳輸?shù)倪^(guò)程中如果出錯(cuò)了,并不會(huì)去重新傳輸這個(gè)協(xié)議包,這個(gè)
    發(fā)表于 07-10 11:00 ?1899次閱讀
    FPGA以太網(wǎng)-<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>

    IP和UDP協(xié)議介紹

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

    UDP與TCP的主要區(qū)別 UDP能否像TCP樣實(shí)現(xiàn)可靠傳輸?

    UDP與TCP的主要區(qū)別 UDP能否像TCP樣實(shí)現(xiàn)可靠傳輸?TCP如何實(shí)現(xiàn)可靠性傳輸? UDP
    的頭像 發(fā)表于 01-22 16:10 ?1008次閱讀

    udp是什么協(xié)議udp協(xié)議介紹

    UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是一種無(wú)連接的傳輸層協(xié)議,不保證數(shù)據(jù)傳輸?shù)?b class='flag-5'>可靠性,只負(fù)責(zé)把數(shù)據(jù)包發(fā)送給
    的頭像 發(fā)表于 04-19 15:57 ?1946次閱讀
    主站蜘蛛池模板: 天天操女人 | 人人做人人干 | 亚洲性色成人 | 激情综合网五月婷婷 | 久青草国产手机视频免费观看 | 韩彩英三级无删版甜性涩爱 | 中文字幕第一页在线 | 性夜影院爽黄a免费视频 | 日韩三级视频在线观看 | 中国一级毛片aaa片 中国一级特黄aa毛片大片 | 在线你懂的视频 | 永久黄网站色视频免费 | 天堂一区二区三区在线观看 | 日b毛片 | 欧美潘金莲一级风流片a级 欧美片欧美日韩国产综合片 | 国产一级特黄老妇女大片免费 | 午夜男人网| 澳门三级bd高清 | 400部大量精品情侣网站 | 国语对白老女人8av 孩交精品xxxx视频视频 | 午夜看一级特黄a大片黑 | 色天天综合色天天天天看大 | 九月婷婷亚洲综合在线 | 国产精品嫩草影院在线播放 | 欧美性受xxxx| 性开放网站 | av2021天堂网手机版 | 狠狠色婷婷七月色综合 | 欧美深夜福利 | 欧美日a | 你懂的在线观看网址 | 性欧美黑人xxxx | 手机在线看片福利盒子 | 欧美天堂在线观看 | 色偷偷狠狠色综合网 | 成人亚洲网站www在线观看 | 亚洲人成电影在线 | 5151四虎永久在线精品免费 | 国模大尺度酒店私拍视频拍拍 | 在线观看亚洲成人 | 一级特黄高清完整大片 |