重点考点:
TCP/IP 基础
- 三次握手、四次挥手
- TCP vs UDP
- 滑动窗口、重传、流量控制、拥塞控制
TIME_WAIT、CLOSE_WAIT
IP 与路由基础
- IP、子网掩码、CIDR
- 网关、路由转发
- ARP、MAC、二层/三层通信
DNS
- 域名解析过程
- 递归查询与迭代查询
- K8s CoreDNS、Service 域名解析
HTTP/HTTPS
- HTTP 常见方法、状态码
- HTTPS 握手过程
- 证书、对称/非对称加密
NAT 与端口
- SNAT、DNAT、PAT
- NodePort / ClusterIP / LoadBalancer 背后的网络映射逻辑
- 端口、连接四元组
负载均衡与转发
- 四层负载均衡 vs 七层负载均衡
- LVS / IPVS / iptables 基本思想
- 正向代理、反向代理
K8s 网络关联点
- Pod 间通信为什么要求“扁平网络”
- Service 如何转发到 Pod
- Ingress 工作在第几层
- CNI、Overlay/Underlay
Q1:TCP 三次握手和四次挥手分别是怎样的?为什么建立连接需要三次,断开连接需要四次?
核心要点
- 三次握手:
- 客户端发送
SYN - 服务端回复
SYN + ACK - 客户端回复
ACK
- 客户端发送
- 目的:
- 确认双方收发能力正常
- 确认双方初始序列号
- 四次挥手:
- 主动关闭方发
FIN - 被动关闭方回
ACK - 被动关闭方处理完数据后再发
FIN - 主动关闭方回
ACK
- 主动关闭方发
- 因为 TCP 是全双工,两个方向都要单独关闭,所以通常需要四次
- 三次握手:
易错点
- 把三次握手的目的只说成“防止历史连接”
- 说“四次挥手一定是四次”,实际上在特殊情况下
ACK和FIN可合并 - 分不清
TIME_WAIT和CLOSE_WAIT
深挖点
- 为什么不是两次握手:无法可靠确认服务端的发送能力和客户端的接收能力
- 为什么主动关闭方会进入
TIME_WAIT TIME_WAIT过多会带来什么问题,如何分析
Q2:TCP 和 UDP 的区别是什么?K8s/运维场景下分别常见在哪些地方?
核心要点
- TCP:
- 面向连接
- 可靠传输
- 有序、重传、流量控制、拥塞控制
- UDP:
- 无连接
- 尽最大努力交付
- 开销小、时延低
- 常见场景:
- TCP:HTTP/HTTPS、MySQL、SSH、API Server
- UDP:DNS(常见查询)、流媒体、监控上报、某些服务发现协议
- TCP:
易错点
- 说 UDP “不可靠所以没用”
- 说 DNS 只用 UDP,实际上也可能使用 TCP
- 说 TCP 一定比 UDP 慢,实际取决于业务场景
深挖点
- DNS 为什么通常用 UDP,什么情况下改用 TCP
- QUIC 为什么基于 UDP 实现可靠传输
- K8s 探针、服务访问链路里哪些通常走 TCP
Q3:访问一个网站时,从输入 URL 到页面返回,中间经历了哪些网络过程?
核心要点
- 浏览器解析 URL
- DNS 解析得到 IP
- 根据路由表决定下一跳
- 如果不知道目标 MAC,先发 ARP
- 建立 TCP 连接
- 如果是 HTTPS,再进行 TLS 握手
- 发送 HTTP 请求
- 服务端返回响应
- 浏览器渲染页面
易错点
- 漏掉 DNS、ARP、TLS
- 把“路由”和“DNS”混为一谈
- 认为数据是直接从应用层传到网卡,中间忽略传输层/网络层封装
深挖点
- 如果浏览器、本机、DNS 服务器都有缓存,会如何变化
- HTTPS 比 HTTP 多了哪些步骤
- 在 K8s 中访问 Service 域名时,CoreDNS 起什么作用
Q4:ARP 是什么?为什么同网段通信需要 ARP,跨网段通信又是怎样的?
核心要点
- ARP:通过 IP 地址解析目标 MAC 地址
- 同网段通信:
- 主机判断目标 IP 与自己是否同网段
- 同网段则直接 ARP 目标主机 MAC
- 跨网段通信:
- 先把包发给默认网关
- ARP 获取的是网关 MAC,而不是最终目标主机 MAC
易错点
- 以为 ARP 是“根据域名找 IP”
- 以为跨网段时能直接 ARP 到远端机器
- 分不清 IP 地址和 MAC 地址各自作用
深挖点
- ARP 欺骗原理
- 为什么交换机主要看 MAC,路由器主要看 IP
- 在云环境和容器网络中 ARP 广播为什么值得关注
Q5:什么是子网掩码、CIDR 和网关?你如何判断两个 IP 是否在同一个网段?
核心要点
- 子网掩码用于区分网络位和主机位
- CIDR 如
192.168.1.0/24 - 判断是否同网段:
- IP 与子网掩码按位与
- 比较结果是否属于同一个网络地址
- 网关是跨网段通信的出口
易错点
- 把
/24理解成“有 24 个 IP” - 不清楚可用主机数如何计算
- 不知道为什么 K8s 常见 Pod 网段、Service 网段不能冲突
- 把
深挖点
- 为什么 Pod CIDR、Node 所在网段、Service CIDR 冲突会出问题
- 叠加网络中 CIDR 规划不合理会造成什么后果
- 路由汇总的意义是什么
Q6:DNS 的解析过程是怎样的?K8s 里 Pod 访问 Service 名称时发生了什么?
核心要点
- 本地先查浏览器缓存、系统缓存、
hosts - 再请求本地 DNS 解析器
- DNS 递归/迭代查询,最终拿到记录
- K8s 中通常由 CoreDNS 提供集群内解析
- Pod 访问
service-name.namespace.svc.cluster.local时,会解析到 Service 的 ClusterIP
- 本地先查浏览器缓存、系统缓存、
易错点
- 分不清递归查询和迭代查询
- 认为 DNS 一定只返回一个 IP
- 认为 Service 域名直接解析到某个 Pod IP,实际上常见情况先到 ClusterIP
深挖点
- headless service 为什么会直接返回 Pod IP
- CoreDNS 异常时会出现什么现象,怎么排查
- DNS 缓存导致发布不生效如何处理
Q7:HTTP 和 HTTPS 的区别是什么?HTTPS 为什么更安全?
核心要点
- HTTP 明文传输
- HTTPS = HTTP + TLS
- HTTPS 提供:
- 加密
- 完整性校验
- 身份认证
- TLS 握手中会使用:
- 非对称加密:协商密钥、验证身份
- 对称加密:实际数据传输
易错点
- 说 HTTPS “全程都用非对称加密”
- 说有 HTTPS 就绝对安全
- 把数字证书和 CA 的作用说不清楚
深挖点
- TLS 握手的简化流程
- 为什么对称加密适合传输数据
- Ingress TLS 终止是什么意思
Q8:什么是 NAT?SNAT 和 DNAT 有什么区别?它们在 K8s 中有哪些典型应用?
核心要点
- NAT:网络地址转换
- SNAT:修改源地址
- 常见于内网主机访问外网
- DNAT:修改目标地址
- 常见于外部流量访问内网服务
- K8s 典型场景:
- Pod 出网可能涉及 SNAT
- Service 转发、NodePort、Ingress 访问可能涉及 DNAT
易错点
- 把 SNAT 和 DNAT 方向说反
- 不知道端口映射本质上也是 NAT 的一种
- 以为 NodePort 只是“监听了一个端口”,没理解背后的转发关系
深挖点
- kube-proxy 用 iptables 或 IPVS 时,流量是怎么改写的
- 为什么有时客户端真实 IP 会丢失
externalTrafficPolicy=Local有什么意义
Q9:四层负载均衡和七层负载均衡有什么区别?在 K8s 中分别对应什么组件或场景?
核心要点
- 四层负载均衡:
- 基于 IP + 端口
- 工作在传输层
- 不关心具体 HTTP 内容
- 七层负载均衡:
- 基于 URL、Host、Header、Cookie 等
- 工作在应用层
- K8s 常见对应:
- Service 更偏四层
- Ingress 更偏七层
- 四层负载均衡:
易错点
- 说 Ingress 就是“负载均衡器”
- 把反向代理和负载均衡完全等同
- 不知道 Service 主要解决服务发现和转发问题
深挖点
- LVS、Nginx、Envoy 分别偏哪一层
- 为什么七层更灵活但开销更大
- 网关、Ingress Controller、Service 三者关系
Q10:K8s 为什么强调“每个 Pod 都有独立 IP,并且 Pod 之间可以直接通信”?这和传统 Docker 网络有什么差异?
核心要点
- K8s 网络模型核心要求:
- 每个 Pod 有独立 IP
- Pod 间无需 NAT 可直接通信
- Node 与 Pod 之间可直接通信
- 这样做便于:
- 服务发现
- 统一寻址
- 简化应用配置
- 依赖 CNI 实现,如 Calico、Flannel、Cilium 等
- K8s 网络模型核心要求:
易错点
- 以为 Pod 和容器是一一对应的网络概念
- 把 Docker bridge 网络经验直接套到 K8s
- 不理解 Overlay 和 Underlay 的区别
深挖点
- Overlay 网络为什么会有额外封装
- Calico BGP 模式和 VXLAN 模式的区别
- 网络策略(NetworkPolicy)工作在哪一层
三、速记笔记
- 三次握手:确认双方收发能力 + 同步序列号
- 四次挥手:TCP 全双工,两个方向分别关闭
- TCP:可靠、有序、面向连接
- UDP:无连接、开销小、速度快
- ARP:IP 找 MAC
- 同网段:直接找目标 MAC
- 跨网段:先发给网关 MAC
- CIDR:如
/24表示网络位长度 - DNS:域名 -> IP,K8s 内通常靠 CoreDNS
- HTTP vs HTTPS:HTTPS 多了 TLS,加密 + 认证 + 完整性
- SNAT:改源地址,常见于出网
- DNAT:改目标地址,常见于入站转发
- Service:更偏四层转发
- Ingress:更偏七层路由
- K8s 网络模型:Pod 有独立 IP,Pod 间可直接通信
- 排障高频关键词:
pingtraceroutenslookup/dignetstat/sstcpdumpiptablesip route