目錄
一 加速器原理概覽
1 原理概覽
網遊加速器是針對個人用戶快速連接網遊服務器的一種服務, 網絡加速器廠商通過搭建多個高帶寬的雙線機房(或通過租用雙線 VPS 主機),並在這些機房的兩大線路中架設多個節點服務器,然後爲其編寫“網絡加速器客戶端”,通過客戶端判斷用戶的網絡線路類型,並將用戶應用客戶端 的網絡數據轉發到指定的節點服務器,由節點服務器轉發給用戶應用客戶端請求的真正服務器。“網絡加速器客戶端”通過自動選擇速度最快的節點服務器進行數據轉發,以達到數據加速作用。優秀的網絡加速器可以有效減少網絡丟包和網絡延遲。
簡單來說,在用戶的計算機上,利用用戶本地路由表或者全局代理的形式將用戶的數據包封裝之後傳送到服務器廠商的網絡中,減少數據包在傳送中的延遲,並減小丟包率,保障用戶訪問遊戲服務器網絡的穩定性和快速性。
圖1加速器網絡示意圖(processon網絡結構地址)
2 加速的技術分類
目前主流的加速技術可以採用兩種方式來實現:“代理服務器方式”和“ VPN 方式”。
2.1 代理服務器方式
代理的方式是將用戶的流量加密之後發送到就近的代理服務器,涉及到的技術主要有SOCKS5、LSP;該技術採用基於LSP的代理加速方式,LSP全稱爲Layered Service Provider,即分層服務提供者,LSP本身是以DLL方式提供,通過Windows提供的安裝API,以第三方服務者的方式插入到客戶應用程序(遊戲)和Winsock2 DLL之間,從而起到攔截套接字相關函數的目的。通過LSP技術,可以將用戶的網絡數據直接轉發給代理服務器,再由代理服務器將數據轉發給真正的遊戲服務器。
2.2 VPN 方式
VPN方式是通過將玩家的客戶端連接到VPN服務器,並將指定遊戲的網絡訪問路由到該VPN通道,涉及到的技術有pptp、openvpn、l2tp、ipip、iptables、route、accel-ppp、ppp等技術。
二 加速器原理的實現
1 客戶端的實現
客戶端主要的工作就是獲取本機特定的網絡數據包,然後將數據包根據特定技術的封裝,經由本地網絡傳送到加速接入點服務器中。客戶端可以使用開源的客戶端、廠家推出的客戶端,也可以使用windows自帶的VPN客戶端。
2 服務器端的實現
服務器端的主要工作是接受客戶端發來的數據包,解包、路由選擇、驗證客戶端的有效性,這一部分的最要工作就是快速轉包,降低延遲和丟包,通過儘量少的路由器接力將玩家的數據包傳送到遊戲服務器上去。
圖2 加速器網絡實現原理(圖片來自網絡,若有侵權,請聯繫本人)
三 效果案例
1 環境
本示例中租用了一臺百度北京的服務器和一臺百度香港的服務器,接入點在北京,下車點在香港,兩臺服務器之間利用百度的對等連接服務進行內網網絡聯通,客戶端採用windows自帶的L2TP客戶端服務,接入點採用accel-ppp服務(內嵌了L2tp server服務)兩臺服務器之間再使用ipip搭建內網VPN,目標服務器是韓國的一臺AWS服務器。
2 未啓動加速
本機網絡情況:
到遊戲服務器的路由:
到遊戲服務器的延遲:
3 啓動加速
本機網絡情況:
其中192.168.80.50是連接上接入點後分配給本地的IP
到遊戲服務器的路由:
其中192.168.1.1位接入點的PPP接口IP;192.168.100.2爲下車點的IP
到遊戲服務器的延遲:
四 參考文獻
https://blog.csdn.net/kidwei/article/details/8559842 網遊加速器原理、技術與實現
https://kuaibao.qq.com/s/20180808A0X0WR00?refer=spider 全鏈路賦能遊戲產業,加速器助力遊戲新時代
http://gad.qq.com/article/detail/10126 如何使用LSP對應用程序的網絡數據進行轉發
五 後記
本文檔只是大概說明了網絡遊戲加速器的原理,在以後的文檔中將對相關技術進行具體的說明。
本文檔難免有錯誤之處,請不吝指出,[email protected]是我的聯繫郵箱,同行們一起交流。
2018年8月11日 於北京昌平