• 正文
    • Part 01●??QoS服務(wù)?●
    • Part 02●??游戲場(chǎng)景下TCP與UDP的區(qū)別?●
    • Part 03●??TCP與UDP的場(chǎng)景選擇?●
    • Part 04●?UDP協(xié)議的QoS問(wèn)題?●
    • Part 05●??結(jié)語(yǔ)?●
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | 場(chǎng)景寬帶的底層由來(lái)

2023/08/14
2488
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者:樂(lè)昂霖,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心

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

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

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

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

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

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

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

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

Part 03●??TCP與UDP的場(chǎng)景選擇?

那么在不同的使用場(chǎng)景中究竟是使用UDP還是TCP呢?

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

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

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

在訪(fǎng)問(wèn)一些國(guó)外學(xué)術(shù)網(wǎng)站、游戲服務(wù)器時(shí),直接連接效果可能不佳,因此需要使用場(chǎng)景寬帶來(lái)實(shí)現(xiàn)優(yōu)化效果。以游戲?yàn)槔驗(yàn)橛螒蛲ǔJ褂肬DP進(jìn)行傳輸,而普通的運(yùn)營(yíng)商網(wǎng)絡(luò)對(duì)UDP會(huì)產(chǎn)生較大的干擾,所以場(chǎng)景寬帶需要對(duì)游戲客戶(hù)端與代理服務(wù)器之間的連接進(jìn)行一些處理。

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

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

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

存儲(chǔ)壓力指的是設(shè)備需要配置大量?jī)?nèi)存來(lái)保存大量連接。

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

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

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

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

普通的運(yùn)營(yíng)商網(wǎng)絡(luò)對(duì)TCP更友好,對(duì)UDP不友好,但同樣無(wú)法深度檢測(cè)TCP連接的真實(shí)性。一個(gè)簡(jiǎn)單的例子是將正常TCP數(shù)據(jù)的協(xié)議字段改為UDP。這樣做會(huì)導(dǎo)致通信出現(xiàn)問(wèn)題,甚至無(wú)法進(jì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é)語(yǔ)?

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠(chǎng)商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
TCAN4550RGYRQ1 1 Texas Instruments Automotive system basis chip (SBC) with integrated CAN FD controller & transceiver 20-VQFN -40 to 125

ECAD模型

下載ECAD模型
暫無(wú)數(shù)據(jù) 查看
KSZ8463MLI-TR 1 Microchip Technology Inc Manchester Encoder, PQFP64
暫無(wú)數(shù)據(jù) 查看
KSZ8995MAI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP128

ECAD模型

下載ECAD模型
$12.3 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶(hù)資源
  • 寫(xiě)文章/發(fā)需求
立即登錄

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