TCP/IP 协议族

一、整体认识

1. 什么是 TCP/IP 协议族

  • TCP/IP 不是单指 TCP 和 IP ,而是一整套互联网协议簇
  • 是当前互联网的事实标准
  • 定义了计算机之间如何通信、数据如何封装、寻址、传输、路由、应用

2. TCP/IP 与 OSI 七层模型对比

表格

OSI 七层模型 TCP/IP 四层模型(实际用) 核心作用
应用层 应用层 HTTP、FTP、DNS、SSH 等
表示层 (并入应用层) 数据格式、加密、压缩
会话层 (并入应用层) 建立 / 管理 / 断开会话
传输层 传输层 TCP、UDP
网络层 网络层 IP、ARP、ICMP、路由
数据链路层 网络接口层 以太网、MAC、帧
物理层 (并入网络接口层) 电气信号、光纤、网卡

日常开发 / 面试主流:TCP/IP 四层模型


二、TCP/IP 四层详细解析

1)网络接口层(最底层)

作用

  • 负责相邻设备之间的数据传输
  • 把网络层的数据包封装成帧(Frame)
  • 定义电气、光信号、接口规范

核心协议 / 标准

  • 以太网协议(Ethernet)
  • MAC 地址:设备物理地址(48 位)
  • PPP、Wi-Fi(802.11)

数据单元

帧(Frame)


2)网络层(核心层)

作用

  • 主机到主机的通信
  • 负责寻址、路由选择
  • 定义 IP 地址,让数据包跨网络传输

核心协议

  1. IP 协议(IPv4 / IPv6)

    • 无连接、不可靠、尽力投递
    • 负责:寻址 + 路由转发
  2. ARP 协议(Address Resolution Protocol)

    • IP → MAC 地址
    • 局域网内通过广播获取 MAC
  3. ICMP 协议(Internet Control Message Protocol)

    • 用于网络诊断:pingtraceroute
    • 传递错误 / 控制信息
  4. DHCP(应用层,但常归网络层讲)

    • 自动分配 IP 地址

数据单元

数据包(Packet / IP 数据报)


3)传输层

作用

  • 应用程序到应用程序的通信
  • 基于端口号区分进程
  • 提供可靠 / 不可靠两种传输模型

核心协议

① TCP(Transmission Control Protocol)

  • 面向连接
  • 可靠传输
  • 字节流、全双工
  • 拥塞控制、流量控制
  • 面向字节流

端口范围:0~65535

  • 0~1023:知名端口(HTTP:80, HTTPS:443, FTP:21, SSH:22)
  • 1024~49151:注册端口
  • 49152~65535:临时 / 动态端口

② UDP(User Datagram Protocol)

  • 无连接
  • 不可靠
  • 速度快、开销小
  • 面向数据报

TCP vs UDP(必背)

表格

特性 TCP UDP
连接 面向连接 无连接
可靠性 可靠(确认、重传、序号) 不可靠
传输方式 字节流 数据报
效率
适用场景 文件、网页、邮件 直播、游戏、DNS、视频通话

数据单元

  • TCP:段(Segment)
  • UDP:数据报(Datagram)

4)应用层

作用

  • 面向用户 / 应用程序
  • 定义数据格式、交互规则

常见协议

  • HTTP/HTTPS:网页(80/443)
  • DNS:域名解析(UDP 53)
  • FTP:文件传输(21)
  • SSH:安全远程登录(22)
  • SMTP/POP3/IMAP:邮件
  • WebSocket:长连接(基于 HTTP 升级)

三、数据封装与解封装(核心流程)

1. 封装(发送方)

应用层数据↓ 加 TCP 头 / UDP 头 传输层段↓ 加 IP 头 网络层包↓ 加 以太网头 + 尾网络接口层帧→ 物理层发送比特流

2. 解封装(接收方)

物理层接收比特流→ 拆帧头帧尾 → 拆IP 头 → 拆TCP/UDP 头→ 交给对应应用程序

一句话:下层为上层提供服务,上层数据被下层层层打包。


四、IP 协议核心(IPv4)

1. IPv4 地址

  • 32 位,点分十进制:192.168.1.101
  • 分为:网络位 + 主机位

2. 子网掩码

  • 用来区分网络位和主机位
  • 例:255.255.255.0

3. 分类(老式)

  • A 类:1~126
  • B 类:128~191
  • C 类:192~223
  • D 类:多播
  • E 类:保留

4. 私有 IP(内网)

  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255

5. 特殊 IP

  • 127.0.0.1:本地回环
  • 0.0.0.0:任意地址
  • 255.255.255.255:有限广播

五、TCP 核心机制(面试爆炸点)

1. 可靠传输实现

  1. 序列号 + 确认号
  2. 超时重传
  3. 滑动窗口
  4. 流量控制
  5. 拥塞控制

2. 三次握手(建立连接)

目的

  • 同步双方初始序列号(ISN)
  • 确认双方收发能力正常

过程

  1. C → S:SYN=1, seq=x
  2. S → C:SYN=1, ACK=1, seq=y, ack=x+1
  3. C → S:ACK=1, seq=x+1, ack=y+1

状态变化

  • Client:CLOSED → SYN_SENT → ESTABLISHED
  • Server:CLOSED → LISTEN → SYN_RCVD → ESTABLISHED

3. 四次挥手(断开连接)

双方都可以主动关闭

  1. A → B:FIN=1, seq=u
  2. B → A:ACK=1, ack=u+1
  3. B → A:FIN=1, seq=v
  4. A → B:ACK=1, ack=v+1

关键状态

  • TIME_WAIT:主动关闭方最后停留
  • 作用:确保对方收到最后 ACK + 防止旧报文干扰新连接
  • 时间:2MSL

4. 滑动窗口

  • 用来流量控制
  • 接收方通过 window 字段告诉发送方:你最多发多少
  • 发送方窗口 = min (自身拥塞窗口,接收窗口)

5. 拥塞控制(4 阶段)

  1. 慢启动:指数增长
  2. 拥塞避免:线性增长
  3. 快速重传:收到 3 个重复 ACK 立即重传
  4. 快速恢复:降低窗口但不从头开始

六、ARP 协议(必考)

  • 功能:IP → MAC
  • 流程:
    1. 主机发送ARP 广播:谁有这个 IP?
    2. 目标主机单播回复 MAC
    3. 写入本机 ARP 缓存

七、ICMP 协议

  • 用于网络探测与错误反馈
  • ping 基于 ICMP
  • 可以判断:是否连通、延迟、丢包

八、DNS(应用层,但网络必考)

  • 域名 → IP
  • 一般用 UDP 53
  • 大型查询用 TCP
  • 层级:根域名 → 顶级域名 → 权威域名

九、常见面试题(直接背)

1. TCP 为什么三次握手,不是两次?

  • 防止失效的连接请求报文突然又传到服务器
  • 导致服务器建立无效连接,浪费资源

2. 为什么四次挥手?

  • 因为 TCP 全双工
  • 一方发 FIN 只是表示自己不再发数据
  • 但对方可能还有数据要发,所以要分别关闭

3. TIME_WAIT 为什么是 2MSL?

  1. 确保最后一个 ACK 能到达对方
  2. 让本连接的所有报文在网络中自然消失,不影响新连接

4. TCP 粘包 / 拆包原因与解决

  • 原因:TCP 是字节流,无消息边界
  • 解决:
    • 固定长度
    • 分隔符
    • 消息头 + 长度字段(最常用)

5. HTTP 属于哪一层?基于什么?

  • 应用层
  • 基于 TCP

6. 路由器工作在哪一层?交换机?

  • 路由器:网络层(IP)
  • 交换机:数据链路层(MAC)

十、极简总结

  1. TCP/IP 4 层:应用 → 传输 → 网络 → 网络接口
  2. 传输层:TCP(可靠连接)、UDP(快)
  3. 网络层:IP(寻址)、ARP(IP→MAC)、ICMP(ping)
  4. TCP 核心:三次握手、四次挥手、滑动窗口、拥塞控制
  5. 数据从上层到下层:层层封装 ;接收则解封装
相关推荐
夜猫子ing2 小时前
《UNIX高级环境编程》 第十四章 高级I/O(一文读懂UNIX下高级I/O)
运维·服务器·网络
爱学习的程序媛2 小时前
【Web前端】WebSocket 详解
前端·websocket·网络协议·web
yv_302 小时前
wireshark用法及流量分析知识点
网络·测试工具·wireshark
志栋智能2 小时前
AI超自动化运维,让IT运维自动化门槛更低
运维·网络·人工智能·安全·自动化
攻城狮在此2 小时前
华为交换机ACL配置(基本ACL、高级ACL)
网络·安全·华为
攻城狮在此2 小时前
企业网二层交换机与出口路由器互联配置案例
网络·华为
努力搬砖的鱼2 小时前
利用 DHCP Snooping 根治“私接路由”引发的 IP 漂移与打印机失联
网络协议·tcp/ip·智能路由器
cyforkk2 小时前
细节决定架构的成败:API 限流与 HTTP 429 状态码的优雅落地
网络协议·http·架构
缘来是黎2 小时前
腾讯高防域名
网络·安全