Skip to content

第 06 课 · 网络栈:从浏览器到 google

一层层寄合同:应用 → 快递 → 地址 → 本楼投递。

作者:曹宇春


先记住这个类比

打开 https://google.com ≈ 寄一份 密封重要合同

层级协议类比
应用层HTTP(S)合同正文与格式
传输层TCP / UDP快递方式:签收重发 vs 扔门口
网络层IP收件地址
链路/物理Wi-Fi / 网线本楼怎么递、路上怎么传

IP = 公司地址;端口 = 分机号(443 常挂 HTTPS,3000 常挂本地开发服)。


正式概念(人话版)

典型步骤

  1. DNS:查「google.com」对应哪个 IP ≈ 查电话簿
  2. TCP 三次握手:确认双方在线再传大包
  3. TLS:装进密封袋(HTTPS)——中间人难偷看
  4. HTTP:要页面内容
  5. 渲染:解析 HTML/CSS/JS,画到屏幕

Socket

进程手里的「通信端点」= IP + 端口(及协议)。
一个 Chrome 可以同时握很多 socket。

localhost / 127.0.0.1

公司内部对讲:数据在本机内核绕一圈,不走外网
npm run dev 时访问 http://127.0.0.1:3000 就是这套。

程序怎么找总管

读写网络、打开文件都要走 系统调用(syscall) ≈ 填领料单——员工不能自己碰网卡驱动。


在你电脑上看一眼

bash
# 谁占用了 3000 端口
lsof -i :3000

# 已建立的连接(节选)
netstat -an | grep ESTABLISHED | head -10

# 本机常见网卡/Wi-Fi 概况(可选)
ifconfig | head -40

开发常见坑:端口被占用——另一个部门占着同一分机号,后到的起不来。


开发里什么时候用得上

  • API 超时:可能是 DNS、防火墙、TLS 证书、对端挂了——分层排查
  • Charles / Wireshark:在运输途中「拆袋检查」(HTTPS 需证书信任)
  • 代理 / VPN:改的是「快递走哪条路」

练习

  1. 本机跑一个前端/后端,用 lsof -i :<端口> 确认监听进程。
  2. 用浏览器打开一个站点,口头复述:DNS → TCP → TLS → HTTP。

小结

  • 网络分层:各办各事,坏了先分层定位
  • 端口是分机号;localhost 是内线
  • Socket + syscall:程序不能直接摸硬件

下一课:隔间与分公司——容器与虚拟机。

© 曹宇春 · 个人学习整理,欢迎交流