Skip to content

TCP/IP 四层模型是什么? ​

  • 标签:网络

🏛 业务架构师 ​

TCP/IP 四层是互联网的实际运行模型:链路层(以太网/WiFi,帧传输)→ 网络层(IP,主机到主机寻址路由)→ 传输层(TCP/UDP,进程到进程的可靠或快速交付)→ 应用层(HTTP/DNS/SSH,业务语义)。

它与 OSI 七层的关系:OSI 是先设计的理论模型(多了表示层、会话层),TCP/IP 是事实运行标准的事后总结。业务上真正排障用的是 TCP/IP 四层。

我讲它的实战价值——分层定位思维。"网站打不开"这种模糊客诉,按层走一遍就能锁定根因:

  1. 链路层:网卡、交换机、线缆——ping 网关不通,物理或局域网问题;
  2. 网络层:IP 与路由——ping 通 IP 但 ping 不通域名是 DNS(应用层)问题;traceroute 看断在哪一跳,判断"我们机房还是运营商";
  3. 传输层:telnet/nc 测端口通不通——通,网络没事,往上看;不通,防火墙、安全组、进程没起;
  4. 应用层:curl 带详细输出看 HTTP 状态、TLS 握手、响应耗时分布(dns/connect/ttfb)。

这套流程把"扯皮的模糊故障"变成"明确归属某一层的证据链"——跨团队故障定位 80% 的时间耗在'是谁的问题'上,分层模型就是责任边界的共同语言。

架构引申:分层思想在设计侧同样值钱——网关、服务、数据各层只对自己层的契约负责,故障域与责任域对齐,组织协作才顺畅。Conway's Law 的技术面,就是这四层模型。

🏗 系统架构师 ​

TCP/IP 四层是互联网事实上的协议栈模型,从下到上:

  • 网络接口层:网卡驱动 + 以太网/WiFi 帧,负责物理寻址(MAC)与本地链路传输;
  • 网络层(IP):主机到主机、尽力而为的包交付;IP 地址 + 路由转发,ICMP(ping)、ARP 也在这层活动;
  • 传输层(TCP/UDP):端到端进程间通信,端口区分应用;TCP 提供可靠有序字节流(连接、重传、流控、拥塞控制),UDP 轻量无连接;
  • 应用层:HTTP/HTTPS、DNS、SSH、MQTT 等直接面向业务的协议。

与 OSI 七层的关系:OSI(物理/链路/网络/传输/会话/表示/应用)是先设计的理论参考模型,分层严谨但会话/表示两层在实践中很少独立存在;TCP/IP 是事实标准的工程实现,把 OSI 下两层合并为网络接口层、上三层合并为应用层。答这题我会强调:分层的核心价值是每层只依赖下层的抽象接口——应用改协议不用动路由器,传输层升级 TCP 算法 HTTP 无感。做架构设计时"分层 + 接口契约"的思想正源于此:系统分层的评判标准就是能否像协议栈一样,任意一层被替换而其他层不动。

💻 全栈开发专家 ​

四层从上到下 + 每层解决什么:

  • 应用层:业务语义与表达——HTTP、DNS、TLS(教学上常放应用层之下)、SSH。
  • 传输层:端到端可靠/不可靠传输,用端口区分进程——TCP、UDP。
  • 网络层:主机到主机寻址路由,用 IP 地址——IP、ICMP(ping)。
  • 链路层:相邻节点帧传输,MAC 地址——以太网、ARP。

对照 OSI 七层的映射:应用层 ≈ (应用+表示+会话),其余一一对应。TCP/IP 是工程事实标准,OSI 是教学模型。

我的分层排障法(这是实用价值):

bash
ping 10.0.0.5                 # 通 → 网络层以下 OK
telnet 10.0.0.5 3306 / nc -vz # 通 → 传输层端口 OK
curl -v http://10.0.0.5:8080/api  # 通 → 应用层 OK

自底向上定位:ARP 冲突/VLAN 问题(链路)→ 路由/安全组(网络层,ping 不通先查 iptables/安全组)→ 端口没监听/防火墙(传输层,ss -tlnp)→ 404/超时/证书(应用层)。抓包时 wireshark 也是按这个分层展示,一眼判断问题在网络还是应用。