计算机网络层次

从分层模型和协议边界出发,追踪数据封装、路由转发和端到端交付。

一句话模型

计算机网络把通信问题拆成层次:应用产生数据,传输层负责进程到进程,网络层负责跨网络寻址与路由,数据链路层负责相邻结点传输,物理层负责比特信号;发送端逐层封装,接收端逆序解封装。

三层递进

  1. 简单:认识 OSI 七层、TCP/IP 四层和常用协议的归属。
  2. 中等:追踪应用数据从进程到网卡的封装,以及接收端的解封装。
  3. 复杂:加入 DNS、TCP、IP、ARP、以太网交换和路由转发,完整解释一次访问如何跨越多个网络。

简单图谱:网络分层

分层的价值是隔离变化:上层只使用下层提供的服务,通过接口和协议完成协作。OSI 更细致地划分会话、表示和应用功能,TCP/IP 将其合并为应用层。

NetworkLayersSimpleMapapp应用层HTTP / DNS / FTPtrans传输层TCP / UDP,进程到进程app->trans数据net网络层IP / ICMP,路由与寻址trans->net报文段 / 数据报link数据链路层帧 / MAC / 介质访问net->linkIP 分组phy物理层比特 / 信号 / 介质link->phy
# 计算机网络

## OSI 七层

- 应用层:面向用户的网络应用
- 表示层:编码、压缩、加密
- 会话层:会话建立、管理和恢复
- 传输层:进程到进程的端到端传输
- 网络层:主机寻址和路由选择
- 数据链路层:帧、MAC、差错与介质访问
- 物理层:比特、信号和传输介质

## TCP/IP 四层

- 应用层:HTTP、DNS、FTP、SMTP
- 传输层:TCP、UDP
- 网际层:IP、ICMP、路由协议
- 网络接口层:以太网、ARP、物理介质

基础知识页面:分层结构各层协议总结

中等图谱:数据封装与解封装

主干问题是:应用层的一段数据如何变成链路上的比特,又如何在接收端还原为应用数据?

NetworkEncapsulationFlowMapdata应用数据segTCP 段 / UDP 数据报+ 传输层首部data->segpacketIP 分组+ 网络层首部seg->packetframe链路帧+ MAC 首部 + FCSpacket->framebits物理比特frame->bitsrecv接收端逆序解封装数据交付应用bits->recv

发送端每经过一层就增加本层首部:传输层形成 TCP 报文段或 UDP 数据报,网络层形成 IP 分组,数据链路层形成帧,物理层发送比特。接收端按相反顺序检查首部、去除首部并交付上层。

层次典型 PDU关键标识
应用层数据URL、域名、应用语义
传输层报文段/用户数据报端口号、序号、确认号
网络层IP 分组源/目的 IP、TTL
数据链路层源/目的 MAC、FCS
物理层比特电/光/无线信号

复杂图谱:一次端到端访问

复杂图在封装流程上叠加名称解析、邻居发现、交换、路由和可靠传输,展示访问远端 Web 服务时不同协议的职责边界。

NetworkEndToEndMapbrowser浏览器 / 应用进程dnsDNS域名 → 目的 IPbrowser->dns解析域名tcpTCP握手、端口、可靠传输dns->tcp得到目的 IPipIP目的 IP + 路由表tcp->ip生成 IP 分组arpARP下一跳 IP → MACip->arp确定下一跳sw交换机按 MAC 转发帧arp->sw封装链路帧router路由器逐跳转发 IP 分组sw->router逐跳传输router->router查表换下一跳server服务器TCP → HTTP → 应用router->server到达目的网络

阅读时沿三条路径追踪:

  • 应用路径:浏览器 → DNS 解析域名 → HTTP/HTTPS 生成请求。
  • 端到端路径:TCP 建立连接、分配端口、序号确认和拥塞控制。
  • 逐跳路径:IP 查路由表决定下一跳,ARP 获取邻居 MAC,交换机按 MAC 转发,路由器逐跳重封装链路帧。

子模块图谱:协议分层与寻址

不同层使用不同的寻址对象:应用层使用域名或资源名,传输层使用端口,网络层使用 IP,数据链路层使用 MAC。地址解析把高层标识逐步落实到下一跳可达的链路地址。

NetworkAddressingLayersMapapp应用层域名 / URLport传输层端口号:目标进程app->portresolveDNS / ARP 等解析把高层标识落实为下一层地址app->resolveip网络层IP:目标主机与网络port->ipmac链路层MAC:当前下一跳ip->macroute路由表决定下一跳ip->routeroute->mac下一跳resolve->ipresolve->mac

子模块图谱:封装与解封装

封装是“向下逐层加首部”,解封装是“向上逐层检查并剥离首部”。中间路由器通常只处理网络层及以下信息,不会把 IP 分组解封装到应用层。

NetworkPduEncapsulationMapapp应用数据Datatransport传输层TCP Segment / UDP Datagramapp->transport加传输层首部network网络层IP Packettransport->network加 IP 首部link数据链路层Framenetwork->link加 MAC 首部和 FCSphysical物理层Bitslink->physical编码为比特strip接收端逐层去除首部并交付上层physical->strip恢复帧/分组/报文

基础知识页面:IPTCPARP数据链路层

关键问题

为什么网络要分层?

分层把复杂通信拆成可组合的功能,每层通过服务接口为上层提供能力。某一层内部协议变化时,只要接口保持稳定,上层不必全部修改。

端到端和逐跳有什么区别?

传输层的可靠性、流量控制和拥塞控制是源主机进程到目的主机进程的端到端问题;数据链路层帧传输和 MAC 转发只负责相邻结点之间的一跳。

IP 地址和 MAC 地址为什么都需要?

IP 用于跨网络定位最终主机并支持路由选择,MAC 用于当前链路上的帧交付。数据经过路由器时,IP 通常保持端到端语义,而每一跳的链路首部会重新封装。

为什么路由器不负责 TCP 可靠传输?

路由器主要处理网络层转发,依据目的 IP 和路由表选择下一跳;TCP 的序号、确认、重传和拥塞控制属于端系统之间的传输层职责。

旁路清单

  • 物理层:奈奎斯特/香农、编码调制、交换方式和传输介质
  • 数据链路层:组帧、CRC、滑动窗口、CSMA/CD、以太网交换
  • 网络层:IPv4/IPv6、子网划分、CIDR、NAT、路由算法、ICMP
  • 传输层:TCP 三次握手/四次挥手、可靠传输、流量控制、拥塞控制、UDP
  • 应用层:DNS、HTTP、FTP、邮件、DHCP 及其端口和下层依赖
  • 横向概念:PDU、协议三要素、服务与接口、MTU 与分片

对应页面:物理层数据链路层网络层传输层应用层