TCP/IP、OSI 与常见网络协议知识点总结

一、OSI 七层模型

OSI(Open Systems Interconnection)将网络通信划分为七层,每层负责不同功能。

层级 名称 主要功能 常见协议或设备 数据单位
7 应用层 为用户应用程序提供网络服务 HTTP、HTTPS、FTP、DNS、SMTP、SSH 数据
6 表示层 数据格式转换、加密、压缩 SSL/TLS、JPEG、ASCII、JSON 数据
5 会话层 建立、管理和终止会话 RPC、NetBIOS 数据
4 传输层 端到端通信、可靠性、流量控制 TCP、UDP 段/报文段
3 网络层 逻辑寻址和路由选择 IPv4、IPv6、ICMP、OSPF 数据包
2 数据链路层 帧封装、MAC 寻址、差错检测 Ethernet、ARP、PPP、VLAN
1 物理层 传输比特流和电信号 网线、光纤、集线器、中继器 比特

二、TCP/IP 四层模型

TCP/IP 模型是实际互联网主要采用的分层模型。

TCP/IP 层 对应 OSI 层 主要协议
应用层 OSI 应用层、表示层、会话层 HTTP、DNS、FTP、SMTP、SSH
传输层 OSI 传输层 TCP、UDP
网际层 OSI 网络层 IP、ICMP、IGMP、路由协议
网络接口层 OSI 数据链路层、物理层 Ethernet、PPP、ARP、VLAN

两种模型的关系

  • OSI 是理论参考模型,层次划分更细。

  • TCP/IP 是实际使用的协议体系,应用层合并了 OSI 的上三层。

  • TCP/IP 的网络接口层合并了 OSI 的数据链路层和物理层。

三、TCP

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接、可靠的字节流协议。

主要特点

  • 面向连接:通信前必须建立连接。

  • 可靠传输:通过序列号、确认、重传保证数据可靠到达。

  • 字节流:TCP 不保留应用层消息边界。

  • 全双工:双方可以同时发送和接收数据。

  • 流量控制:通过接收窗口防止接收方缓存溢出。

  • 拥塞控制:根据网络状况调整发送速率。

  • 连接标识:由源 IP、源端口、目的 IP、目的端口四元组确定。

TCP 首部常见字段

  • 源端口、目的端口:标识通信两端的应用程序。

  • 序列号(Sequence Number):标识数据在字节流中的位置。

  • 确认号(Acknowledgment Number):表示期望接收的下一个字节序号。

  • 首部长度:表示 TCP 首部长度。

  • 标志位:SYN、ACK、FIN、RST、PSH、URG 等。

  • 接收窗口:用于流量控制。

  • 校验和:检查 TCP 首部和数据是否损坏。

  • 紧急指针:配合 URG 标志使用。

四、TCP 三次握手

三次握手用于建立 TCP 连接,并确认双方的发送和接收能力正常。

复制代码
客户端                                      服务端
  | ---- SYN,Seq = x --------------------> |
  | <--- SYN + ACK,Seq = y,Ack = x + 1 -- |
  | ---- ACK,Ack = y + 1 ----------------> |

过程

  1. 客户端发送 SYN,进入 SYN-SENT 状态,并携带初始序列号 x

  2. 服务端收到 SYN 后,回复 SYN+ACK,携带自己的初始序列号 y,确认号为 x+1,进入 SYN-RECEIVED 状态。

  3. 客户端发送 ACK,确认号为 y+1,双方进入 ESTABLISHED 状态。

为什么需要三次

  • 第一次:服务端确认客户端能够发送。

  • 第二次:客户端确认服务端能够接收和发送。

  • 第三次:服务端确认客户端能够接收。

  • 同时避免历史重复连接请求导致错误建立连接。

五、TCP 四次挥手

四次挥手用于释放 TCP 连接。TCP 是全双工的,两个方向需要分别关闭。

复制代码
主动关闭方                                  被动关闭方
  | ---- FIN,Seq = u --------------------> |
  | <--- ACK,Ack = u + 1 ----------------- |
  | <--- FIN,Seq = v --------------------- |
  | ---- ACK,Ack = v + 1 ----------------> |

过程

  1. 主动关闭方发送 FIN,表示自己不再发送数据,进入 FIN-WAIT-1

  2. 被动关闭方回复 ACK,连接进入半关闭状态;被动方仍可继续发送数据。

  3. 被动关闭方数据发送完成后发送 FIN。

  4. 主动关闭方回复 ACK,进入 TIME-WAIT,等待一段时间后关闭连接。

TIME-WAIT 的作用

  • 确保最后一个 ACK 能够到达对端。

  • 让旧连接中的延迟报文在网络中失效。

  • 通常等待 2MSL(Maximum Segment Lifetime)。

RST 复位

RST 表示立即异常终止连接,例如访问未监听的端口、连接发生严重错误或应用强制关闭连接。

六、UDP

UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠的数据报协议。

主要特点

  • 无需建立连接,通信开销小。

  • 不保证可靠到达、不保证顺序、不自动重传。

  • 保留应用层报文边界。

  • 支持广播和组播。

  • 传输延迟低,适合实时性要求高的业务。

  • 可靠性通常由应用层自行实现。

UDP 首部

UDP 首部固定为 8 字节,包含:

  • 源端口

  • 目的端口

  • 长度

  • 校验和

七、TCP 与 UDP 对比

对比项 TCP UDP
连接方式 面向连接 无连接
可靠性 可靠,有确认和重传 不保证可靠
数据形式 字节流 数据报
顺序保证 保证有序 不保证有序
流量控制 支持 不支持
拥塞控制 支持 不支持
广播/组播 不支持 支持
开销 较大 较小
常见应用 Web、文件传输、邮件 DNS、DHCP、音视频、在线游戏

八、常见应用层协议

协议 默认端口 传输层 主要用途
HTTP 80 TCP Web 页面和接口
HTTPS 443 TCP 加密 Web 通信;HTTP/3 通常基于 UDP/QUIC
FTP 20/21 TCP 文件传输,20 用于数据,21 用于控制
TFTP 69 UDP 简单文件传输,常用于设备启动和配置
SSH 22 TCP 安全远程登录和管理
Telnet 23 TCP 非加密远程登录
SMTP 25、587、465 TCP 发送邮件
POP3 110、995 TCP 下载邮件
IMAP 143、993 TCP 在线管理和同步邮件
DNS 53 UDP/TCP 域名解析;区域传送等场景使用 TCP
DHCP 67/68 UDP 自动分配 IP、网关和 DNS
SNMP 161/162 UDP 网络设备监控和管理
NTP 123 UDP 网络时间同步
LDAP 389、636 TCP 目录服务和身份查询

九、IP 报文

IPv4 首部主要字段

IPv4 首部最小长度为 20 字节,带选项时最长为 60 字节。

  • 版本:IPv4 的值为 4。

  • 首部长度(IHL):表示首部长度,单位为 4 字节。

  • 服务类型/DSCP:用于服务质量和优先级标记。

  • 总长度:IP 首部和数据部分的总长度,最大 65535 字节。

  • 标识、标志、片偏移:用于分片和重组。

  • 生存时间(TTL):每经过一个三层设备通常减 1,为 0 时丢弃。

  • 协议:标识上层协议,例如 TCP、UDP、ICMP。

  • 首部校验和:只校验 IPv4 首部。

  • 源 IP 地址、目的 IP 地址。

  • 选项和填充:可选字段。

IPv6 的主要变化

  • 地址长度从 32 位增加到 128 位。

  • 首部固定为 40 字节,结构更简洁。

  • 使用 Hop Limit 代替 TTL。

  • 没有首部校验和。

  • 分片由源主机通过扩展首部完成,中间路由器通常不分片。

十、协议号与端口号

协议号

协议号位于 IP 首部,用于标识 IP 数据部分承载的上层协议。它不是端口号。

协议号 协议 说明
1 ICMP 网络控制和差错报告
2 IGMP IPv4 组播成员管理
6 TCP 可靠传输
17 UDP 无连接数据报传输
41 IPv6 IPv6 over IPv4
47 GRE 通用路由封装
50 ESP IPsec 加密封装
51 AH IPsec 认证头
89 OSPF 链路状态路由协议

端口号

端口号位于 TCP 或 UDP 首部,用于标识具体应用进程。

  • 端口范围为 0~65535。

  • 0~1023:知名端口,通常由系统服务使用。

  • 1024~49151:注册端口,供应用程序注册使用。

  • 49152~65535:动态或临时端口,通常由客户端自动分配。

协议号与端口号的区别

复制代码
IP 首部:协议号 = 6       -> 表示承载 TCP
TCP 首部:目的端口 = 443   -> 表示交给 HTTPS 服务
  • 协议号解决"交给哪一种传输或控制协议"。

  • 端口号解决"交给该协议上的哪一个应用程序"。

  • IP 地址定位主机,端口号定位主机上的进程。

十一、数据封装与解封装

发送端数据经过逐层封装:

复制代码
应用数据
  -> TCP 段 / UDP 报文
  -> IP 数据包
  -> Ethernet 帧
  -> 比特流

接收端按照相反顺序逐层解封装:

复制代码
比特流
  -> 帧
  -> IP 数据包
  -> TCP 段 / UDP 报文
  -> 应用数据

十二、重点记忆

  • OSI 七层是理论模型,TCP/IP 四层是实际网络协议体系。

  • TCP 可靠但开销较大;UDP 快速但可靠性由应用层负责。

  • 三次握手建立 TCP 连接,四次挥手释放 TCP 连接。

  • SYN 用于建立连接,ACK 用于确认,FIN 用于正常关闭,RST 用于异常复位。

  • IP 首部的协议号标识上层协议,TCP/UDP 首部的端口号标识应用进程。

  • IPv4 的 TCP 协议号是 6,UDP 协议号是 17,ICMP 协议号是 1。

  • 常见链路:DNS 使用 53,HTTP 使用 80,HTTPS 使用 443,SSH 使用 22,DHCP 使用 67/68。

相关推荐
李昊哲小课2 小时前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse
FungLeo3 小时前
Flutter 接入 Alice 调试浮窗:一个顶层 final 抢跑,把 release 网络整没了
网络·flutter
abbgogo4 小时前
堆叠、DHCP 与链路聚合总结
网络·网络协议
xiaoxiangsiyan7 小时前
GitLab CI/CD 自托管(EE 企业版)+ Kubernetes Runner 集群 + ArgoCD(GitOps 部署)
运维·网络·ci/cd·容器·kubernetes·gitlab·argocd
XR1234567887 小时前
政府办公楼网络搭建方案对比:信锐、华为、华三选型指南
网络·华为
星恒讯工业路由器8 小时前
网络安全访问控制规则详解
网络·安全·智能路由器·访问控制·防火墙规则·工业网络安全
2601_949499948 小时前
芯瑞科技400G VR4 QSFP-DD光模块:低功耗高密短距互联方案,赋能AI智算中心算力网络升级
大数据·运维·网络·人工智能·科技·光模块
神秘的MT8 小时前
C# WinForm Socket 服务器 + 串口转发
服务器·网络·学习·c#
上海云盾-小余8 小时前
混合网络攻击深度解析:WAF 流量清洗落地完整方案
网络