你有没有遇到过这种情况:手机连着Wi-Fi,刷网页突然卡住,但别人用却没问题?重启路由器好像也没用。其实问题可能不出在信号强弱,而是数据包在协议栈里“迷了路”。
数据包是怎么从手机到网页的
当你在浏览器输入一个网址,手机并不是直接把请求发给网站。它先把数据拆成一个个小包裹,也就是数据包。这些包不会自己跑,得靠协议栈一层层打包、传送、拆包。
协议栈就像快递分拣中心,每一层负责不同的任务。从上到下大致分为:应用层、传输层、网络层、数据链路层、物理层。每个层都给数据包加上自己的“快递单”,也就是头部信息。
每一层都在干什么
比如你打开一个网页,应用层(HTTP)先准备好你要访问的页面请求。然后交给传输层,TCP协议会给它加上端口号和序列号,确保对方能按顺序收全。
接着网络层出场,IP协议加上源地址和目标地址,相当于填好寄件人和收件人。到了数据链路层,比如Wi-Fi用的以太网协议,再加个MAC地址,这回连具体哪台设备都标清楚了。
最后通过物理层转成无线信号发出去。到了路由器,协议栈开始反向操作:一层层剥掉头部,看内容该往哪儿转。就像快递到了站点,先看省市区,再看街道门牌,最后送到你手上。
出问题常卡在哪一层
有时候ping不通,可能是网络层的IP配置错了,比如路由器分配的地址不对。如果网页打不开但能ping通,大概率是传输层的端口被堵了,比如防火墙拦了80端口。
家里多个设备抢网速,其实是数据链路层在调度。老设备用的是802.11b,新手机用802.11ac,路由器得来回切换模式,效率就低了。这时候换个支持MU-MIMO的路由器,各走各的道,互不干扰。
一个小实验看协议栈工作
在电脑命令行输入:
ping www.baidu.com
你能看到数据包发出、返回的时间。这个过程走完了从应用层到物理层再回来的全套流程。如果某次延迟特别高,可能是中间某层处理慢了,比如路由器CPU忙不过来。
再比如用手机热点分享网络,你的手机就变成了一个小型路由器。协议栈不仅要处理自己的数据包,还得帮别的设备转发。这时候如果卡,未必是信号问题,可能是NAT转换(网络地址转换)压力大。
了解协议栈怎么干活,下次排查网络问题就能有的放矢。不用一卡就重启,而是看看是地址配错了,还是端口被占了,或是设备太多挤在一起。