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:单次查询无需建立连接,快速响应。
相关推荐
养海绵宝宝的小蜗21 分钟前
OSPF综合实验报告册
网络
Yueeyuee_1 小时前
【C#学习Day16笔记】XML文件、 事件Event 、Json数据
笔记·学习·c#
dog2503 小时前
TCP RTO 与丢包检测
网络·网络协议·tcp/ip
希赛网4 小时前
HCIA-Datacom认证笔记:IP路由基础——核心概念与路由分类
网络·笔记·网络协议·tcp/ip·智能路由器
钢铁男儿4 小时前
C# 枚举器和迭代器(常见迭代器模式)
数据库·c#·迭代器模式
网络研究院5 小时前
从内部保护你的网络
网络·安全·风险·成本·措施
zzc9215 小时前
USRP捕获手机/路由器数据传输信号波形(中)
网络·5g·wifi·路由器·双工通信·手机信号
ALLSectorSorft6 小时前
相亲小程序个人资料管理系统模块搭建
服务器·网络·数据库·python·sql
zhyoobo6 小时前
IPv4 与 IPv6:网络世界的世代更替与未来之路
网络·http·ipv4·ipv6
R-G-B6 小时前
【05】VM二次开发——模块参数配置--带渲染/不带渲染(WinForm界面调用 模块参数配置)
c#·vm二次开发·vm模块参数配置·vm在winform界面调用