【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.pswp.cn/news/912410.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912410.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912410.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spark Streaming 與 Flink 實時數據處理方案對比與選型指南

Spark Streaming 與 Flink 實時數據處理方案對比與選型指南 實時數據處理在互聯網、電商、物流、金融等領域均有大量應用,面對海量流式數據,Spark Streaming 和 Flink 成為兩大主流開源引擎。本文基于生產環境需求,從整體架構、編程模型、容…

鴻蒙HarmonyOS 5小游戲實踐:記憶翻牌(附:源代碼)

記憶翻牌游戲是一款經典的益智游戲,它能有效鍛煉玩家的記憶力和觀察能力。本文將詳細介紹如何使用鴻蒙(HarmonyOS)的ArkUI框架開發一款完整的記憶翻牌游戲,涵蓋游戲設計、核心邏輯實現和界面構建的全過程。 游戲設計概述 記憶翻牌…

【Linux庖丁解牛】— 文件系統!

1 引?"塊"概念 其實硬盤是典型的“塊”設備,操作系統讀取硬盤數據的時候,其實是不會?個個扇區地讀取,這樣 效率太低,?是?次性連續讀取多個扇區,即?次性讀取?個”塊”(block)。…

如何通過自動化減少重復性工作

通過自動化減少重復性工作的關鍵策略包括:1、識別可被規則化操作的任務、2、引入RPA(機器人流程自動化)工具、3、整合AI與業務流程系統、4、部署腳本與低代碼平臺、5、持續優化自動化場景與效率。 其中,“引入RPA工具”被廣泛認為…

知識變現全鏈路設計:從IP打造到商業閉環的系統方法論|創客匠人

一、變現低效根源:碎片化努力為何換不來持續增長? 創客匠人服務上千位知識創業者后發現,變現乏力多因缺乏系統設計:某營銷專家的課程因定位模糊、表達生硬、渠道單一,低價仍少有人問。文檔中提出的“六大超級設計公式…

如何利用人工智能大模型提升流量質量

摘要 流量質量是衡量數字化營銷效果的重要指標之一,它反映了用戶對網站或應用的興趣和滿意度。流量質量的常用評估方法有點擊率、跳出率和用戶停留時間等。本文將介紹如何利用人工智能大模型來分析和優化這些指標,提高流量質量,從而提升數字…

從單體架構到微服務:微服務架構演進與實踐

一、單體架構的困境與演進 (一)單體應用的初始優勢與演進路徑 在系統發展的初期,單體架構憑借其簡單性和開發效率成為首選。單體應用將整個系統的所有功能模塊整合在一個項目中,以單一進程的方式運行,特別適合小型系…

Elasticsearch 自定義排序:使用 Painless 腳本實現復雜排序邏輯

需求背景: 從es查詢數據出來的時候,要求type為CATALOG的數據排在最前面,也就是目錄類型的要放在最前面,而且要求按照層級排序,從L1到L5順序排序 直接上解法: {//查詢條件"query": {"bool…

華為云Flexus+DeepSeek征文|華為云數字人 + DeepSeek:智能交互的革命性突破

目錄 前言 關于華為云數字人和云服務 1、華為云數字人 (1)MetaStudio介紹 (2)應用場景 (3)功能特性 (4)使用體驗 2、華為云云服務 華為云數字人結合DeepSeek的核心流程 1、…

【GESP】C++四級練習 luogu-P5729 【深基5.例7】工藝品制作

GESP C四級練習,二維/多維數組練習,難度★★☆☆☆。 題目題解詳見:【GESP】C四級練習 luogu-P5729 【深基5.例7】工藝品制作 | OneCoder 【GESP】C四級練習 luogu-P5729 【深基5.例7】工藝品制作 | OneCoderGESP C四級練習,二維…

通過npm install -g yarn安裝Yarn顯示Proxy代理相關問題如何解決?

手動下載yarn.msi安裝包或者yarn.js文件 參考:windows 怎么下載yarn安裝包并將下載的yarn文件移動到全局目錄并添加執行權限?-CSDN博客

arm交叉編譯qt應用中含opengl問題解決

問題是采用正點原子方案中,用虛擬機交叉編譯含opengl的qt程序會出現編譯失敗問題,因為正點原子中的交叉編譯qt源碼時沒有編opengl。 野火似乎有解決: https://doc.embedfire.com/linux/rk356x/Qt/zh/latest/lubancat_qt/install/install_arm…

服務器排查與加固服務詳細介紹

一、服務概述 服務器排查與加固服務是針對企業核心信息資產(服務器)的全方位安全保障方案,旨在通過系統性排查潛在風險、修復漏洞、優化配置,提升服務器抗攻擊能力,確保業務連續性和數據安全性。該服務覆蓋硬件、操作…

提升開發思維的設計模式(下)

上期回顧 提升開發思維的設計模式(上) 2. 設計模式分類(23種設計模式) 2.13 組合模式(Composite Pattern) 將對象組合成樹形結構,以表示“整體-部分”的層次結構。 通過對象的多態表現&#…

h5學習筆記:前端打包

這2天做了一個實驗。在非module傳統的網頁,要實現改名和避免緩存。原本這個事情早在幾年前就做過借助gulp的方式或者fis3 的工具來完成。然而隨著nodejs 來到了24版本后,似乎nodejs的版本這事情就變動復雜多變了。 為什么那么麻煩?實際上開發…

14.OCR字符識別

目錄 1. 識別方法 1. OCR識別 2. OCR識別方法1-助手識別 3. OCR識別方法2-算子分割識別 4.文本分割識別 2. 文本分割 1. 借用助手設置參數文本分割+混合識別 2. 借用助手設置參數文本分割場景2 3.不同字符場景 1.傾斜字符 1. 識別方法 1. OCR識別 *OCR *1. 概念 * …

如果將Word里每頁的行數設置成50行

https://www.zhihu.com/question/357856175 本文來自知乎林聽晴 第一步:新建一個Word文檔 打開“頁面布局”,之后點擊圖片圈起來的小圖標,即可出現“頁面設置”頁面。 ? ? 路徑:頁面設置—文檔網絡,可以看到默認行…

WebRTC(十一):RTCP和SRTCP

RTCP 基本概念 RTCP 是 RTP 的控制協議,用于監控媒體傳輸質量和參與者狀態,并與 RTP 一起工作。RTP 用于傳輸媒體數據(如音視頻),RTCP 則用于傳輸控制信息。 RTCP 通常和 RTP 同時使用,并通過 不同端口&…

將element-plus table背景改成透明色

方法一:全局修改(推薦) /* 全局透明表格樣式 */ .el-table, .el-table__header-wrapper, .el-table__body-wrapper, .el-table__row {background-color: transparent !important; }/* 可選:自定義表頭和斑馬紋行的透明度 */ .el-table__header th {background-color: rgba(…

安全運營中的漏洞管理和相關KPI

漏洞管理一直是企業網絡安全運維中的關鍵環節,但又是安全運維的痛點。不僅要投入大量的人力物力,還無法被其他運維團隊所理解。那么,向領導層和相關團隊反映出當前漏洞管理的現狀和挑戰便是一個急需解決的問題。 通過有效的數據講好故事,發現問題,或許是做好漏洞管理的突破…