廣州服務(wù)器托管,廣州人民中機(jī)房。廣東移動(dòng)機(jī)房服務(wù)器租用。廣東bgp機(jī)房租賃。廣州移動(dòng)機(jī)房租用,廣州科學(xué)城機(jī)房服務(wù)器租用,深圳聯(lián)通機(jī)房租賃,深圳服務(wù)器租用,深圳聯(lián)通機(jī)房租用,廣東電信機(jī)房租用,佛山移動(dòng)機(jī)房。珠海移動(dòng)機(jī)房租用,佛山平洲機(jī)房租賃,中山服務(wù)器租用,佛山平洲機(jī)房,廣州私有云,佛山電信機(jī)房服務(wù)器租用,廣州電信機(jī)房租賃,深圳雙線(xiàn)機(jī)房租用,中山bgp機(jī)房租用,
廣東bgp機(jī)房 .cn
深圳市銳速云計(jì)算有限公司(簡(jiǎn)稱(chēng):銳速)是深圳市高新技術(shù)產(chǎn)業(yè)協(xié)會(huì)會(huì)員單位。公司位于深圳市龍華新區(qū)東環(huán)一路天匯大廈B座625。銳速主要為客戶(hù)提供全球范圍內(nèi)RS抗DDoS防護(hù)系統(tǒng)、防CC攻擊、系統(tǒng)集群架構(gòu)綜合服務(wù)提供商。
深圳市銳速云計(jì)算有限公司自主研發(fā)的銳速防護(hù)系統(tǒng),銳速服務(wù)器集群管理系統(tǒng),已全部投入使用,并為廣大客戶(hù)提供完美解決方案。
互聯(lián)網(wǎng)架構(gòu)領(lǐng)域:
擁有10多年linux經(jīng)驗(yàn)的系統(tǒng)工程師、網(wǎng)絡(luò)安全專(zhuān)家、Orcale,MySQL數(shù)據(jù)庫(kù)專(zhuān)家、專(zhuān)業(yè)運(yùn)營(yíng)人員均具備有職業(yè)證書(shū)資質(zhì),能為用戶(hù)提供最專(zhuān)業(yè)、及時(shí)、完善的網(wǎng)絡(luò)服務(wù)、Java/PHP/C編程高手和網(wǎng)絡(luò)安全專(zhuān)家。
為企業(yè)提供 高可用 ,高可靠,高擴(kuò)展,高并發(fā),高性能 系統(tǒng)方案。
網(wǎng)絡(luò)安全領(lǐng)域:
基于WEB網(wǎng)站、移動(dòng)端APP和IP地址的DDOS、DNS、WAF等相關(guān)安全防護(hù)服務(wù)。
擁有自主運(yùn)營(yíng)的數(shù)據(jù)中心,全網(wǎng)超過(guò)1000G的超級(jí)防御能力。投入巨資自 6783674671 (不是聯(lián)系方式) 主研發(fā)高性能抗DDoS、CC防火墻,始終以客戶(hù)“零部署”、“零維護(hù)”、方便快捷、簡(jiǎn)單易用為產(chǎn)品研發(fā)的基準(zhǔn),打造一站式的綜合服務(wù)平臺(tái),致力于為廣大政府、中小企、互聯(lián)網(wǎng)金融、電子商務(wù)平臺(tái)、CDN服務(wù)商、云計(jì)算服務(wù)商等互聯(lián)網(wǎng)企業(yè),提供高品質(zhì)的云安全防御技術(shù)解決方案。
擁有超過(guò)30人核心研發(fā)及支撐團(tuán)隊(duì),具備豐厚的防火墻底層設(shè)計(jì)、網(wǎng)絡(luò)監(jiān)控、數(shù)據(jù)分析、快速定位解決問(wèn)題等實(shí)戰(zhàn)經(jīng)驗(yàn)。并提供7 x 24小時(shí)不間斷在線(xiàn)售后支撐服務(wù),用戶(hù)更省心,更安心
廣東電信機(jī)房
聯(lián)系人:譚先生
手機(jī):13430280788
QQ:303210272
網(wǎng)址: .cn
地址:廣州市海珠區(qū)聚德路299號(hào)龍騰18產(chǎn)業(yè)園1號(hào)樓4層
租機(jī)房游戲服務(wù)器租用選擇UDP還是TCP,在編寫(xiě)網(wǎng)絡(luò)游戲的時(shí)候,到底使用UDP還是TCP的問(wèn)題遲早都要面對(duì)。
一般來(lái)說(shuō)你會(huì)聽(tīng)到人們這樣說(shuō):“除非你正在寫(xiě)一個(gè)動(dòng)作類(lèi)游戲,否則你就用TCP吧” 或者是 “你能夠在MMO游戲中用TCP,因?yàn)槟ЙF世界就用的TCP!”
遺憾的是,這些觀(guān)點(diǎn)都沒(méi)有反映這個(gè)問(wèn)題的復(fù)雜性。
背景
首先,說(shuō)明一下,我之前主要是用TCP進(jìn)行網(wǎng)絡(luò)編程。我曾為一個(gè)流行的在線(xiàn)紙牌游戲編寫(xiě)服務(wù)器了好幾年,在高峰期我們的每臺(tái)服務(wù)器能夠承受4000到10000個(gè)連接(同一臺(tái)物理機(jī)器上有多個(gè)服務(wù)器進(jìn)程在跑)都沒(méi)有問(wèn)題。在我來(lái)看,TCP是一種安全而且常見(jiàn)的選擇。
盡管如此,我們最新的項(xiàng)目卻是使用UDP協(xié)議,而且我們的項(xiàng)目無(wú)法通過(guò)任何方式在TCP下工作。事實(shí)上,項(xiàng)目一開(kāi)始使用的TCP,但是后來(lái)發(fā)現(xiàn)我們使用TCP無(wú)法達(dá)到我們需求的連接數(shù)量時(shí),我們只能換成UDP了。
在使用中TCP表現(xiàn)怎么樣呢
從原理上,TCP的優(yōu)勢(shì)有:
簡(jiǎn)單直接的長(zhǎng)連接
可靠的信息傳輸
數(shù)據(jù)包的大小沒(méi)有限制
任何一個(gè)和TCP打過(guò)交道的人都知道,要實(shí)現(xiàn)一個(gè)穩(wěn)定的TCP網(wǎng)絡(luò)連接,需要處理各種隱藏的坑,比如斷線(xiàn)檢測(cè)、慢速客戶(hù)端響應(yīng)阻塞數(shù)據(jù)包,對(duì)開(kāi)放連接的各種dos攻擊,阻塞和非阻塞IO模型等等。
除了上面列出的這些問(wèn)題外,一個(gè)好的TCP模塊確實(shí)不好編碼實(shí)現(xiàn)。
但是,TCP最糟糕的特性是它對(duì)阻塞的控制。一般來(lái)說(shuō),TCP假定丟包是由于網(wǎng)絡(luò)帶寬不夠造成的,所以發(fā)生這種情況的時(shí)候,TCP就會(huì)減少發(fā)包速度。
在3G或WiFi下,一個(gè)數(shù)據(jù)包丟失了,你希望的是立馬重發(fā)這個(gè)數(shù)據(jù)包,然而TCP的阻塞機(jī)制卻完全是采用相反的方式來(lái)處理!
而且沒(méi)有任何辦法能夠繞過(guò)這個(gè)機(jī)制,因?yàn)檫@是TCP協(xié)議構(gòu)建的基礎(chǔ)。這就是為什么在3G或者WiFi環(huán)境下,ping值能夠上升到1000多毫秒的原因。
為什么不用UDP
UDP相對(duì)TCP來(lái)說(shuō)既簡(jiǎn)單又困難。
舉個(gè)例子來(lái)說(shuō),UDP是基于數(shù)據(jù)包構(gòu)建,這意味著在某些方面需要你完全顛覆在TCP下的觀(guān)念。UDP只使用一個(gè)socket進(jìn)行通信,不像TCP需要為每一個(gè)客戶(hù)端建立一個(gè)socket連接。這些都是UDP非常不錯(cuò)的地方。
但是,大多數(shù)情況下你需要的僅僅是一些連接的概念罷了,一些基本的包序功能,以及所謂的連接可靠性。可惜的是,這些功能UDP都沒(méi)有辦法簡(jiǎn)單的提供給你,而你使用TCP卻都可以免費(fèi)得到。
這也是人們?yōu)槭裁唇?jīng)常推薦TCP的原因。在用TCP的時(shí)候你可以不考慮這些問(wèn)題,直到你需要同步連接的數(shù)量級(jí)達(dá)到500以上的時(shí)候。
所以,是的,UDP沒(méi)有提供所有的解決方法,但是就像你看到的那樣,這也正是UDP好用的地方。在某種意義上來(lái)說(shuō),TCP對(duì)UDP就好比是Hibernate和手寫(xiě)SQL的區(qū)別。
使用TCP失敗的地方
人們經(jīng)常給你建議,讓你去使用TCP,比如“TCP跟UDP一樣快”或者“游戲X用TCP如此成功,所以TCP當(dāng)然是首選”,然而,他們完全沒(méi)有理解為什么在那個(gè)特定的游戲中TCP是有效的,為什么UDP不按照順序發(fā)送數(shù)據(jù)包呢?
那么為什么魔獸世界采用TCP呢?首先我們需要解釋這個(gè)問(wèn)題。這個(gè)問(wèn)題其實(shí)是“為什么魔獸世界有的時(shí)候1000毫秒以上的延遲還能夠運(yùn)行?”這是TCP的性質(zhì)決定的,在發(fā)生丟包的時(shí)候,會(huì)產(chǎn)生巨大的延遲,因?yàn)門(mén)CP首先會(huì)去檢測(cè)哪些包發(fā)生了丟失,然后重發(fā)所有丟失的包,直到他們都被接收到。
可靠的UDP也是有延遲的,但是由于它是在UDP的基礎(chǔ)之上建立的通信協(xié)議,所以可以通過(guò)多種方式來(lái)減少延遲,不像TCP,所有的東西都要依賴(lài)于TCP協(xié)議本身而無(wú)法被更改。
就這一點(diǎn)來(lái)講,一些人要開(kāi)始提到Nagle算法了,實(shí)際上它是你在實(shí)現(xiàn)任意一個(gè)對(duì)延遲敏感的TCP模型時(shí)首先需要禁止使用的。
那么魔獸世界以及其他的一些游戲是怎么處理延遲問(wèn)題的呢?
方法也很簡(jiǎn)單,他們能夠隱藏掉延遲帶來(lái)的影響。
在魔獸世界中,玩家和玩家是無(wú)法碰撞的:因?yàn)檫@類(lèi)碰撞是無(wú)法通過(guò)一些預(yù)測(cè)來(lái)處理的,但是玩家和環(huán)境之間的碰撞卻是可以通過(guò)預(yù)測(cè)來(lái)處理的,所以這里使用TCP是沒(méi)有問(wèn)題的。
我們來(lái)看一下魔獸世界的戰(zhàn)斗就會(huì)發(fā)現(xiàn),玩家的攻擊指令發(fā)送給服務(wù)器的操作是放在比如“attack_entity(entity_id)”或者”cast_spell(entity_id, spell_id)“的接口中來(lái)做的,換句話(huà)說(shuō),瞄準(zhǔn)操作是獨(dú)立于進(jìn)行的。如此一來(lái),一些類(lèi)似發(fā)起攻擊動(dòng)作和釋放技能特效就能夠在沒(méi)有收到服務(wù)器確認(rèn)的情況下就直接執(zhí)行,比如展現(xiàn)冰凍技能的效果就可以在服務(wù)器沒(méi)有返回?cái)?shù)據(jù)前在客戶(hù)端就做出來(lái)。
客戶(hù)端直接開(kāi)始進(jìn)行計(jì)算而不等待服務(wù)端確認(rèn)是一種典型的隱藏延遲的技術(shù)。
幾年前,我為一個(gè)叫“Five Card Jazz”的紙牌游戲編寫(xiě)過(guò)客戶(hù)端。它使用的是http協(xié)議,它比直接的TCP協(xié)議連接的延遲更加嚴(yán)重。
我們用簡(jiǎn)單的紙牌繪制和抽牌的動(dòng)畫(huà)來(lái)掩蓋延遲的問(wèn)題,所以延遲的問(wèn)題只在非常糟糕的連接下才會(huì)被看出來(lái)。這種方法也非常的典型:發(fā)送請(qǐng)求的同時(shí)開(kāi)始播放牌桌的動(dòng)畫(huà),一直播放翻動(dòng)最后一張牌直到接收到了服務(wù)端傳回來(lái)的數(shù)據(jù)為止。魔獸世界的戰(zhàn)斗特效就是使用類(lèi)似的原理。
這也意味著,我們到底是使用TCP還是UDP取決于我們能否隱藏延遲。
TCP在什么時(shí)候失效
一個(gè)采用TCP的游戲必須能夠處理好突發(fā)的延遲問(wèn)題(紙牌客戶(hù)端就很典型,對(duì)突發(fā)性的一秒的延遲,玩家也不會(huì)產(chǎn)生什么抱怨)或者是擁有緩解延遲問(wèn)題的好方法。
但是如果你運(yùn)行的是一個(gè)無(wú)法使用任何減緩延遲措施的游戲呢?玩家對(duì)玩家的動(dòng)作類(lèi)游戲通常就屬于這個(gè)范疇,但是這也不僅僅限于動(dòng)作類(lèi)游戲。
舉個(gè)例子:
我目前正在寫(xiě)一個(gè)多人游戲(War Arcana)。
一種常見(jiàn)的操作是,你快速的移動(dòng)你的角色通過(guò)一張充滿(mǎn)戰(zhàn)爭(zhēng)迷霧的世界地圖,但是一旦你探索過(guò),迷霧就會(huì)被打開(kāi)。
為了確保游戲的規(guī)則,防止玩家作弊,服務(wù)器只能顯示玩家當(dāng)前位置附近的信息。這意味著不像魔獸世界,玩家無(wú)法在沒(méi)有得到服務(wù)器響應(yīng)的情況下,做出完整的動(dòng)作。和Five Card Jazz相比,我們即使允許500毫秒的延遲,也已經(jīng)非常困難了。
在實(shí)現(xiàn)了游戲的原型后,在局域網(wǎng)內(nèi)一切都進(jìn)行的非常順利,但當(dāng)我們?cè)?/font>WiFi環(huán)境下測(cè)試時(shí),操作會(huì)間歇性的卡起來(lái)或者延遲高起來(lái)。寫(xiě)了一些測(cè)試程序之后發(fā)現(xiàn),WiFi環(huán)境下偶爾會(huì)發(fā)生丟包行為,每當(dāng)發(fā)生丟包的時(shí)候,服務(wù)器的響應(yīng)速度就從100-150毫秒上升到1000-2000毫秒。
沒(méi)有任何辦法可以繞過(guò)TCP的這個(gè)設(shè)置來(lái)避開(kāi)這個(gè)問(wèn)題。
我們替換了TCP的代碼,用了自定義的可靠的UDP來(lái)實(shí)現(xiàn),把大量的丟包產(chǎn)生的延遲降到了僅僅只有50毫秒,甚至比以前TCP不丟包的情況一個(gè)來(lái)回的延遲還要小。當(dāng)然,這只可能建立在UDP之上,這樣我們才對(duì)可靠性擁有完全的掌控力。
困惑:可靠的UDP只是TCP的一種簡(jiǎn)單的實(shí)現(xiàn)?
你有沒(méi)有聽(tīng)過(guò)這種說(shuō)法:“可靠的UDP就像TCP一樣,所以還是用TCP吧”。
問(wèn)題是這種說(shuō)法是錯(cuò)誤的??煽康?/font>UDP一點(diǎn)也不像TCP,要去實(shí)現(xiàn)一個(gè)特殊的阻塞控制。事實(shí)上,這也是你使用可靠UDP代替TCP的最大的原因,避免TCP的阻塞控制。
另一個(gè)重點(diǎn)是可靠的UDP的可靠性是如何保證的。這里有很多種方法去實(shí)現(xiàn)。我非常喜歡Quake3網(wǎng)絡(luò)庫(kù)代碼里的一些想法,它們也激發(fā)了我在War Arcana中使用UDP協(xié)議。
你也可以使用許多支持可靠通信的UDP庫(kù),當(dāng)然,這樣在可靠性方面,相比自己手動(dòng)實(shí)現(xiàn)全部的代碼而言,可能會(huì)更加通用而失去了一些性能優(yōu)勢(shì)。
底線(xiàn)
那么到底是用UDP還是TCP呢?
如果是由客戶(hù)端間歇性的發(fā)起無(wú)狀態(tài)的查詢(xún),并且偶爾發(fā)生延遲是可以容忍,那么使用HTTP/HTTPS吧。
如果客戶(hù)端和服務(wù)器都可以獨(dú)立發(fā)包,但是偶爾發(fā)生延遲可以容忍(比如:在線(xiàn)的紙牌游戲,許多MMO類(lèi)的游戲),那么使用TCP長(zhǎng)連接吧。
如果客戶(hù)端和服務(wù)器都可以獨(dú)立發(fā)包,而且無(wú)法忍受延遲(比如:大多數(shù)的多人動(dòng)作類(lèi)游戲,一些MMO類(lèi)游戲),那么使用UDP吧。
這些也應(yīng)該考慮在內(nèi):你的MMO客戶(hù)端也許首先使用HTTP去獲取上一次的更新內(nèi)容,然后使用UDP跟游戲服務(wù)器進(jìn)行連接。
專(zhuān)注、創(chuàng)新! 專(zhuān)注云計(jì)算安全技術(shù)的研究、開(kāi)發(fā)和應(yīng)用,深入了解客戶(hù)的需求;追求創(chuàng)新,致力于成為全球領(lǐng)先的云安全綜合服務(wù)平臺(tái),竭誠(chéng)為廣大企業(yè)用戶(hù)提供高效、專(zhuān)業(yè)的服務(wù)。
1、防CC攻擊
通過(guò)我們提供高端的防CC硬件防火墻,對(duì)于CC攻擊流量進(jìn)行過(guò)濾,使得服務(wù)器更安全可靠地提供服務(wù)。
2、防DDOS攻擊
我們給您提供免費(fèi)1G的防攻擊流量,足以阻擋大部分的DDOS攻擊,經(jīng)過(guò)我們的高防設(shè)備進(jìn)行流量清洗后,使得到達(dá)源服務(wù)器的都是有效用戶(hù)訪(fǎng)問(wèn)流量。
3、網(wǎng)站監(jiān)控
我們會(huì)提供精確地對(duì)內(nèi)和對(duì)外服務(wù)進(jìn)行監(jiān)控,當(dāng)出現(xiàn)異常時(shí),我們的監(jiān)控系統(tǒng)會(huì)第一時(shí)間給你發(fā)送故障手機(jī)短信和報(bào)警郵件通知。通過(guò)監(jiān)控系統(tǒng)控制界面,您可以清楚的看到歷史CPU、內(nèi)存,磁盤(pán)等性能圖表,一目了然。
4、負(fù)載均衡
提供高可用性的負(fù)載均衡服務(wù),按照一定策略將用戶(hù)請(qǐng)求分?jǐn)偟蕉嗯_(tái)負(fù)載服務(wù)器,使得系統(tǒng)可以水平擴(kuò)展,不斷滿(mǎn)足業(yè)務(wù)增值的需求。
5、數(shù)據(jù)同步
多臺(tái)服務(wù)器之間的數(shù)據(jù)同步解決方案,包括但不限于網(wǎng)站以及數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。
6、數(shù)據(jù)備份
按照業(yè)務(wù)需求提供高可靠的備份解決方案,即使發(fā)生故障,數(shù)據(jù)也能盡快在短時(shí)間內(nèi)恢復(fù)。
7、網(wǎng)站架構(gòu)搭建以及優(yōu)化
各類(lèi)操作系統(tǒng)安裝配置維護(hù)及優(yōu)化;
Apache\Nginx\IIS安裝配置維護(hù)及優(yōu)化;
Linux下PHP安裝配置維護(hù)及優(yōu)化;
Oracle\MySQL\MSSQL數(shù)據(jù)庫(kù)安裝配置維護(hù)及優(yōu)化;
Jboss\Tomcat\Weblogic安裝配置維護(hù)及優(yōu)化;
其它應(yīng)用軟件的安裝配置維護(hù)及優(yōu)化。
8、IT資源整體外包
為客戶(hù)提供全套的IT系統(tǒng)規(guī)劃、采購(gòu)、實(shí)施、運(yùn)維、咨詢(xún)、培訓(xùn)的整體服務(wù),適用于不想成立IT部門(mén)或雇用IT工程師,并迫切希望降低運(yùn)營(yíng)成本的公司。
9、單項(xiàng)IT技術(shù)外包服務(wù)
也許您的公司有少量的計(jì)算機(jī)人員,難以應(yīng)付日常的各種繁雜事務(wù),可以把您覺(jué)得棘手的事情交給我們,如網(wǎng)絡(luò)建設(shè),硬件設(shè)備維護(hù),單項(xiàng)軟件開(kāi)發(fā),我們可以按項(xiàng)目,時(shí)間,設(shè)備量等各種方式計(jì)費(fèi),提供服務(wù)。
10、運(yùn)維外包
當(dāng)系統(tǒng)已經(jīng)建設(shè)好,維護(hù)人員日常工作不多,有了問(wèn)題時(shí)又忙不過(guò)來(lái),我們可以提供隨機(jī)的維護(hù)外包服務(wù),作為我們的客戶(hù),您在遇到問(wèn)題時(shí)可以享受到團(tuán)隊(duì)技術(shù)力量的服務(wù),保障已建系統(tǒng)的正常運(yùn)行。
11、IT行業(yè)信息咨詢(xún)
目的是幫助客戶(hù)找到正確的價(jià)格比并及時(shí)、準(zhǔn)確了解IT行業(yè)前沿技術(shù)動(dòng)態(tài);系統(tǒng)解決方案,目的是根據(jù)企業(yè)網(wǎng)絡(luò)實(shí)際情況及時(shí)、有效提出合理的優(yōu)化、升級(jí)方案書(shū),使企業(yè)網(wǎng)絡(luò)系統(tǒng)總是處于最佳狀態(tài)。
12、網(wǎng)站安全掃描服務(wù)
我們給客戶(hù)提供網(wǎng)站漏洞掃描服務(wù),通過(guò)掃描網(wǎng)站,將網(wǎng)站存在的風(fēng)險(xiǎn)以及漏洞一一例出,讓開(kāi)發(fā)人員可以對(duì)網(wǎng)站漏洞進(jìn)行修復(fù),避免被黑客利用。
【原創(chuàng)文章】
的關(guān)系。3、安全防御性能對(duì)于游戲服務(wù)器來(lái)說(shuō),一般都很容易受到黑客的攻擊,特別是對(duì)于一些熱門(mén)網(wǎng)絡(luò)游戲。所以,選擇一家能提供高防服務(wù)器的IDC商尤為重要。對(duì)于游戲服務(wù)器來(lái)說(shuō),防御能力越強(qiáng),其價(jià)格也就越高。當(dāng)然,價(jià)格歸價(jià)格,服務(wù)器的穩(wěn)定性也很重要,穩(wěn)定性好的服務(wù)器體價(jià)格也比較高,這樣一來(lái)是不是要花費(fèi)更高的價(jià)