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

【unity游戏开发——网络】网络协议、TCP vs UDP 本质区别

注意:考虑到热更新的内容比较多,我将热更新的内容分开,并全部整合放在【unity游戏开发——网络】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

  • 一、网络协议概述
  • 二、OSI七层模型
  • 三、TCP/IP四层模型
  • 四、核心传输协议对比
    • 1、TCP vs UDP 本质区别
    • 2、TCP关键机制详解
      • 2.1 三次握手建立连接
      • 2.2 四次挥手断开连接
  • 五、常见面试题精要
  • 六、总结
    • 1、TCP:
    • 2、UDP:
  • 专栏推荐
  • 完结

一、网络协议概述

网络协议类似设备间通信的“交通规则”。就像寄快递需要填写地址、遵守运输流程一样,网络通信必须遵循统一规则才能准确传递数据。

二、OSI七层模型

  • 定位:国际通用的网络通信“设计蓝图”,将复杂通信过程拆解为7个专业层级。
层级核心功能生活类比
应用层为软件提供网络接口(如浏览器)寄件人填写快递单
表示层数据翻译/加密(如格式转换)将中文地址翻译成英文
会话层管理通信对话(连接保持/恢复)快递员确认收件人在家
传输层端到端连接管理(加入端口号)分配快递运输车辆
网络层寻址和路由(加入IP地址)规划跨省运输路线
数据链路层物理设备寻址(加入MAC地址)分配本地配送员
物理层比特流传输(光缆/网线)卡车在公路上实际运输
  • 关键价值:分层设计使各层专注特定功能,下层服务上层,如同快递的“揽件->分拣->干线运输->配送”流程。

三、TCP/IP四层模型

  • 定位:基于OSI理论的实际通信规则,互联网真实运行的协议体系。
TCP/IP层级对应OSI层核心协议
应用层应用层+表示层+会话层HTTP/FTP/DNS
传输层传输层TCP/UDP
网络层网络层IP
网络接口层数据链路层+物理层Ethernet/Wi-Fi
  • 工作流程:
    • 发送端:数据从上到下逐层包装(加头部信息)→ 接收端:从下到上逐层拆包
  • 示例:网页请求 → HTTP头(应用层) + TCP头(端口) + IP头(地址) + MAC头(设备)

四、核心传输协议对比

1、TCP vs UDP 本质区别

特性TCP(可靠传输)UDP(高效传输)
连接方式需建立连接(三次握手)无连接,直接发送
可靠性保序、重传、不丢包可能丢包、乱序
传输效率速度较慢(需确认机制)速度极快(无额外开销)
连接数量仅支持1对1通信支持1对多、多对多广播
适用场景网页/文件传输/游戏存档直播/语音通话/竞技游戏实时操作

在这里插入图片描述

2、TCP关键机制详解

2.1 三次握手建立连接

  • 客户端→服务端:发送连接请求(SYN)

  • 服务端→客户端:回复同意连接(SYN+ACK)

  • 客户端→服务端:确认连接(ACK)

类比:打电话确认对方在线

  • A:“听得到吗?”

  • B:“能听到,你呢?”

  • A:“我也能听到,开始说话吧”

2.2 四次挥手断开连接

  • 客户端→服务端:请求断开(FIN)

  • 服务端→客户端:确认收到(ACK)

  • 服务端→客户端:发完剩余数据后断开(FIN)

  • 客户端→服务端:最终确认(ACK)

类比:礼貌结束通话

  • A:“我说完了,你还有事吗?”

  • B:“稍等,我还有最后一件事…”

  • B:“我也说完了,挂吧”

  • A:“好的,挂了”

五、常见面试题精要

  • TCP为什么需要三次握手?

防止已失效的连接请求突然传到服务器导致资源浪费(避免“僵尸连接”)

  • UDP如何实现可靠传输?

需在应用层添加重传/排序机制(如QUIC协议)

  • HTTP属于哪一层?

应用层协议(基于TCP实现)

六、总结

1、TCP:

  • 更可靠,保证数据的正确性和有序性(三次握手四次挥手)
  • 适合对信息准确性要求高,效率要求较低的使用场景
  • 比如:文件传输、用户登录、支付交易等等

2、UDP:

  • 更效率,传输更快,资源消耗更少
  • 适合对实时性要求高的使用场景
  • 比如:技能同步、直播推流、即时通讯等等

专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】
【unity游戏开发——热更新】
【unity游戏开发——网络】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

相关文章:

  • 安慰剂与安慰剂效应:临床试验中的核心概念
  • 东南亚 TikTok 直播网络专线,专线助力告别直播画面卡顿时代
  • 鸿蒙开发:资讯项目实战之底部导航封装
  • pandas 优雅处理值类型为list的列的csv读写问题
  • 1 Studying《Is Parallel Programming Hard》14-18
  • 【AI智能体】图像处理-人生四宫格
  • Python Wget详解:从入门到实战的网络文件下载指南
  • 零基础langchain实战二:大模型输出格式化成json
  • FPGA设计的时序分析概要
  • autoas/as 工程的RTE静态消息总线实现与端口数据交换机制详解
  • Flutter基础(控制器)
  • eTools 开源发布
  • 如何用VS Code、Sublime Text开发51单片机
  • Mysql架构
  • 顺序表的常见算法
  • 【编程实践】利用python在Blender生成三维模型
  • Stable Diffusion入门-ControlNet 深入理解 第四课:风格迁移与重绘控制模型——让AI也有“艺术天赋”!
  • FPGA设计的上板调试
  • 微信小程序实现简版点赞动画
  • 【linux】文件与目录命令 - iconv