网络机制约 11 分钟

第 8 / 26 个单元计算机与软件基础设施区

第 7 章 一条消息怎样穿过网络

核心问题Wi‑Fi、互联网、DNS、传输协议和应用送达状态分别负责什么?

聊天界面显示“已发送”,对方却没有看到。这个状态可能只说明应用接收了输入,也可能表示远端服务已经保存,或者接收方设备已经取得。产品怎样定义状态,必须由具体文档说明。

一条消息不会从一块屏幕直接跳到另一块屏幕。它要经过本地设备、接入网络、互联网路径和远端服务,再到接收方当前在线的设备。理解这条路径,能帮助我们区分“Wi-Fi亮着”“互联网可用”“服务正常”和“对方已读”。

连上Wi-Fi,只完成了接入

网络由能够通信和共享资源的节点与连接构成;互联网则把大量不同网络通过共同协议连接起来。[1]

手机连入家庭或校园Wi-Fi,说明它与本地接入设备建立了连接。之后的数据还可能经过路由器、校园或运营商网络,再进入更广泛的互联网。外部路径中断、域名服务失败或远端服务故障时,Wi-Fi图标仍然可能正常。

同一个局域网内的打印机可以在互联网断开时继续使用,依赖远端账户的应用则可能失效。判断“断网”前,先问本地连接是否存在,其他互联网服务是否可用,只有某个网站出错还是全部路径异常。

地址、名称和路径承担不同职责

网络需要知道数据送往哪里。IP地址用于标识网络通信中的接口与位置,路由设备根据地址和网络规则选择转发路径。地址不应直接等同于某个自然人的永久身份或精确地理位置;设备可能共享地址,地址也会变化。

人更容易记住域名。域名系统DNS把名称查询转换为相应记录,使应用能够找到服务地址。DNS回答“这个名称当前指向哪里”,不传送网页正文,也不保证目标服务安全。[2]

于是,打开一个网站至少涉及两类动作:先把名称解析到可通信地址,再与目标服务建立连接和交换数据。已经知道地址或使用缓存记录时,某次访问也可能不重新进行完整DNS查询。

路由不是一条永远固定的公路。网络会根据拓扑、策略和故障选择路径,去程与回程也可能不同。用户看到的是网址,互联网处理的是一系列分段网络与转发决定。

长消息会被组织成可以传输的数据

应用不会把一条长消息当作一个不可分割物体穿过互联网。数据会按协议组织,可能分成多个传输单元,在接收端重新组合。一条聊天消息不必对应一个数据包。

不同协议解决不同层次的问题。IP负责跨网络传送数据;TCP提供一类可靠、有序的字节流服务,处理重传和顺序等问题;其他应用也可能使用UDP或基于它构建的新协议,根据实时性与可靠性需求取舍。[3]

可靠传输不等于对方已经阅读。TCP确认的是数据到达通信端点的某种状态,应用还要保存消息、识别用户、向设备推送,再由界面显示。网络层成功与业务层完成是不同证据。

HTTP让应用表达请求和响应

网页和许多网络服务使用HTTP语义:客户端提出请求,服务器返回响应。[4] 请求包含方法、目标、头部和可能的内容;响应包含状态、头部与结果。

状态码只在其协议与接口语境中解释。404通常表示当前目标资源未找到,500表示服务器处理出现错误;200说明请求成功处理,也不能自动证明业务数据真实或外部动作完成。

聊天、流媒体和实时通知可能保持连接、分块传输或使用不同协议。AI回答逐字出现,往往是系统流式返回部分结果;屏幕开始显示,不表示完整生成和后续工具动作已经结束。

加密保护传输的一部分

HTTPS通常在HTTP与传输之间加入TLS,保护通信内容免遭路径上的直接窃听或篡改,并通过证书帮助客户端验证连接的服务身份。

锁形图标不能为整套系统担保。服务端仍可能看到解密后的内容,设备本身可能被盗,账户可能遭到冒用,元数据和访问记录也可能保存。是否端到端加密、密钥由谁控制、服务端能访问什么,要看具体产品设计。

在线AI助手常把输入发送到远端模型或服务;检索、工具调用和日志可能继续经过其他系统。有些模型可以本地运行。发送材料以前,应判断数据是否离开设备、经过哪些组织、保留多久以及能否删除。

一次消息经历多个应用状态

发送方点击以后,应用可能依次显示:正在发送、服务器已接收、已送达设备、已读。每个状态由产品定义,不能望文生义。

离线消息可能先保存在本地队列,网络恢复后再发送;远端服务可能保存成功,但接收方设备没有联网;设备收到通知,也不表示用户打开了对话。把状态拆开,才能判断重试是否必要。

排障可以沿四段进行:设备与应用、本地接入、互联网路径、远端服务。先做低风险比较:其他应用是否联网,同一服务能否换网络访问,问题是否只发生在一个账户。不要扫描无权访问的系统,也不要为“修网”安装来源不明的证书或工具。

网络把设备连接起来,远端服务还需要记住登录状态、播放进度和购物车。下一章进入数据服务,解释状态怎样被保存、查询和更新。