注意
:考慮到熱更新的內容比較多,我將熱更新的內容分開,并全部整合放在【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,如果學習過程中遇到任何問題,也歡迎你評論私信找我。
贈人玫瑰,手有余香!如果文章內容對你有所幫助,請不要吝嗇你的點贊評論和關注
,你的每一次支持
都是我不斷創作的最大動力。當然如果你發現了文章中存在錯誤
或者有更好的解決方法
,也歡迎評論私信告訴我哦!