|
凌晨两点,端口溢出我盯着路由器管理页面里那个不断跳动的端口溢出数字——连接数从八千涨到一万二,再到一万五。端口溢出这台服役三年的端口溢出家用路由器,散热孔里飘出焦糊味。端口溢出 端口溢出,端口溢出说到底就是端口溢出门卫室被挤爆了。每个网络连接都要占一个端口,端口溢出就像每封信都要占一个信箱格。端口溢出家用路由器通常只有几千个端口可用,端口溢出可如今智能家居、端口溢出手机、端口溢出电脑、端口溢出电视盒子,端口溢出哪个不是端口溢出贪得无厌的连接大户?我家的智能音箱每隔几秒就心跳一次服务器,冰箱显示屏要同步天气,连体重秤都想上传数据。 那天我拔掉所有设备,只留一台笔记本电脑直连光猫。网速瞬间从龟爬变成飞驰。问题不在宽带,在路由器这个小小门卫。它要同时记住每个数据包该往哪送,端口满了,新来的数据包就只能排队等,等到超时,就干脆丢弃。于是视频卡成PPT,游戏掉线,网页转圈圈。 这玩意儿在商用领域更凶险。朋友在电商公司做运维,双十一凌晨那会儿,他们服务器的连接数冲到了设计上限的三倍。监控大屏上红色告警像烟花一样炸开——负载均衡器端口耗尽,新请求全部拒之门外。他们紧急扩容,把端口范围从默认的三万拉到六万五,才算稳住阵脚。 有意思的是,端口溢出不一定都是坏事。有些攻击专门制造端口溢出,比如SYN Flood,就是疯狂发送半连接请求,把服务器的端口占满,让正经用户进不来。这手法老套,但至今有效,因为每个系统的资源总有上限。 我后来换了个企业级路由器,端口容量大了十倍不止。但我知道这只是缓兵之计。物联网设备还在爆炸式增长,每个灯泡、插座、摄像头都想联网。它们不像手机浏览器那样用完就关,而是常年保持着后台连接,像一群赖着不走的客人,占着沙发不走。 或许过几年,我们得接受一个现实:IP地址不够用,端口也不够用。IPv6能解决地址问题,但端口数量是协议写死的,改不了。到时候只能靠更聪明的调度算法,或者干脆让设备之间点对点通信,别再什么都往中心服务器挤。 关掉路由器电源,等它彻底冷却再重启,连接数清零,一切重新开始。但明早闹钟一响,那些设备又会争先恐后地挤进来。端口溢出就像城市早高峰的环岛,车流一大,谁也走不动。区别在于,城市可以修高架,而端口协议这堵墙,暂时还没人凿得开。 |