有人问我网络是网络怎么连起来的,我总爱拿快递打比方。知识你寄包裹不需要知道卡车怎么开、基础飞机怎么飞,题库只需要写对地址。网络网络也一样——数据包就是知识快递,IP地址就是基础门牌号,路由器就是题库分拣中心。但真较起真来,网络这比喻漏洞百出。知识快递丢了能索赔,基础数据包丢了只能重传;快递有体积限制,题库数据包最大也就1500字节左右。网络这些细节,知识恰恰是基础网络知识的趣味所在。
先说说那个最基础的门牌号系统。IPv4地址是32位的,理论上能编出43亿个地址。2019年11月,欧洲的地址池彻底分光了。当时我盯着那条新闻,心想这些年我们到底做了什么,能把43亿个号码用得一干二净?答案很简单:人手一台手机,每台手机还要占好几个地址。IPv6把地址拉长到128位,这个数字大到什么程度?地球上每粒沙子都能分到几万亿个地址。可切换过程拖了二十年,因为运营商觉得IPv4还能凑合,直到真的凑合不下去了。
再说说DNS,这玩意儿堪称互联网的通讯录。我见过太多人把DNS和网关混为一谈——网关是小区大门,DNS是门牌号查询台。你输入baidu.com,DNS服务器“啪”地一下返回一串IP,浏览器才找得到路。有个冷知识:全球只有13台根服务器,但这不是13台机器,是13个集群。2018年某次根服务器被攻击,流量峰值到了每秒1.3Tbps,结果系统扛住了。这种事没人报道,因为没瘫痪就是最好的新闻。
TCP和UDP这对冤家值得单独聊聊。TCP像挂号信,必须确认签收,丢一封补一封,所以看视频卡顿时大家都在骂TCP——它太较真了,哪怕延迟一毫秒也要重传。UDP像广播,喊出去就不管了,语音通话用UDP,偶尔丢几个字听不清,但至少不卡成PPT。我见过不少初学者纠结选哪个,其实规则很粗暴:文件传输用TCP,实时通话用UDP。如果做游戏,两者混用才是常态,位置同步用UDP,登录验证用TCP,这就像吃饭用筷子喝汤用勺子,没人会拿勺子吃牛排。
有个现象挺有意思:很多人能背出OSI七层模型,却说不清实际用的TCP/IP四层模型。OSI是教科书里的理想国,TCP/IP才是现实中的江湖。物理层和链路层在TCP/IP里被合并了,会话层和表示层直接被砍掉——因为工程师发现,真正干活只需要四层。这就像学做菜,理论上要分洗菜、切菜、炒菜、装盘四步,但如果你做凉拌菜,洗和切可以同时进行,装盘就是换个容器而已。
最后说个容易踩的坑:子网掩码。很多人以为它是用来“隐藏”什么的,其实它是用来划界的。192.168.1.1/24和192.168.2.1/24看起来像邻居,但子网掩码告诉你这俩不在同一个局域网,通信必须经过网关。我调试过好几次设备,都是栽在掩码上——两台打印机明明连着同一个交换机,就因为掩码配错,死活互相找不到。这种问题,看一百遍理论不如亲手配错一次。
网络知识最迷人的地方在于,它既有绝对规则,又有大量灰色地带。你完全按协议来,可能还是不通;你稍微变通一下,反而能解决问题。这行当干久了,会养成一种习惯:任何“不可能”的故障,多半是某个基础概念被忽略了。