CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
网络工程师入门/课时/OSI 与 TCP/IP
RawBlame
课时目录12 节

网络工程师入门

  1. 01网络工程师是什么
  2. 02OSI 与 TCP/IP
  3. 03IP 寻址与子网
  4. 04网络设备
  5. 05路由协议
  6. 06交换与二层
  7. 07无线网络
  8. 08网络安全
  9. 09云网络与自动化
  10. 10排障与可观测
  11. 11认证与学习路径
  12. 12综合练习

OSI 与 TCP/IP

七层模型、TCP/UDP、协议栈。

35 分钟

OSI 与 TCP/IP:逐层拆解

这一课你将能做到

  1. 说出 OSI 七层与 TCP/IP 四层的对应关系及每层职责
  2. 用抓包验证一次请求的「封装—解封装」全过程
  3. 把一条命令或一个故障现象准确归到某一层

为什么要学

OSI 不是考试专用摆设,它是排障的坐标系。你以后会遇到无数「说不清」的故障:curl 卡住、握手失败、偶发超时。会分层的人,一句「TCP 都没建立,别看应用日志了」就能砍掉一半排查方向。这一课让你拿到这个坐标系,后面每一课都挂在它的某一层上。

先建立图像

一次 HTTPS 请求在协议栈里是这样「洋葱式」封装的:

应用层  │ HTTP:  GET /index.html HTTP/1.1          ← 你写的代码在这层
传输层  │ TCP:   端口 51234 → 443  序号 / 确认 / 重传 ← 连接与可靠性
网络层  │ IP:   10.0.1.5 → 142.250.x.x  TTL=64     ← 寻址与路由
链路层  │ 以太网: MAC aabb.ccdd.eeff → 网关MAC       ← 相邻设备投递
物理层  │ 01010110... 电信号 / 光信号                ← 网线 / 光纤

对端收到后逐层剥壳:链路层拆帧 → 网络层拆包 → 传输层拆段 → 应用层拿到报文。每一层只处理自己的头,绝不越权——这就是「分层解耦」。

跟着做

步骤 1:确认工具

tcpdump --version    # macOS/Linux 通用;Windows 用 Wireshark 直接抓

步骤 2:抓一次 DNS + TCP + TLS

sudo tcpdump -i any -nn -c 20 'host example.com and (port 443 or port 53)' &
curl -s https://example.com >/dev/null

观察输出依次出现:DNS 查询(端口 53)→ TCP SYN / SYN-ACK / ACK → TLS Client Hello → 加密应用数据。这就是四层协议在一秒内的真实协作;前三个包(SYN、SYN-ACK、ACK)就是三次握手,面试必考题在抓包里长这个样子。

步骤 3:保存文件用 Wireshark 逐层展开

sudo tcpdump -i eth0 -w /tmp/http.pcap 'tcp port 443 and host example.com' -c 30

用 Wireshark 打开 pcap,从 Frame → Ethernet → IP → TCP → TLS 逐层展开,对照上面那张图,每层头部的字段清晰可见。

步骤 4:每层配一条验证命令

ethtool eth0            # 物理:Link detected? 速率双工
ip neigh                # 链路:ARP 表(IP ↔ MAC)
ping -c2 223.5.5.5      # 网络:三层可达
ss -tlnp | grep 443     # 传输:端口监听
curl -sI https://example.com | head -1   # 应用:全链路

记住这张「层 ↔ 命令」对照表,排障时按层点名。

步骤 5:记住「层 ↔ 设备 ↔ 地址」三对照

层典型设备地址形式
物理网线 / 光纤 / 集线器电信号 / 光信号
链路交换机、网卡MAC(48 位,扁平无结构)
网络路由器、三层交换机IP(32 位,层次化)
传输L4 防火墙、四层 LB端口(0-65535)
应用Nginx、WAF、正向代理域名 / URL / Header

面试被问「某某设备工作在哪一层」,用这张表秒答;同时它也是你阅读设备规格书时定位功能模块的索引。

讲清楚要点

  1. OSI 是教学模型,TCP/IP 是现实协议栈:OSI 的会话 / 表示层在现实中融进了应用层,TLS 介于传输与应用之间。日常说「四层 / 七层」指的是 TCP/IP 模型。
  2. 封装向下、解封装向上:发送端每层加自己的头,接收端每层剥掉对应的头;对等层之间靠协议对话,同机内层与层之间靠接口传递。
  3. TTL 每过一个路由器减一:防环的生命线;MAC 地址在每一跳都会重写,IP 地址端到端不变(NAT 除外)——这两条解释了 traceroute 为什么能工作。
  4. 报文叫法分层:链路层叫帧(Frame),网络层叫包(Packet),传输层叫段(Segment),应用层叫消息(Message)。面试说错会很尴尬。
  5. 分层也是产业分工:IEEE 定链路层(以太网 / WiFi),IETF 定网络与传输层(IP/TCP),W3C/WHATWG 定应用层(HTTP)。看懂分工,就知道去哪找一手标准文档——延伸链接里的 RFC 就是这么查的。

你可能会懵的地方

  • 既然 OSI 有七层,为什么天天说四层 / 七层负载均衡? 四层负载均衡基于 IP+端口转发(LVS/云 NLB),七层基于 HTTP 内容分流(Nginx/云 ALB)。这里的「层」指转发依据所在的层。

  • TLS 算哪一层? 介于传输层与应用层之间,职责对应 OSI 的表示 / 会话层:加密、压缩、认证都属「数据加工」。面试答「TLS 让应用层拿到加密好的字节流」即可,不必硬塞进某层;能接一句「HTTPS = HTTP over TLS over TCP」更好,展示层次感。

  • ARP 算哪一层? 它帮 IP 找 MAC,教科书归链路层,实际像「2.5 层」。理解它就能解释:同网段通信为什么要先问 MAC。

  • 交换机是不是只看二层、路由器只看三层? 概念分工如此,现代设备早已是多面手:三层交换机、带防火墙模块的路由器到处都是。学的是概念分工,用的时候看配置。

  • ping 通就代表网络没问题吗? 不代表。ping 只证明 ICMP 可达,服务端口可能没开、被 ACL 拦、应用假死。传输层结论要用 curl host:port 或 telnet 拿;反过来端口通也不代表应用健康,还要看 HTTP 状态码——每一层都有「通了但不对」的形态,这正是分层排查的价值。

错法对照

错法问题正解
ping 不通就断定对端挂了对端禁 ping 很常见用 telnet/curl 探测目标端口
把 MAC 地址当唯一标识跨网段追踪跨网段 MAC 逐跳重写跨网段追踪用 IP
认为交换机能隔离广播域默认不能,VLAN 才能隔离划 VLAN 或用三层设备分段
抓包不过滤直接看全网噪音淹没目标先写 BPF 过滤 port 443 再抓
忘了 TTL 有上限路由环路可打爆链路TTL 归零回 ICMP Time Exceeded,traceroute 正靠它工作
把「段」说成「包」跟面试官术语错层,显生疏帧 / 包 / 段 / 消息各归其层

卡点急救

  1. tcpdump 提示权限不足:加 sudo;容器里抓包需特权或在宿主机抓网卡。
  2. 抓包刷屏:先加过滤表达式,再 -c 50 限量,或 -w 落盘离线分析。
  3. Wireshark 打开没数据:确认 -w 保存的文件和抓的接口选对(云主机抓 eth0 而非 lo)。

面试常问

  • 浏览器输入 URL 后发生了什么?请按层回答。 应用层:DNS 解析域名、构造 HTTP 报文;传输层:TCP 三次握手建立连接;网络层:逐跳路由、TTL 递减;链路层:ARP 求网关 MAC、帧逐跳重写。能按层说清 = 真懂分层。

  • TCP 三次握手为什么不是两次? 两次无法让服务端确认「客户端能收到自己的数据」,历史重复连接会造成资源错配;握手同时交换初始序列号,为可靠传输打基础。

  • 四层与七层负载均衡的区别与取舍? 四层快、省、不看内容,适合 TCP 与超大流量;七层能按 URL/Header 分流、卸载证书、做压缩。本站的 Nginx 入口就是七层负载均衡。

自测三问

  1. 一次 HTTPS 请求至少用到哪几层协议?各自干了什么?
  2. traceroute 的工作原理依赖 IP 头的哪个字段?
  3. 「帧、包、段、消息」分别对应哪一层?

小结一句话

分层模型是网络的坐标系:每个故障都能落进某一层,每层都有对应的验证命令——先分层,再动手。

延伸

  • RFC 1122:互联网协议栈标准
  • 下一课:IP 寻址与子网划分——IPv4、VLSM、CIDR 与 NAT。
加载本节练习…
← 上一课网络工程师是什么下一课 →IP 寻址与子网