# 计算机网络
30 秒速记
- 这一章打底的是「数据怎么从你的电脑走到服务器」:网络的网络、
ISP、交换方式、时延、分层 - 互联网 = 无数个独立网络靠路由器互联,没有一个中心控制全部通信
- 主机通信两种角色模式:
C/S和P2P - 网络传数据用分组交换:切成小包、逐跳存储转发,链路大家共享
- 时延四件套:排队 + 处理 + 传输 + 传播,前端性能优化里的
RTT、带宽都从这来
计算机网络这一章要解决的问题就一个:我在浏览器里敲下一个网址,这些字节是怎么跨过一堆网络到达服务器、又是怎么回来的。 概述部分先搭框架:互联网是由很多独立网络接在一起的,你接入靠的是 ISP;数据被切成一个个分组,在路由器之间逐跳转发;一次请求的耗时可以拆成排队、处理、传输、传播四段。后面讲 TCP、HTTP、DNS 都建立在这套框架上。对前端来说,理解了时延构成,就知道为什么要减少请求数、为什么 CDN 能快、为什么大图压缩有用。
# 一、概述
概述部分是整个计算机网络的地图,后面各层协议都是在这张地图上展开。可以按一次访问网页的过程把这些概念串起来:
- 接入:你的电脑先连到家里的路由器(一个小网络),家庭网关通过宽带接入运营商,也就是
ISP。 - 跨网:运营商网络再和其他运营商、骨干网互联。互联网本质是「网络的网络」,没有哪台设备掌控全局,每个路由器只负责把包送到下一跳。
- 通信模式:浏览器和网站服务器是典型的
C/S模式;BT下载、WebRTC视频通话则更接近P2P。 - 交换方式:电话网用电路交换,先占一条线再说话;互联网用分组交换,数据切成小包,各走各的,链路被很多人共享。
- 时延:一个包从发出到到达,要经历排队、处理、传输、传播四段时延。
对应到前端性能:请求数多,往返就多,传播时延被反复叠加;资源体积大,传输时延就长;服务端繁忙或网络拥塞,排队时延会飙升。所以合并请求、HTTP/2 多路复用、CDN、资源压缩,分别对应着压缩这几段时延。
面试官追问
追问 1前端为什么要学这些偏底层的网络知识?
性能优化和排查线上问题都离不开它。比如首屏慢,你得分清是 DNS 慢、建连慢、带宽小还是服务端慢,不懂时延构成就只能瞎猜。
追问 2CDN 能加速,用这一章的概念怎么解释?
主要是减少了传播时延和跨网络的跳数:内容放在离用户近的节点,往返距离短了,中间经过的运营商网络也少了。
追问 3带宽从 100Mbps 升到 1000Mbps,页面打开会快 10 倍吗?
不会。带宽只影响传输时延,页面加载很多时间花在 DNS、TCP 和 TLS 握手这些往返上,这部分受距离限制,加带宽帮不上。
追问 4在 DevTools 里哪能看到这些时延?
Network 面板点开一个请求看 Timing:Queueing、DNS Lookup、Initial connection、SSL、Waiting for server response、Content Download,大致能和网络层的时延概念对上。
# 网络的网络
30 秒速记
- 网络 = 把主机连起来;互连网(
internet)= 把多个网络连起来,所以叫「网络的网络」 - 小写
internet是泛称,大写Internet专指全球公共互联网 - 连接不同网络靠路由器,按目的
IP逐跳转发 - 没有中心节点控制一切,是很多自治网络按
TCP/IP共同协议协作 - 别混淆:互联网 ≠
Web,网页只是跑在互联网上的一种应用
互联网说白了就是「网络的网络」:家里、公司、运营商各自有网络,路由器把它们一个个接起来,最后连成全球那张大网。 这里有个小细节,小写的 internet 指任何把多个网络互连起来的系统,比如一家公司把几个园区网连起来也算;大写的 Internet 才是我们天天用的全球互联网。数据跨网络走的时候,每个路由器只看目的地址决定下一跳往哪发,没有谁掌握全程路线。顺便一提,很多人把 Web 和互联网当一回事,其实 Web 只是互联网上的一种应用,邮件、DNS、游戏都不是 Web。
网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。

原理拆解: 层级关系可沿数据实际经过的范围理解:一台主机先通过网卡和链路接入某个局部网络;路由器连接地址规划、链路技术或管理主体不同的多个网络;多个网络继续互联便形成互连网。internet 是这种组网形态的泛称,而专有名词 Internet 指全球公共互联网。这里的“网络的网络”不表示存在一台集中控制全部通信的设备,而是许多自治网络按照共同协议协作转发。
具体例子: 家中的手机和电脑连接同一台无线路由器,可视为处于一个家庭网络。访问异地网站时,数据包从家庭网络进入接入运营商网络,再经过其他运营商或骨干网络,最后到达服务器所在网络。端系统负责产生和消费数据,沿途路由器依据目标地址逐跳选择下一段路径,因此通信范围可以跨越多个独立建设和管理的网络。
边界与反例: 多台设备接在同一交换网络中,只能说明它们组成了网络,不能据此称为互联网;两个隔离网络即使都使用 IP,没有路由或转发链路时也没有形成可通信的互连网。企业内部把多个园区网络互联,可称为一个互连网,但它未必接入全球 Internet。同样,网页只是互联网承载的一类应用,不能把 Web 与互联网等同。
工程验证: 可通过 traceroute 或 Windows 的 tracert 观察到目标地址的逐跳路径。若同一局域网通信通常只需本地链路,而公网目标出现家庭网关、运营商和远端网络等多跳,便能验证数据跨网络转发的链路。部分路由器会过滤探测报文,因此超时节点不等于链路中断;应结合最终目标是否可达判断。
面试官追问
追问 1公司内网有几千台机器,但不能上外网,它算互联网吗?
算一个互连网(internet),前提是内部有多个网络靠路由器互通;但它不是全球 Internet,因为没有接进去。
追问 2怎么亲眼看到数据跨了几个网络?
命令行跑 traceroute example.com(Windows 用 tracert),每一行是一跳路由器,能看到从家庭网关到运营商再到目标网络的路径。
追问 3traceroute 中间有几行是 * * *,是不是网断了?
不一定。很多路由器会限速或者直接不回探测包,只要最后一跳能到目标就说明链路是通的。
追问 4两台电脑插在同一个交换机上,通信要经过路由器吗?
不用,同一个局域网里靠交换机按 MAC 地址转发就够了。要去另一个网段才需要路由器。
# ISP
30 秒速记
ISP= 互联网服务提供商,有IP地址资源、线路和路由器,你交钱它把你接进互联网- 多层结构:第一层
ISP(全球骨干)→ 区域ISP→ 接入ISP(你家宽带运营商) IXP(互联网交换点)让两个ISP直接互联,不用绕第三家,路径短、成本低- 层级描述的是覆盖范围,实际数据包不一定严格逐层走,看路由和互联关系
- 家庭宽带拿到的常常不是独立公网
IP,而是运营商NAT后面的内网地址
ISP 就是给你接网的运营商,它手里有 IP 地址、线路和路由器,你付费它负责把你的流量送进互联网。 现在的互联网是分层的:最上面是覆盖全球的第一层 ISP,下面是区域 ISP,最底下是给家庭和企业拉宽带的接入 ISP。不同运营商之间要交换流量,可以通过上级转,也可以在 IXP 直接对接,后者路径更短、时延更低。国内常说的「跨网慢」,比如电信用户访问联通机房的服务,就是因为两家之间互联点少、带宽紧张,所以很多网站会用多线机房或者 CDN。
互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。

目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。

原理拆解: ISP 的作用不是简单出售一个 IP 地址,而是把用户网络接入其可路由的基础设施。它需要管理地址资源、接入线路和路由设备,并把用户流量继续转发到其他网络。用户获得的地址可能是公共地址,也可能位于运营商地址转换之后;核心结果是用户拥有经由 ISP 到达互联网的路径,而非必然独占一个固定公网地址。
接入链路: 以家庭宽带访问网站为例,终端先把数据交给家庭网关,网关经接入线路进入接入 ISP;接入 ISP 再通过区域网络、上级网络或互联关系把数据送往目标服务器所属网络。第一层、区域和接入 ISP 描述的是覆盖范围与互联位置的差异,不代表每个数据包都必须严格依次穿过这三层,实际路径取决于网络之间建立的连接和路由选择。
IXP 与反例: IXP 提供不同 ISP 交换流量的共同设施,使双方可以直接互联,减少绕行第三方网络的路径、成本或时延。但接入同一 IXP 不等于自动互通,双方仍需建立相应互联与路由关系。IXP 也不是面向普通用户提供宽带接入的 ISP,它解决的是网络之间如何更直接交换流量的问题。
工程验证: 可对同一目标执行多次 traceroute,记录接入网关之后的跳数与往返时延,再对比访问本运营商内目标和其他网络目标的路径。若跨网路径在某处缩短,只能作为存在较直接互联的线索,不能仅凭主机名断定经过了某个 IXP。路由可能因负载、故障或策略变化而改变,探测报文也可能被限速;验证时应结合多时段结果以及运营商公开的互联信息。
面试官追问


