加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • Part 01●??QoS服務(wù)?●
    • Part 02●??游戲場景下TCP與UDP的區(qū)別?●
    • Part 03●??TCP與UDP的場景選擇?●
    • Part 04●?UDP協(xié)議的QoS問題?●
    • Part 05●??結(jié)語?●
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | 場景寬帶的底層由來

2023/08/14
3198
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:樂昂霖,單位:中國移動智慧家庭運營中心

隨著學(xué)術(shù)交流、即時游戲、移動端實時音頻等高度依賴網(wǎng)絡(luò)使用的場景愈發(fā)豐富,對網(wǎng)絡(luò)在不同場景下的加速需求催生了場景寬帶。從本質(zhì)上來說,場景寬帶就是為普通的網(wǎng)絡(luò)提供了一系列加速服務(wù),本文將淺談網(wǎng)絡(luò)加速服務(wù)需求出現(xiàn)的底層原因。

Part 01●??QoS服務(wù)?

國內(nèi)的運營商網(wǎng)絡(luò)一般都會提供QoS。QoS指的是網(wǎng)絡(luò)利用各種基礎(chǔ)技術(shù),以提供更好的服務(wù)能力來支持特定的網(wǎng)絡(luò)通信。它是一種網(wǎng)絡(luò)安全機制,旨在解決網(wǎng)絡(luò)延遲和阻塞等問題。簡單來說,當(dāng)網(wǎng)絡(luò)擁堵時,運營商會優(yōu)先處理重要的流量包,而將一些不重要的包丟棄。具體丟棄哪些包則取決于使用場景和運營商的策略。

對于受到QoS限制的用戶而言,可能會出現(xiàn)以下表現(xiàn):網(wǎng)速降低、丟包、ping值不穩(wěn)定。在這種情況下,細分場景用戶往往希望進一步獲取更好的網(wǎng)絡(luò)質(zhì)量以滿足場景使用,例如更高的帶寬、更少的丟包和更低的延遲。

需要注意的是,QoS并不區(qū)分TCPUDP。對于UDP來說,除了常規(guī)的QoS限制,還可能存在更嚴(yán)格的限制,甚至在某些極端情況下會屏蔽UDP。這主要是因為UDP的無連接、無狀態(tài)、支持廣播和最大努力傳輸?shù)忍匦允沟镁W(wǎng)絡(luò)運營商控制UDP的成本較高。

Part 02●??游戲場景下TCP與UDP的區(qū)別?

通常情況下,為了確保游戲的實時性,使用UDP進行網(wǎng)絡(luò)傳輸是常見的做法。例如,在射擊游戲中,當(dāng)角色在行走時遇到網(wǎng)絡(luò)卡頓,畫面會卡住,但當(dāng)恢復(fù)后,畫面中的角色已經(jīng)跳到下一個位置,仿佛跳幀了一般。這是UDP的特性,它盡最大努力進行傳輸,允許丟包。

相比之下,如果使用TCP,當(dāng)網(wǎng)絡(luò)卡頓時,你會發(fā)現(xiàn)游戲畫面暫停,角色像卡在幻燈片上一樣逐幀向前移動。這是因為TCP是面向連接的,丟失的包會被重傳,確認后才會繼續(xù)進行。當(dāng)然,游戲中不僅僅使用UDP、TCP,更高層的協(xié)議如HTTP也可能被使用,這完全取決于游戲?qū)ρ舆t的要求。

Part 03●??TCP與UDP的場景選擇?

那么在不同的使用場景中究竟是使用UDP還是TCP呢?

如果是客戶端間歇性發(fā)起無狀態(tài)查詢,并且偶爾的延遲是可以接受的(例如查詢學(xué)術(shù)論文、參考信息等),那么可以考慮使用HTTP/HTTPS。

如果客戶端和服務(wù)器都可以獨立發(fā)包,但偶爾的延遲是可以容忍的(例如在線紙牌游戲、許多MMO游戲),那么可以考慮使用TCP長連接。

如果客戶端和服務(wù)器都可以獨立發(fā)包,并且無法容忍延遲(例如大多數(shù)多人動作游戲、一些MMO游戲、直播互動等),那么考慮使用UDP。

在訪問一些國外學(xué)術(shù)網(wǎng)站、游戲服務(wù)器時,直接連接效果可能不佳,因此需要使用場景寬帶來實現(xiàn)優(yōu)化效果。以游戲為例,因為游戲通常使用UDP進行傳輸,而普通的運營商網(wǎng)絡(luò)對UDP會產(chǎn)生較大的干擾,所以場景寬帶需要對游戲客戶端與代理服務(wù)器之間的連接進行一些處理。

Part 04●?UDP協(xié)議的QoS問題?

每次UDP套接字發(fā)送數(shù)據(jù)包時,源端口會隨機變化。如果一個設(shè)備頻繁發(fā)送UDP包,會在短時間內(nèi)產(chǎn)生大量的五元組(源IP地址、源端口、目標(biāo)IP地址、目標(biāo)端口、協(xié)議)。傳統(tǒng)的狀態(tài)防火墻和狀態(tài)NAT會使用一個五元組來跟蹤一個連接。如果連接數(shù)量過多,會給保存狀態(tài)的設(shè)備帶來巨大壓力。

這種壓力主要體現(xiàn)在兩個方面:存儲壓力和處理器壓力。

存儲壓力指的是設(shè)備需要配置大量內(nèi)存來保存大量連接。

處理器壓力指的是設(shè)備在數(shù)據(jù)包到達時需要花費更多時間匹配連接。

由于UDP協(xié)議的無狀態(tài)特性,沒有任何報文指示何時創(chuàng)建或銷毀連接,設(shè)備必須能夠自行老化已創(chuàng)建的UDP連接,并在權(quán)衡中做出決策。如果老化時間過短,會破壞通信頻率較低的UDP連接。如果老化時間過長,將會導(dǎo)致無效的UDP連接消耗大量內(nèi)存,為DDoS攻擊提供攻擊面。攻擊者只需構(gòu)造不同的UDP五元組的報文通過狀態(tài)設(shè)備,由于UDP報文沒有連接創(chuàng)建或銷毀的控制信息,狀態(tài)設(shè)備不得不對待所有新到達的五元組,并為它們創(chuàng)建連接并指定相同的老化時間。

而TCP協(xié)議與此完全不同,由于具有syn、fin、rst等控制信息,狀態(tài)設(shè)備可以為不同狀態(tài)的TCP連接指定不同的老化時間,ESTABLISHED狀態(tài)的連接老化時間明顯更長。這使得使用TCP實施同樣攻擊更加困難。為什么快速構(gòu)造不同的TCP五元組無法達到UDP的效果呢?如果盲目使用不同源端口發(fā)送syn,沒有真正的對端回應(yīng)的情況下,這種連接狀態(tài)將很快老化(在10秒甚至更短的時間內(nèi))。如果構(gòu)造大量使用不同端口的真實TCP連接,那么除了給狀態(tài)設(shè)備帶來傷害外,攻擊者自己也必須付出巨大代價來維持這些連接。你發(fā)起一個TCP連接,為了讓狀態(tài)設(shè)備保存該連接,你也必須保存該連接。除非通過大量的反射主機同時發(fā)起真實連接,否則在單臺或少量主機上,這種攻擊很難成功。對于無狀態(tài)設(shè)備來說,我們不再需要擔(dān)心五元組連接的保持。

但是UDP短時間內(nèi)構(gòu)造大量五元組仍會影響無狀態(tài)設(shè)備的包分類算法的正常運行?;诎诸愃惴ǖ膬?yōu)先級隊列和緩存管理幾乎都是基于五元組計算的,UDP的特性會使無狀態(tài)設(shè)備難以對其進行流量控制。結(jié)果就是,即使UDP流量擠滿各級隊列和緩存,也無法準(zhǔn)確識別出來。即便是BBR(Bottleneck Bandwidth and Round-trip propagation time)遇到UDP流量,也只能降低pacing rate,別無他法。

普通的運營商網(wǎng)絡(luò)對TCP更友好,對UDP不友好,但同樣無法深度檢測TCP連接的真實性。一個簡單的例子是將正常TCP數(shù)據(jù)的協(xié)議字段改為UDP。這樣做會導(dǎo)致通信出現(xiàn)問題,甚至無法進行有效的傳輸:

if (iph->protocol == IPPROTO_TCP) {    iph->protocol = IPPROTO_UDP;    ip_send_check(iph);    udph->check = 0;} else if (iph->protocol == IPPROTO_UDP) {    iph->protocol = IPPROTO_TCP;    ip_send_check(iph);}

Part 05●??結(jié)語?

到這里,已經(jīng)從底層角度基本說明了為什么在學(xué)術(shù)、游戲、實時音頻等場景下會催生進一步的網(wǎng)絡(luò)加速服務(wù)需求了。而加速服務(wù)的主要難在兩點:其一,是如何處理客戶端到加速器服務(wù)器之間的UDP連接;其二,是如何讓游戲客戶端去連接這個加速器(一般游戲客戶端是沒有設(shè)置代理服務(wù)器的功能的)。而場景寬帶也正是旨在解決特定場景下以上所述的這些問題,為特定網(wǎng)絡(luò)應(yīng)用場景提供更流暢、快速的網(wǎng)絡(luò)體驗,在未來構(gòu)筑更多元化、優(yōu)質(zhì)的網(wǎng)絡(luò)服務(wù)。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
CC430F5137IRGZ 1 Texas Instruments 16-Bit ultra-low-power CC430 Sub 1 GHz wireless MCU with 12-Bit ADC, 32kB Flash and 4kB RAM 48-VQFN -40 to 85

ECAD模型

下載ECAD模型
$7.53 查看
KSZ8081MNXCA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER
$1.36 查看
KSZ8463MLI 1 Microchip Technology Inc DATACOM, MANCHESTER ENCODER
$6.84 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進門戶。