本文章不作任何商业用途 仅作学习与交流 部分图片来自Unity唐老师
目录
[2.实际模型 TCP/IP](#2.实际模型 TCP/IP)
[3.传输层协议 TCP/UDP](#3.传输层协议 TCP/UDP)
[TCP 协议详解](#TCP 协议详解)
[1. 核心机制](#1. 核心机制)
[2. 头部格式(20 字节最小)](#2. 头部格式(20 字节最小))
[UDP 协议详解](#UDP 协议详解)
[1. 核心特点](#1. 核心特点)
[2. 头部格式(固定 8 字节)](#2. 头部格式(固定 8 字节))
[选择 TCP 或 UDP 的依据](#选择 TCP 或 UDP 的依据)
1.虚拟模型
OSI 模型是理论框架
层次 | 功能 | 协议 / 技术示例 | 数据单元 |
---|---|---|---|
应用层 | 为用户提供直接服务(如文件传输、电子邮件、Web 浏览)。 | HTTP、FTP、SMTP、DNS | 数据(Data) |
表示层 | 处理数据格式转换、加密解密、压缩解压缩。 | SSL/TLS、ASCII、JPEG | 数据(Data) |
会话层 | 管理通信会话的建立、维护和终止。 | NetBIOS、RPC | 数据(Data) |
传输层 | 提供端到端的可靠或不可靠传输,确保数据完整性。 | TCP、UDP | 段(Segment) |
网络层 | 负责路由选择和数据包转发,实现不同网络之间的通信。 | IP、ICMP、ARP | 数据包(Packet) |
数据链路层 | 处理相邻节点间的数据帧传输,提供错误检测和纠正。 | Ethernet、PPP、MAC 地址 | 帧(Frame) |
物理层 | 定义物理介质(如电缆、光纤)的电气、机械特性,传输比特流。 | RJ45、IEEE 802.3 | 比特(Bit) |
大概做了什么
2.实际模型 TCP/IP
TCP/IP 模型是实际网络通信中广泛使用的协议栈
TCP/IP 模型 | OSI 模型 | 功能 | 协议 / 技术示例 | 数据单元 |
---|---|---|---|---|
应用层 | 应用层、表示层、会话层 | 提供用户服务(如 Web 浏览、邮件)、数据格式处理、会话管理。 | HTTP、FTP、SMTP、DNS | 数据(Data) |
传输层 | 传输层 | 端到端的数据传输,确保可靠性或效率。 | TCP、UDP | 段(Segment) |
网络层 | 网络层 | 路由选择和数据包转发,实现跨网络通信。 | IP、ICMP、ARP | 数据包(Packet) |
网络接口层 | 数据链路层、物理层 | 物理介质的比特流传输,数据帧的组帧与传输。 |
每层职能
其协议

3.传输层协议 TCP/UDP
特性 | TCP(传输控制协议) | UDP(用户数据报协议) |
---|---|---|
连接性 | 面向连接(需三次握手建立连接) | 无连接(无需建立连接) |
可靠性 | 可靠传输(保证顺序、无丢失、无重复) | 不可靠传输(不保证到达或顺序) |
传输方式 | 流式传输(按字节流处理) | 数据报传输(按独立数据包处理) |
头部大小 | 固定 20 字节(最小) | 固定 8 字节 |
流量控制 | 支持(通过滑动窗口) | 不支持 |
拥塞控制 | 支持(避免网络拥塞) | 不支持 |
端口号 | 使用 16 位端口号区分应用 | 同样使用 16 位端口号 |
典型应用 | HTTP、HTTPS、SMTP、FTP、SSH | DNS、视频流、实时游戏、语音通话(VoI |
TCP 协议详解
1. 核心机制
- 三次握手 :
建立连接时,客户端和服务器通过SYN
、SYN-ACK
、ACK
三个报文确认连接 - 四次挥手 :
关闭连接时,双方通过FIN
、ACK
、FIN
、ACK
四个报文释放资源 - 滑动窗口 :
通过动态调整发送窗口大小实现流量控制,避免接收方过载。 - 重传机制 :
超时未收到确认时,重传丢失的数据包。
2. 头部格式(20 字节最小)
字段 | 描述 |
---|---|
源端口号 | 发送方端口(16 位) |
目标端口号 | 接收方端口(16 位) |
序号 | 数据字节流编号(32 位) |
确认号 | 期望接收的下一个字节编号(32 位) |
数据偏移 | 头部长度(4 位) |
标志位 | SYN、ACK、FIN、RST 等控制位(9 位) |
窗口大小 | 接收方允许的最大数据量(16 位) |
校验和 | 检测数据传输错误(16 位) |
紧急指针 | 紧急数据位置(16 位,可选) |
UDP 协议详解
1. 核心特点
- 简单高效:无连接、无确认、无重传,适合实时性要求高的场景。
- 资源消耗低:头部仅 8 字节,处理速度快。
- 尽最大努力交付:不保证可靠性,但可通过上层协议(如 RTP)补充可靠性。
2. 头部格式(固定 8 字节)
字段 | 描述 |
---|---|
源端口号 | 发送方端口(16 位) |
目标端口号 | 接收方端口(16 位) |
长度 | UDP 数据报总长度(16 位) |
校验和 | 可选的错误检测(16 位) |
选择 TCP 或 UDP 的依据
- 选 TCP :
- 需要可靠性(如文件传输、Web 浏览)。
- 对延迟不敏感(如邮件发送)。
- 选 UDP :
- 实时性优先(如视频会议、在线游戏)。
- 数据量小或可接受少量丢失(如 DNS 查询)。
实际应用示例
- 视频通话 :
- UDP:低延迟,允许部分数据包丢失(丢包可通过画面模糊补偿)。
- 文件下载 :
- TCP:确保文件完整无误。
- DNS 查询 :
- UDP:单次查询无需建立连接,快速响应。