為何主機遊戲對網路要求高於 PC 和手游?
為何聯機主機遊戲至今仍需要公網IP,而相比下用戶量更大的pc和手機端網路遊戲只要能瀏覽網頁就能正常聯機,對於switch這樣的便攜遊戲機來說是否不利於其與手機遊戲爭奪市場?
重點是p2p需要公網IP而且現在的ipv4公網IP在不久的將來一定會變成稀缺資源,主機和遊戲開發商為何不提高網路服務收費建立pc遊戲一樣的網路使即使沒有公網ip也能使用聯機功能,或者開發其他不需要公網IP的聯機方式?
這個問題的答案很簡單,那就是
「題目不成立」
先簡單的科普下NAT吧,啥是NAT呢?
NAT全程是Network Address Translation,也就是網路地址轉換,如果你使用的運營商啟用了NAT的話,那麼你實際上是和別人共享一個公網IP的,通過埠號來區分具體數據是誰的。
有點暈?看看下面的圖就明白了:
打個比方:如果說NAT是啟用的,也就是傳說中的「stricted」,那麼「郵差」是把所有數據都發到一個地方的(公司樓下,再通過前台轉發),而NAT沒啟用,也就是「open」,那麼郵差就是一個個送啦。
那麼,為什麼運營商要這麼做呢?
這當然是因為,公網IP不足啦。NAT就是一種緩解公網IP不足的折中辦法。
後面我們再詳細講為啥公網IP地址不夠用,總之你知道現有的IPV4(一種IP地址的格式)基本快用光了就對了。
另外,你家有路由器對吧?
如果你用的是路由器連接你的設備的話,那麼還要再NAT轉換一次,這次我們詳細看看轉換過程:
你的設備A(這裡為192.168.1.3)向伺服器(這裡為40.30.20.10)發送了一個數據包,問下天氣如何
注意的是,因為你的電腦被分配到的是私有IP(也就是192.168.X.X或10.X.X),所以說數據包不能直接通過這個地址發給伺服器
為啥不給你公有IP?猜對了,還是上面的原因——地址不夠用呀
所以呢,需要路由器君作為翻譯,路由器君以它獲得的IP發給伺服器端請求(通過埠號記錄是誰發出的包)
伺服器回復之後呢,路由器再翻譯回私有地址發給你,而你是不會感覺到這一切的(除非你在玩一些遊戲)
好了,總算科普完畢了,現在你知道NAT是什麼鬼了,可以回到主題了
為啥題主是不是覺得大多數主機遊戲都對NAT有要求,而PC上的遊戲就少呢?
這又要說到二種聯機模式了:一種是P2P(點對點模式),另一種是C/S(客戶端/伺服器模式)
這裡又要大致講解下這二種模式了:
P2P就是你和其他同場遊戲的玩家互相聯機,其中某名玩家是主機,這種模式需要考慮NAT,主機卡其他人就GG。(舉個例子:暗黑、求生),點對點模式也是有一個中央伺服器的,但是它僅僅為了輔助p2p的建立(也就是獲取房間列表、狀態什麼的)
C/S呢,是大家連接到伺服器交換數據,所以這種模式不需要考慮NAT。(舉個例子:守望先鋒)
到這裡總算說到題主真正想問的了:
為啥主機上的遊戲不用C/S呢?
其實吧,索尼和微軟早已經意識到了這個問題,也早就有託管伺服器啦,這也是為啥會有會員服務不是,實際上次時代採用C/S的主機遊戲是很多的,但是還是要看製作商意見的。
主機上完全使用C/S的遊戲有:泰坦天降、Forza5、光環5、LAST OF US、男友、駕駛俱樂部、殺戮、守望啊等等,一般來說大型多人的射擊遊戲都是C/S的,而部分模式使用C/S,部分模式(例如3V3等玩家較少的情況下)使用P2P的就更多了,所以說,題主的問題很遺憾是
至於說GTA5、使命召喚、細胞啊這些,人家PC版也是完全一致的P2P,所以說主機遊戲對網路要求高於pc和手游這個說法不存在的,你總不能指望微軟或者索尼強制要求所有開發商都用C/S不成.
至於說為啥開發商要用P2P嘛,很明顯的一點是成本,維護成本低,還有一些原因這裡也不詳細展開了,我們直接跳到題主真正想問的吧
那憑什麼P2P模式索尼/微軟還要讓我買會員才能聯網?這不是坑爹嘛
題主想聽的大概是類似是辣雞索尼/微軟之類的,不過吧真正的回答是這樣的
why ps+ is required for peer2peer Mp games eg Mass effect? ? r/PlayStationPlus
Real answer - Playstation Plus is required if the game is set to use Sony"s own servers. Mass Effect wouldn"t require the use of PS+ if EA/Bioware spent money on providing their own servers. Even if it"s P2P it uses servers to match-make and connect peers. The only question here is why are you surprised cheap ass companies are cheap?
EDIT: Free 2 Play game developers get the freedom to choose whether they wish to require PS+ for the multiplayer. So far, they are all free but that is a choice rather than requirement.
簡單來說:因為上文所述,P2P也是需要伺服器來搜索比賽等的,如果開發商選擇不用微軟/索尼伺服器,而自己架設伺服器那麼你是不用買會員的,為啥開發商選擇用微軟/索尼的伺服器呢,這也是多種考量的咯,這裡不展開,總之你要真覺得微軟/索尼在坑你錢那可以去steam玩咯。
最後詳細解釋下IP地址不夠用
我們現在用的IPV4是很多年前設計的了,那個時候來看很夠用,可是現在全球人都在用(當時是給美國國防用的),所以說就不夠用啦
解決辦法:IPV6,加了不知道多少倍,這次絕對夠用了(大概)!
為啥你現在沒用上IPV6?主要是轉換很麻煩加上之前所有設備都需要硬體和軟體的升級,所以說這將是耗時巨大且緩慢的過程,但是早晚會變成6的!
另外,國內玩遊戲還有其他不可抗力,但這些不在本文討論範圍內,大家懂啥原因就好,以及如果大家想知道怎麼解決NAT問題的看這裡~
----------------
本文使用谷歌搜索完成,參考並使用了以下資料:
配圖——《奮鬥吧!系統工程師》
配圖、相關資料——How Network Address Translation Works 作者 PieterExplainsTech
why ps+ is required for peer2peer Mp games eg Mass effect? ? r/PlayStationPlus
Xbox One NAT
Network address translation
原答案因為海鮮過敏被建議修改。
別問我windows防火牆和虛擬專用網路等等等究竟是什麼。畢竟我能怎麼辦,我也很絕望,答案改成這樣我也很心疼,純技術怎麼就不能談了。相比之下還是大學的言論氛圍自由。
————————
看了部分回答,除了ytyt和土坷垃的答案,其他很多都在瞎扯。
大部分朋友可能並不是相關從業者,我盡量用較為通俗但不那麼科學嚴謹的語言講述。
首先,我要駁斥一個觀點:遊戲卡(特指Ping高),就是因為windows防火牆的原因,開了虛擬專用網路能提速,是因為翻了windows防火牆。
當然我不是否定遊戲伺服器在國外才比較卡的觀點,而是反對因為windows防火牆才卡的觀點。請注意區分二者。
要想知道為什麼,先要進行一些基礎知識的科普。搬好板凳聽故事吧。
-----------------------------------------------
&>先要知道我們是怎麼上網的?
輸入網址-&>經過DNS解析為公網IP(或者內網IP也行,但我們忽略這種情況,畢竟要說的不是區域網遊戲)-&>從目標IP的伺服器獲取數據
那麼windows防火牆是什麼?北郵校長當年設計windows防火牆的時候,基本就是一套DNS劫持(或者說DNS污染),後來開始出現封IP、封HTTP代理。
有些人可能知道改host可以翻windows防火牆,其原理就是在本地針對特殊域名進行IP解析,例如在host文件中寫上一行「119.75.217.109 www.baidu.com」,就是當你輸入百度域名(後面那串網址)時,會在本地解析為前面的IP並訪問,繞開了DNS的限制,真正起作用是IP不是那個網址。你在瀏覽器里輸入前面那串IP也能打開百度,不信你試試?
DNS的伺服器肯定不在你手裡,所以ISP(你可以簡單理解為電信、移動、鐵通這類給你提供網路服務的商人)可以出於愛國心自發在DNS上動手腳,你輸入域名不給你解釋成IP,這樣就達成了windows防火牆的效果。
有些人可能又要說了,有時候我改HOST也沒作用啊。那是因為對方的IP被禁掉了。CN的互聯網總會有一個對外的出口的,這肯定控制在虛無的空氣手裡。虛無的空氣會自發檢測你發出的信息報報文頭,發現被封掉的IP就截掉,你一點辦法都沒有。
所以這時候你想到了危批恩。
-----------------------------------------------
&>什麼是虛擬專用網路?
有些人眼中微屁恩就是個翻牆工具,甚至把所有能翻牆的東西都叫做微屁恩。
錯,全錯。
微屁恩的中文翻譯是虛擬專用網路,他的工作原理是建立一個專門的加密網路,對外封閉。
似乎從上面這個定義完全看不出他為什麼能翻牆對不對?
剛剛提到了有些發往特別IP的報文會被截掉。比如地址A被封掉了,那麼國內的地址Z,發往A的報文就會全線掛掉。那麼這時候如果存在一個通往國外地址B的微屁恩,Z向B發送加密後的報文,虛無的空氣無法知道這個報文是發給A的,因為被加密了,也就沒法截掉(畢竟不可能把所有國外IP都封掉吧?);而B能解析這個報文,知道要發給A;於是在國內的Z發給了在國外且沒有被禁掉的B,B在解析報文知道要發給在國外但被虛無的空氣自髮禁掉的A,最終完成了Z-&>A的通信。(事實上HTTP代理也是這種原理,但我們略過不展開)
看完這個你就能知道微屁恩為什麼能翻牆了。可從這個過程你看到任何能完成加速的步驟了嗎?
要知道Z如果要和A通信,要麼徹底連不上,要麼就是能連上。連不上是因為有牆,但你說連上了但是會卡是因為windows防火牆就是扯淡了。
微屁恩之所以可以加速,是因為他節約了數據包的跳點。
-----------------------------------------------
&>微屁恩為什麼能減小遊戲延遲?
也就是你們常說的加速遊戲。
互聯網之所以能叫互聯網,因為他是一個網路,Z要發送給用戶G,並不是直達的,中間可能會經過F、H、J...L、I、S的轉發最後才到G,而且是每次發送這個路徑都是不一樣的,每次都要等設備計算路徑(不確切地說,嚴格來說是建立路由表什麼的,略),才會進行轉發。
而微屁恩的作用就是,先在互聯網上開一條通道出來,這個通道里的所有設備的信息對內完全封閉。比如這時候Z要發給G,可能經過的節點就少了、等待設備轉發的時間也少了。(具體原理略)
尤其是對國外這種長距傳送(非地理距離,而是物理網路距離,並不是說在國外就一定更遠),微屁恩帶來的加速效果極為顯著。
(順便說一下,我在家裡都是自己建立一個微屁恩,這樣在公司或者KFC用支付寶也放心一點,畢竟所有的數據包都是通過我本人的微屁恩發出去的,減少了被截獲的風險。但顯然我這個VPN是翻不了windows防火牆的,畢竟我建微屁恩機器就在國內,也是國內的IP。那些說阿里雲隨便買個IP建一個微屁恩就能翻windows防火牆的動動腦子,要買也得買香港IP才能翻牆好么。)
看到這裡,你應該明白了,卡,不是因為windows防火牆,就算沒有windows防火牆,在國內現有的環境條件下(對外出口數目、路由設備質量),沒windows防火牆你也卡。(還準備用開了微屁恩就能提速反駁我的建議回去再看一遍微屁恩為什麼能提速以及提速跟牆有沒有關係)
另外,用微屁恩其實某種意義上也能解決NAT所帶來的無法定址的問題。不展開了。
-----------------------------------------------
&>所以主機遊戲為什麼對網路的要求高於主機?
並沒有好嘛。
如果你玩過一些P2P通信的遊戲,你就會知道,NAT Strict該來的總會來的,不會因為你是主機還是PC而放過你。我舉幾個PC上有的遊戲作為例子,RUNNING WITH REFILE或者WARFRAME。
-----------------------------------------------
&>什麼是P2P?什麼是NAT?什麼是C/S?
P2P全稱,就像某位答主所說的,是point to point(手動微笑,然而並不是,是peer to peer)。我們此處僅所說在遊戲中的應用。
常見的遊戲聯網方式有兩種,P2P和C/S。假設A與B要聯機:
P2P的聯機方式是,通過中介S協調(一般是UDP穿孔,待會兒再說),A勾搭上了B,B表示同意,於是A跟B就不再跟中介S通信,直接在AB之間發送數據包;
C/S的聯機方式是,A把要跟B說的話(數據包)告訴S,由S轉發給B;B也做同樣的轉發處理。
由於玩家A或B都是普通玩家,他們不可能有獨立、恆定的公網IP,所以A跟B利用P2P的方式聊天時,必須要先通過S找到對方的IP才能聊天,但S一定能找到對方的IP嗎?不行,原因我們下面說;而C/S模式中,伺服器S必然有一個公網IP(要寫死在遊戲程序代碼里的,只不過一般寫的是域名),所以A必然可以找到S,B也必然找得到S,所以他們的轉發一定成功(A和B都只S聯絡,並不直接交流)。
為什麼P2P的方式下A通過S不一定找得到B?因為NAT。NAT的原理講起來麻煩,有興趣可以具體百度。總之,你們這樣理解,你家門牌號是唯一的,但你和你哥哥各分一個屋子,郵遞員每次只把信收到你家門口,你要是不去門口查收,根本不知道要送到哪個屋子裡去。
所以A要找到B,就可能會出現這樣的效果:A告訴S我要知道B在哪,S給B的家裡發了封郵件說你出來一下,告訴我你在哪個屋子。然而B在屋子裡土嗨根本沒收到這個消息,A要找B約炮的計劃宣告失敗。
為了解決NAT的這種問題,就衍生出了NAT穿孔技術。一般都是做UDP穿孔。這又是另外一個很複雜的故事了。UDP穿孔跟內網結構有關,也跟路由設備有關。我沒有自信把我研究了那麼多年的東西用兩句話講清楚,所以只好總結一下了:
C/S聊天必然暢通(只要開發商不倒閉或者炸服),P2P看天命。
你一定又要問為什麼不都用C/S呢?因為貴啊......那些做獨立遊戲的廠商做遊戲都困難了,你讓他去花錢維護一個高品質的伺服器?不存在的。
----------------------------------------------------------
回到主題,主機遊戲中大部分遊戲都是P2P的,但並不是說PC遊戲上就沒有基於P2P的遊戲,而是PC遊戲基數過大,加上部分人玩的遊戲可能都是網遊這種必然是C/S的遊戲(warframe除外,微笑臉),因此產生了他喵的主機遊戲都特么這麼卡的觀點。
至於手機....你告訴我哪個手游不是網遊?不是C/S架構的聯機?(請忘了區域網五子棋,謝謝!)
命苦如我,為了聯機某些獨立遊戲在PC上各種SDN,各種轉發,各種租伺服器,你就會知道PC上聯機並不比主機或手機遊戲上簡單。
伺服器不在國內吧,還有牆。
要不試試不用代理加速器登錄外服玩網遊手游?這就很有意思了,因為三(四)大流氓哪個主機也不是國產的啊
pc網路要求低嗎?也不見得啊,你試試看玩美服日服韓服毒奶粉,vpn差點的卡到你叫爸爸.玩主機就是這麼個情況,沒加速等於玩外服.
所以不奇怪
不理解題主的疑問。要不是為了看尼爾的最終結局,我一點聯網的衝動都沒有。
哪位高手給題主發個教程吧,題主就是想知道怎麼不卡而已
聯機服務對遊戲廠商來說成本低。
開伺服器成本就高很多了。
但是伺服器也容易出網路問題,但是網路總體來說會比聯機好一些(聯機都是個人用戶,伺服器起碼有bgp網路)。
好在現在都是雲主機了,都彈性了。
不過廠商為了成本,都是做的聯機模式。
我們國內的pc、頁游、手游。
除了單機,主要都是伺服器模式。所以玩家沒有獨立ip的需求。
不過加速器很多解決了nat問題,可以緩解部分主機用戶聯機困難問題。
關於網路穩定性問題,其實和牆關係不大,主要國際帶寬民用這塊負載大,所以網路不好。
CN2都丟包,別說民用的了。
最好的網路就是國際專線了,一份價格一分享受。
錯誤很多的問題。
主機,pc,手機遊戲都是利用網路交互數據沒有區別。
但是由於主機遊戲上的伺服器一般都在國外,由於不可描述的原因主機上的網路一般較差。
題主所說的pc與手游流暢應該是你玩的都是國產網遊與手游,原因是伺服器就在國內且無不可描述原因。steam上的大多伺服器都會奇奇怪怪的卡。
不需ip那就得建伺服器買流量啊!沒有足夠的利潤,怎麼可能給玩家買流量建伺服器並維護呢?這個題目也可以改成:為什麼手游網路要求比主機高。為什麼玩Pokémon Go甚至掛vpn都玩不了,ns只要能上網還能連上。說真的就是伺服器和牆的問題,跟是主機,pc還是手機沒關係。
不存在的
先問是不是,再問為什麼
首先主機遊戲很多伺服器在國外,需要vpn,那pc的很多國外遊戲就不要vpn了嗎?吃雞的玩家不都是月供30以上?
其次,很多pc遊戲的伺服器在國內就不卡了嗎?電腦端那麼多遊戲加速器的存在還不能說明問題?關鍵是聯網環境,在美國日本,買個機器回來,不出意外的話,psn,以及遊戲下載根本沒有任何阻礙。在中國么,你去PS4吧看看那些月經貼:"連不上啊,急在線等。"
聯機方式取決於開發者的設計模式,和主機還是pc沒有多大關聯。本質上來說 現在的主機其實和pc也沒多大區別了,只是沒有裝pc上用的系統而已。至於p2p和伺服器的選擇,就一個字,貴。獨立遊戲開發者能有資金把遊戲弄完就不錯了,不然哪有那麼多眾籌的項目。誰都知道用伺服器爽,就想都知道自己開車爽,那不代表公交車沒有意義。有時候需要解決問題,就必須要做出妥協。土豪不在此列。
為什麼要公網IP?
那是因為這些遊戲是純P2P的,連隧接的SERVER都沒。沒什麼省成本而已。如果這個時候2台主機之間網速很快的話,那延時就不高了。
有SERVER或者是隧接SERVER的主機遊戲為什麼比PC遊戲網路慢。因為主機遊戲SERVER一般在國外。伺服器在國內的話不經網速快,還有內容分發伺服器,極大加快TRACKING時間(延遲)。
簡單而言,你肯定玩主機遊戲的網速肯定不如玩騰訊遊戲的速度。
1.絕大多數主機遊戲沒有國服2.有牆完畢
推薦閱讀:
※如何評價《劍網3》這3年的運營數據?在業內算是一個怎樣的遊戲?
※如何玩好一款fps(第一人稱視角射擊類)遊戲?
※如何評論c5game這個網站?
※作為玩家,你心目中最理想的遊戲公司應該是怎樣的?
※是什麼導致了國內和國外遊戲氛圍的差異?
TAG:遊戲 | 網路遊戲 | 家用主機遊戲 | 任天堂Nintendo | 手機遊戲 |