剖析KCP以及KCP在游戲中是如何使用的

        親愛的各位讀者你們好,由于前段時間忙于部分項目的重構和優化,未能及時更新文章,不少讀者催更,哈哈,我還是很開心能抽出時間給大家再來分享下kcp的相關技術內幕,以及之前完善自己的網絡庫增加了KCP的客戶端服務器收發支持(結尾會分享封裝的客戶端服務器C++源碼)。

KCP概述

         對于游戲開發,尤其是MOBA游戲,或者全球唯一服架構類型的游戲,對于網絡的要求比一般游戲要高。

        大多數游戲公司使用的網絡無非就是TCP,UDP。我們都知道 TCP 協議具有重傳機制,也就是說,如果發送方認為發生了丟包現象,就重發這些數據包。很顯然,我們需要一個方法來猜測是否發生了丟包。最簡單的想法就是,接收方每收到一個包,就向發送方返回一個 ACK,表示自己已經收到了這段數據,反過來,如果發送方一段時間內沒有收到 ACK,就知道很可能是數據包丟失了,緊接著就重發該數據包,直到收到 ACK 為止。因為即使是超時了,這個數據包也可能并沒有丟,它只是繞了一條遠路,來的很晚而已。畢竟 TCP 協議是位于傳輸層的協議,不可能明確知道數據鏈路層和物理層發生了什么。但這并不妨礙我們的超時重傳機制,因為接收方會自動忽略重復的包。

        超時和重傳的概念其實就是這么簡單,但內部的細節卻是很多,我們最先想到的一個問題就是,到底多長時間才能算超時呢?

超時是怎么確定的?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode585. 2016年的投資(SQL)

寫一個查詢語句,將 2016 年 (TIV_2016) 所有成功投資的金額加起來,保留 2 位小數。 對于一個投保人,他在 2016 年成功投資的條件是: 他在 2015 年的投保額 (TIV_2015) 至少跟一個其他投保人在 2015 年的投保額相同。 他所在的城…

暴雪游戲走后,誰來接盤?對網易有何影響?

11月16日,暴雪娛樂公司宣布,由于與網易的現行許可協議將于2023年1月23日到期,將暫停在中國大陸的大部分暴雪游戲服務。這些暴雪游戲包括《魔獸世界》《爐石傳說》《守望先鋒》《星際爭霸》《魔獸爭霸 III:重制版》《暗黑破壞神 II…

leetcode586. 訂單最多的客戶(SQL)

在表 orders 中找到訂單數最多客戶對應的 customer_number 。 數據保證訂單數最多的顧客恰好只有一位。 表 orders 定義如下: | Column | Type | |-------------------|-----------| | order_number (PK) | int | | customer_number | i…

Oracle中刪除一列

ALTER TABLE TBWORKER DROP COLUMN WTUIJIAN;

leetcode595. 大的國家(SQL)

這里有張 World 表 ---------------------------------------------------------------------- | name | continent | area | population | gdp | ---------------------------------------------------------------------- | Afghanistan …

leetcode596. 超過5名學生的課(SQL)

有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等于5名學生的課。 例如,表: --------------------- | student | class | --------------------- | A | Math | | B | English | | C | Math | …

leetcode597. 好友申請 I :總體通過率(SQL)

在 Facebook 或者 Twitter 這樣的社交應用中,人們經常會發好友申請也會收到其他人的好友申請。現在給如下兩個表: 表: friend_request | sender_id | send_to_id |request_date| |-----------|------------|------------| | 1 | 2 …

leetcode543. 二叉樹的直徑

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。 示例 : 給定二叉樹 1 / \ 2 3 / \ 4 5 返回 3, 它的長度是路徑 [4,2,1,3] 或者 [5,2,1,3]…

leetcode580. 統計各專業學生人數(SQL)

一所大學有 2 個數據表,分別是 student 和 department ,這兩個表保存著每個專業的學生數據和院系數據。 寫一個查詢語句,查詢 department 表中每個專業的學生人數 (即使沒有學生的專業也需列出)。 將你的查詢結果按照…

leetcode603. 連續空余座位(SQL)

幾個朋友來到電影院的售票處,準備預約連續空余座位。 你能利用表 cinema ,幫他們寫一個查詢語句,獲取所有空余座位,并將它們按照 seat_id 排序后返回嗎? | seat_id | free | |---------|------| | 1 | 1 | …

leetcode607. 銷售員(SQL)

給定 3 個表: salesperson, company, orders。 輸出所有表 salesperson 中,沒有向公司 RED 銷售任何東西的銷售員。 解釋 輸入 表: salesperson ---------------------------------------------------- | sales_id …

leetcode612. 平面上的最近距離(SQL)

表 point_2d 保存了所有點(多于 2 個點)的坐標 (x,y) ,這些點在平面上兩兩不重合。 寫一個查詢語句找到兩點之間的最近距離,保留 2 位小數。 | x | y | |----|----| | -1 | -1 | | 0 | 0 | | -1 | -2 | 最近距離在點 (-1,-…

TCP與UDP特點與區別

TCP/IP協議 IP地址(IP Address) 計算機分布在世界各地,要想和它們通信,必須要知道確切的位置。確定計算機位置的方式有多種,IP 地址是最常用的,例如,114.114.114.114 是國內第一個、全球第三個…

leetcode613. 直線上的最近距離(SQL)

表 point 保存了一些點在 x 軸上的坐標,這些坐標都是整數。 寫一個查詢語句,找到這些點中最近兩個點之間的距離。 | x | |-----| | -1 | | 0 | | 2 | 最近距離顯然是 1 ,是點 -1 和 0 之間的距離。所以輸出應該如下: | …

三次握手與四次揮手

三次握手 三次握手是指在建立TCP連接時,需要client端和server端共進行三次信息確認。 第一次握手:建立連接。client發送連接請求報文段(SYN位置為1,Sequence Number為x),然后,client端進入SYN…

leetcode619. 只出現一次的最大數字(SQL)

表 my_numbers 的 num 字段包含很多數字,其中包括很多重復的數字。 你能寫一個 SQL 查詢語句,找到只出現過一次的數字中,最大的一個數字嗎? --- |num| --- | 8 | | 8 | | 3 | | 3 | | 1 | | 4 | | 5 | | 6 | 對于上面給出的樣例…

socket入門

socket 簡介 Socket即套接字,就是對網絡中不同主機上的應用進程之間進行雙向通信的端點的抽象。一個套接字就是網絡上進程通信的一端,提供了應用層進程利用網絡協議交換數據的機制。從所處的地位來講,套接字上聯應用進程,下聯網絡…

leetcode614. 二級關注者(SQL)

在 facebook 中,表 follow 會有 2 個字段: followee, follower ,分別表示被關注者和關注者。 請寫一個 sql 查詢語句,對每一個關注者,查詢他的關注者數目。 比方說: ------------------------- | follow…

SPI、I2C、UART 三種串行總線對比介紹

轉載自https://blog.csdn.net/oqqHuTu12345678/article/details/65445338 參考博客 https://blog.csdn.net/xiaodingqq/article/details/80342459 https://blog.csdn.net/weiqifa0/article/details/8845281 https://www.zhihu.com/question/22632011 http://www.360doc.cn/…