当前位置: 首页 > 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,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

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

http://www.lryc.cn/news/576384.html

相关文章:

  • 卸载Modelsim/Qustasim方法
  • AngularJS Git 提交消息规范
  • Centos 8设置固定IP
  • Linux通过Crontab实现自启动
  • Grab×亚矩阵云手机:以“云端超级节点”重塑东南亚出行与数字生活生态
  • 第十节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 菜单管理(下)
  • docker部署后端服务的脚本
  • 深入详解:决策树算法的概念、原理、实现与应用场景
  • WHERE 子句中使用子查询:深度解析与最佳实践
  • 设计模式精讲 Day 16:迭代器模式(Iterator Pattern)
  • 如何解决电脑windows蓝屏问题
  • VScode使用usb转网口远程开发rk3588
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • [Linux]从零开始的STM32MP157移植Ubuntu根文件系统教程
  • ubuntu-server 与 ubuntu-live-server 的区别 笔记250628
  • React环境搭建及语法简介
  • Word之空白页删除2
  • 利用GPU加速TensorFlow
  • python多线程详细讲解
  • 【21】C9800配置PSK认证的WLAN
  • 多表连接查询:语法、注意事项与最佳实践
  • 【linux】Vm虚拟机ubuntu的接口ip掉了
  • 电商返利APP架构设计:如何基于Spring Cloud构建高并发佣金结算系统
  • 鸿蒙5:其他布局容器
  • 什么是 PoS(权益证明)
  • LIN总线通讯中的重要概念信号(Signal)、帧(Frame)和 节点(Node)
  • Geollama 辅助笔记:raw_to_prompt_strings_geo.py
  • 鸿蒙5:组件监听和部分状态管理V2
  • 设计模式精讲 Day 17:中介者模式(Mediator Pattern)
  • ASProxy64.dll导致jetbrains家的IDE都无法打开。