当前位置: 首页 > news >正文

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

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

目录

1.虚拟模型

2.实际模型 TCP/IP

3.传输层协议 TCP/UDP

TCP 协议详解

1. 核心机制

2. 头部格式(20 字节最小)

UDP 协议详解

1. 核心特点

2. 头部格式(固定 8 字节)

选择 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、SSHDNS、视频流、实时游戏、语音通话(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:单次查询无需建立连接,快速响应。

 

相关文章:

  • 【VUE2】第三期——样式冲突、组件通信、异步更新、自定义指令、插槽
  • C语言学习day25:WinAPI编程进阶06-游戏辅助窗体监视热键讲解
  • Linux 4.4 内核源码的目录结构及其主要内容的介绍
  • go context学习
  • SQL Server查询计划操作符(7.3)——查询计划相关操作符(10)
  • maven的配置文件settings.xml
  • 深度学习实战车道线检测
  • Linux——在 .sh 文件中实现 并行执行 的方法
  • C++ 数据结构
  • 在Linux开发板中使用.NET实现音频开发
  • VM4.4 获取自己的路径
  • 教务考试管理系统-Sprintboot vue
  • OpenAI Whisper:开启语音转文本的智能时代
  • React
  • <建模软件安装教程1>Blender4.2系列
  • Unity Dots
  • Python使用alembic实现数据库管理
  • docker 常用命令教程
  • LeetCode --- 439周赛
  • 【.NET】WinForms 和 WPF 在性能方面的对比
  • 首个偏头痛急性治疗药物可缓解前期症状
  • 欧元区财长会讨论国际形势及应对美国关税政策
  • 5月12日-14日,上海小升初民办初中进行网上报名
  • 何立峰:中方坚定支持多边主义和自由贸易,支持世贸组织在全球经济治理中发挥更大作用
  • 专访|日本驻华大使金杉宪治:对美、对华外交必须在保持平衡的基础上稳步推进
  • 人民时评:莫让“假俗乱”讲解侵蚀“文博热”