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

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

目录

1.虚拟模型

[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. 核心机制
  • 三次握手
    建立连接时,客户端和服务器通过 SYNSYN-ACKACK 三个报文确认连接
  • 四次挥手
    关闭连接时,双方通过 FINACKFINACK 四个报文释放资源
  • 滑动窗口
    通过动态调整发送窗口大小实现流量控制,避免接收方过载。
  • 重传机制
    超时未收到确认时,重传丢失的数据包。
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:单次查询无需建立连接,快速响应。
相关推荐
飞向星河19 分钟前
SV学习笔记——数组、队列
笔记·学习·c#
AORO_BEIDOU1 小时前
科普|卫星电话有哪些应用场景?
网络·人工智能·安全·智能手机·信息与通信
末零1 小时前
Unity 取色板
unity·游戏引擎
无敌最俊朗@1 小时前
Unity大型游戏开发全流程指南
unity·游戏引擎
Antonio9152 小时前
【网络编程】事件选择模型
网络·c++
虾米神探2 小时前
Unity InputField + ScrollRect实现微信聊天输入框功能
unity·游戏引擎
23zhgjx-hyh2 小时前
配置多区域OSPF,配置OSPF手动汇总,配置OSPF特殊区域
网络
23zhgjx-hyh2 小时前
OSPF报文分析
网络·智能路由器
23zhgjx-zgx3 小时前
OSPF:虚链路
网络·tcp/ip·华为·智能路由器·ensp
緣木求魚3 小时前
c#结合IL(中间语言)分析Try-Catch的内部机制及其对性能的影响
c#·il