目录

Unity网络开发基础-2-网络协议基础

Unity网络开发基础 (2) 网络协议基础

本文章不作任何商业用途 仅作学习与交流 部分图片来自Unity唐老师


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)

大概做了什么 https://i-blog.csdnimg.cn/direct/f9b8f2fcd8a5478691b82a03f28267bd.png

2.实际模型 TCP/IP

TCP/IP 模型是实际网络通信中广泛使用的协议栈

TCP/IP 模型OSI 模型功能协议 / 技术示例数据单元
应用层应用层、表示层、会话层提供用户服务(如 Web 浏览、邮件)、数据格式处理、会话管理。HTTP、FTP、SMTP、DNS数据(Data)
传输层传输层端到端的数据传输,确保可靠性或效率。TCP、UDP段(Segment)
网络层网络层路由选择和数据包转发,实现跨网络通信。IP、ICMP、ARP数据包(Packet)
网络接口层数据链路层、物理层物理介质的比特流传输,数据帧的组帧与传输。

每层职能 https://i-blog.csdnimg.cn/direct/09371607cbf748b48489c5ec46ede410.png

其协议

https://i-blog.csdnimg.cn/direct/f5c168fb52b245c4aacba4561c625be9.png

3.传输层协议 TCP/UDP

特性TCP(传输控制协议)UDP(用户数据报协议)
连接性面向连接(需三次握手建立连接)无连接(无需建立连接)
可靠性可靠传输(保证顺序、无丢失、无重复)不可靠传输(不保证到达或顺序)
传输方式流式传输(按字节流处理)数据报传输(按独立数据包处理)
头部大小固定 20 字节(最小)固定 8 字节
流量控制支持(通过滑动窗口)不支持
拥塞控制支持(避免网络拥塞)不支持
端口号使用 16 位端口号区分应用同样使用 16 位端口号
典型应用HTTP、HTTPS、SMTP、FTP、SSHDNS、视频流、实时游戏、语音通话(VoI

TCP 协议详解

1. 核心机制
  • 三次握手

    建立连接时,客户端和服务器通过 SYNSYN-ACKACK 三个报文确认连接

  • https://i-blog.csdnimg.cn/direct/5f1bd1dd7d584c019d3ff20da79f3777.png

  • 四次挥手

    关闭连接时,双方通过 FINACKFINACK 四个报文释放资源

  • https://i-blog.csdnimg.cn/direct/3dc3afa7654d41bbaff0471195af82ad.png

  • 滑动窗口

    通过动态调整发送窗口大小实现流量控制,避免接收方过载。

  • 重传机制

    超时未收到确认时,重传丢失的数据包。

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 查询)。

实际应用示例

  1. 视频通话
    • UDP :低延迟,允许部分数据包丢失(丢包可通过画面模糊补偿)。
  2. 文件下载
    • TCP :确保文件完整无误。
  3. DNS 查询
    • UDP :单次查询无需建立连接,快速响应。