當前位置: 華文世界 > 科技

陰謀論:你家寬頻被營運商限制連線數了嗎?

2024-10-18科技

這是一個回復:

一直在民間有那麽一個說法,寬頻營運商會限制寬頻使用者的連線數。這件事給很多數位小白們唬得一楞一楞的。

先簡單的說,限制一個寬頻使用者的連線數這件事可行,在IT行業中沒有什麽事情是不可行的,砸錢就行。

先說怎麽做:寬頻營運商可以透過配置其網路裝置(如接入路由器、防火墻或閘道器)來限制每個使用者能夠建立的最大並行會話數。例如「最大連線數限制」,要做這個限制營運商可以為每個使用者定義一個最大連線數閾值(例如 100 個並行連線)。當使用者嘗試發起超過這個限制的連線時,新的連線將被拒絕,直到之前的一些連線關閉。或者利用裝置級別的 NAT 表限制,在營運商的 NAT(網路地址轉換)裝置上,連線數也可能受限。NAT 表儲存著使用者每個外部連線的對映條目,NAT 表的大小可能有限,從而限制了並行連線數。也可以在防火墻、路由器的QoS上做出限制。

關鍵問題是——控制連線數需要多少成本呢?以天津聯通為例子,截止到昨天為止,天津聯通的寬頻使用者一共有579萬,「硬控」這些使用者的連線數也就成了一個百萬使用者級別的巨大工程。

為什麽這樣說,這是由TPC/IP網路的特性決定的。在網路中數據是以封包的形式進行傳輸的,所謂的「連線」並不是你家裏的裝置接入到了無線網路或者有線網路,而是在TCP/IP網路中建立了有效的連線。

客戶端會向伺服器發送封包,伺服器也會向客戶端返回封包,經過四個封包的交換三次握手,TCP的連線就可以建立起來。

不過,這是在邏輯層面的連線,在網路裝置看來還依舊是一個一個封包被從一個埠轉發到另一個埠。

昨天有人問iN為什麽三層交換機要比二層交換機貴呢?原因在於鏈路層只有協定埠轉發並不像網路層一樣要解包讀取封包的網路層資訊。

因此如果需要控制一個寬頻使用者的客戶端連線數其實就要深入到封包中來探查解密資訊了,這不是一個路由器的預設操作。對於大規模的使用者數據分析就需要在伺服器上增加業務板了。

骨幹路由器和家用路由器不同的是本身是一個大型的機箱,內部要插入不同的業務板來實作特定的功能。

這些業務板就不是標配了,換句話說是要花錢的。

以天津不到600萬寬頻使用者來計算,如果控制TCP連線數,一年所需要花費的成本大約在3720萬左右(30個骨幹接入節點、5年裝置更替、人員、軟體、能源)。每年投入3700萬做這件事的收益是什麽呢?——限制使用者的TCP連線數?降低網路使用體驗,讓使用者跑到競爭對手的一邊去?典型的花錢不討好啊!

那麽一個使用者能有多少個寬頻連線呢?

以iN家裏負載比較重的情況來看,也就是300出頭、不到400個。那這個事情值得限制嗎?

這件事是怎麽傳出來的呢?其實是很多賣專線的銷售,本身說不清楚自己賣的路線和家用路線的區別,會硬扯到連線數上來,直接胡謅說專線的連線數沒限制,家用網路限制了連線數。於是大家還就真的信了。

道理就是這樣的道理。

當然了,這件事是iN憑自己的經驗來說給大家的,在iN自己的認知範圍內。至於寬頻使用者是不是被限制了連線數,咱們自己一測試不就可以測試出來嘛?

要驗證這件事,直接寫個程式就行——透過客戶端向伺服端發起大量的 TCP 連線 來測試連線數量是否被營運商限制。程式的原理是透過持續發起大量的並行連線,並觀察客戶端與伺服端之間成功建立的連線數量,以此來檢測寬頻服務商是否對並行連線數量進行了限制。具體來說,這個程式的原理和步驟可以分解為以下幾個方面:

TCP 連線的基礎原理

TCP(傳輸控制協定)是面向連線的協定,每次通訊都需要建立一條可靠的雙向連線,這通常透過三次握手完成:

第一步(SYN):客戶端向伺服端發送一個 SYN(同步)請求,表示想要建立連線。

第二步(SYN-ACK):伺服端收到請求後回復 SYN-ACK,表示同意建立連線。

第三步(ACK):客戶端收到 SYN-ACK 後,回復 ACK,表示確認,連線建立。

當客戶端成功與伺服端建立大量的連線時,我們就可以透過統計這些連線來判斷是否存在某種形式的限制。

知道了這一點就很簡單了,直接寫程式來完成驗證就好。

程式分為兩個部份,第一個放在遠端的伺服器中,第二個放在本地。這樣在執行python tcp_client.py --server_ip <遠端伺服器IP地址>的時候,程式就可以不斷建立連線,此時,讀出已經成功建立的連線數量,我們就可以知道家裏的機器到伺服器上到底有多少個連線了

反正,iN最後的測試結果是停在了47289個連線上。

相對於平時家用的狀態400個不到的連線數量,47289 可能可以算作是沒有限制吧。

所以說寬頻營運商限制連線數的傳言,雖然從技術上是可行的,但實際操作中成本巨大且收益有限。營運商不太可能投入巨資去限制普通使用者的連線數,畢竟這不僅會影響使用者體驗,還可能導致客戶流失。而在家用場景中,日常使用的連線數遠未達到可能被限制的範圍。如果你對自家寬頻的連線數存疑,不妨親自動手,利用簡單的程式進行測試,事實勝於猜測。就像iN透過測試發現的那樣,47289個連線,足以說明並沒有什麽限制。

寬頻營運商限制使用者的連線數,這事情,iN還就真的不信了。