網絡開發基礎(游戲方向)之 概念名詞

前言

1、一款網絡游戲分為客戶端和服務端兩個部分,客戶端程序運行在用戶的電腦或手機上,服務端程序運行在游戲運營商的服務器上。

2、客戶端和服務端之間,服務端和服務端之間一般都是使用TCP網絡通信。客戶端和客戶端之間通過服務端的消息轉發進行通信。

3、強聯網游戲和弱聯網游戲

強聯網游戲:這種游戲會頻繁地和服務端進行通信,會一直和服務器保持連接狀態,不停地和服務器之間交換數據。例如MMORPG、MOBA。

弱聯網游戲:這種游戲不會頻繁地進行數據通信,客戶端和服務端之間每次連接只處理一次請求,服務端處理客戶端請求后返回數據后就斷開連接了。例如三消休閑游戲,卡牌游戲。

特性強聯網游戲弱聯網游戲
連接方式持久TCP/UDP連接短時HTTP/HTTPS連接
通信頻率高頻(10-60次/秒)低頻(幾分鐘至幾小時一次)
數據傳輸量大量實時狀態數據(位置、動作等)少量業務數據(分數、道具等)
同步機制幀同步/狀態同步最終一致性同步
容錯能力要求快速斷線重連支持離線緩存后同步

4、

Socket(套接字):主要用來完成長連接網絡游戲需求

HTTP(超文本傳輸協議):用于客戶端(如瀏覽器)和服務器之間的網頁數據傳輸(如 HTML、圖片、視頻)。

FTP(文件傳輸協議):用于在客戶端和服務器之間上傳/下載文件。

IP地址和端口號

? ? ?IP地址和端口號是計算機網絡中用于標識設備和服務的關鍵概念,它們共同確保數據準確傳輸到目標應用程序。

IP地址

作用:唯一標識網絡中的設備(如電腦、服務器、手機等)。

類型:

  • IPv4:32位地址,格式為?192.168.1.1(約42億個地址,已接近枯竭)。

  • IPv6:128位地址,格式為?2001:0db8:85a3::8a2e:0370:7334(解決IPv4不足的問題)。

分類:

  • 公網IP:全球唯一,用于互聯網通信(如谷歌的?8.8.8.8)。

  • 私網IP:局域網內使用(如?192.168.x.x10.x.x.x),通過NAT轉換訪問公網。

端口號

作用:標識設備上的具體服務或應用程序(一臺設備可運行多個服務)。

范圍:16位數字(0-65535),分為三類:

  • 知名端口(0-1023):預留給系統服務(如HTTP: 80、HTTPS: 443、SSH: 22)。

  • 注冊端口(1024-49151):分配給用戶應用程序(如MySQL: 3306)。

  • 動態端口(49152-65535):臨時用于客戶端連接。

補充

1、本地開發可以使用?localhost:3000localhost指向本機IP?127.0.0.1)。

2、為什么需要端口號?

IP地址只能定位設備,端口號進一步指定數據交給哪個應用程序處理。

3、端口號可以隨意設置嗎?

避免使用0-1023的知名端口(需管理員權限),通常選擇1024以上的端口。

4、查看本機ip地址

在windows操作系統中打開命令提示符窗口,然后輸入指令ipconfig查看本機的IP地址信息

快捷方式:運行窗口(win+R)-> 打開cmd -> ipconfig

5、可以通過送快遞來理解IP地址和端口號:IP地址相當于居住小區的樓棟號地址,端口號相當于門牌號。只有知道了小區樓棟地址+門牌號才能準確地把快遞送達。

TCP/IP協議

TCP/IP 協議概述

全稱:Transmission Control Protocol / Internet Protocol。即傳輸控制/網絡協議,也叫作網絡通訊協議。

作用:提供可靠的、端到端的數據傳輸,確保數據在網絡中正確路由和交付。

注意:TCP/IP協議不僅僅指的是TCP 和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等等協議構成的協議族?,只是因為在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱為TCP/IP協議。

TCP/IP 四層模型

層級功能典型協議
應用層提供用戶接口和網絡服務HTTP、FTP、DNS、SMTP、SSH
傳輸層確保端到端的數據傳輸(可靠/不可靠)TCP(可靠)、UDP(不可靠)
網絡層負責尋址和路由(跨網絡傳輸)IP(IPv4/IPv6)、ICMP、ARP
網絡接口層物理連接和幀傳輸(數據鏈路+物理)Ethernet(以太網)、Wi-Fi、PPP

總結

  • TCP/IP 是互聯網的基石,涵蓋應用層、傳輸層、網絡層、網絡接口層。

  • TCP?提供可靠傳輸,UDP?追求高效,IP?負責尋址和路由。

  • 理解 TCP/IP 有助于診斷網絡問題(如延遲、丟包)和優化應用設計。

TCP和UDP

? ? ? ?TCP(傳輸控制協議)和 UDP(用戶數據報協議)是?TCP/IP 協議族?中最核心的兩個傳輸層協議,它們在數據傳輸方式、可靠性和應用場景上有顯著區別:

1、TCP:是一種面向連接、可靠的、基于字節流的傳輸層通信協議。

2、UDP:是一種無連接的、不可靠、但傳輸效率較高的協議。

TCP

傳輸控制協議(Transmission Control Protocol)

特點:

1、面向連接:通信前需要通過三次握手建立連接;結束時通過四次揮手釋放連接。

2、可靠傳輸:通過確認應答(ACK)、超時重傳、流量控制保證數據完整。

3、有序交付:數據按發送順序重組。

優點:

1、數據不丟失、不重復、按序到達。
2、適合對可靠性要求高的場景(如網頁、文件傳輸)。

缺點:

1、建立連接和確認機制引入額外開銷,延遲較高。
2、不適合實時性要求極高的應用(如視頻會議)。

UDP

用戶數據報協議(User Datagram Protocol)

特點:

1、無連接:直接發送數據,無需握手或斷開連接。

2、不可靠傳輸:無確認、重傳、流量控制機制,數據可能丟失或亂序。

3、高效低延遲:頭部僅8個字節(TCP至少20個字節),傳輸開銷小。

4、支持廣播/多播:可同時向多個目標發送數據(如視頻直播)。

優點:

1、傳輸速度快,實時性高。
2、適合對延遲敏感的應用。

缺點:

1、不保證數據完整性,可能丟包或亂序。
2、需應用層自行處理可靠性(如 QUIC 協議基于 UDP 實現可靠傳輸)。

對比

特性TCPUDP
連接方式面向連接(三次握手)無連接
可靠性可靠(確認+重傳)不可靠
數據順序保證有序不保證順序
流量控制滑動窗口機制
擁塞控制有(慢啟動、擁塞避免)
頭部大小至少 20 字節8 字節
傳輸效率較低(延遲高)極高(延遲低)
適用場景網頁、文件、郵件視頻、游戲、實時通信

三次握手和四次揮手

三次握手

Three-Way Handshake

流程

發送方

接收方

信息

第一次握手

客戶端

服務端

客戶端向服務端請求連接

第二次握手

服務端

客戶端

服務端同意連接請求,并告知客戶端

第三次握手

客戶端

服務端

客戶端開始連接操作

目的:在通信雙方(客戶端和服務端)之間建立可靠的 TCP 連接,同步初始序列號(ISN),確保雙方都能正常收發數據。

為什么需要三次握手?

  • 防止歷史重復連接初始化:避免因網絡延遲導致的舊連接請求突然到達,造成資源浪費。

  • 同步雙方初始序列號:確保雙方都知道對方的起始序列號,保證數據有序傳輸。

  • 雙向確認:客戶端和服務端均確認對方的收發能力正常。

四次揮手

Four-Way Handshake

流程

發送方

接收方

信息

第一次揮手

客戶端

服務端

客戶端告訴服務器數據已發完,如果還有消息就快發完,否則將要斷開連接

第二次揮手

服務端

客戶端

服務器接受第一次揮手的信息,告訴客戶端繼續等待

第三次揮手

服務端

客戶端

服務器消息已發完,告訴客戶端可以開始斷開連接

第四次揮手

客戶端

服務端

客戶端接受到操作指令,等待一定一時間如果沒有收到服務器回復就開始斷開操作

目的:安全地釋放 TCP 連接,確保雙方數據全部傳輸完畢。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80218.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80218.shtml

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

相關文章

java將pdf轉換成word

1、jar包準備 在項目中新增lib目錄&#xff0c;并將如下兩個文件放入lib目錄下 aspose-words-15.8.0-jdk16.jar aspose-pdf-22.9.jar 2、pom.xml配置 <dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId><versi…

【C/C++】插件機制:基于工廠函數的動態插件加載

本文介紹了如何通過 C 的 工廠函數、動態庫&#xff08;.so 文件&#xff09;和 dlopen / dlsym 實現插件機制。這個機制允許程序在運行時動態加載和調用插件&#xff0c;而無需在編譯時知道插件的具體類型。 一、 動態插件機制 在現代 C 中&#xff0c;插件機制廣泛應用于需要…

【音視頻】AAC-ADTS分析

AAC-ADTS 格式分析 AAC?頻格式&#xff1a;Advanced Audio Coding(?級?頻解碼)&#xff0c;是?種由MPEG-4標準定義的有損?頻壓縮格式&#xff0c;由Fraunhofer發展&#xff0c;Dolby, Sony和AT&T是主 要的貢獻者。 ADIF&#xff1a;Audio Data Interchange Format ?…

機器學習 Day12 集成學習簡單介紹

1.集成學習概述 1.1. 什么是集成學習 集成學習是一種通過組合多個模型來提高預測性能的機器學習方法。它類似于&#xff1a; 超級個體 vs 弱者聯盟 單個復雜模型(如9次多項式函數)可能能力過強但容易過擬合 組合多個簡單模型(如一堆1次函數)可以增強能力而不易過擬合 集成…

通過爬蟲方式實現頭條號發布視頻(2025年4月)

1、將真實的cookie貼到代碼目錄中toutiaohao_cookie.txt文件里,修改python代碼里的user_agent和video_path, cover_path等變量的值,最后運行python腳本即可; 2、運行之前根據import提示安裝一些常見依賴,比如requests等; 3、2025年4月份最新版; 代碼如下: import js…

Linux ssh免密登陸設置

使用 ssh-copy-id 命令來設置 SSH 免密登錄&#xff0c;并確保所有相關文件和目錄權限正確設置&#xff0c;可以按照以下步驟進行&#xff1a; 步驟 1&#xff1a;在源服務器&#xff08;198.120.1.109&#xff09;生成 SSH 密鑰對 如果還沒有生成 SSH 密鑰對&#xff0c;首先…

《讓機器人讀懂你的心:情感分析技術融合奧秘》

機器人早已不再局限于執行簡單機械的任務&#xff0c;人們期望它們能像人類伙伴一樣&#xff0c;理解我們的喜怒哀樂&#xff0c;實現更自然、溫暖的互動。情感分析技術&#xff0c;正是賦予機器人這種“理解人類情緒”能力的關鍵鑰匙&#xff0c;它的融入將徹底革新機器人與人…

Linux筆記---進程間通信:匿名管道

1. 管道通信 1.1 管道的概念與分類 管道&#xff08;Pipe&#xff09; 是進程間通信&#xff08;IPC&#xff09;的一種基礎機制&#xff0c;主要用于在具有親緣關系的進程&#xff08;如父子進程、兄弟進程&#xff09;之間傳遞數據&#xff0c;其核心特性是通過內核緩沖區實…

Ollama API 應用指南

1. 基礎信息 默認地址: http://localhost:11434/api數據格式: application/json支持方法: POST&#xff08;主要&#xff09;、GET&#xff08;部分接口&#xff09; 2. 模型管理 API (1) 列出本地模型 端點: GET /api/tags功能: 獲取已下載的模型列表。示例:curl http://lo…

【OSCP-vulnhub】Raven-2

目錄 端口掃描 本地/etc/hosts文件解析 目錄掃描&#xff1a; 第一個flag 利用msf下載exp flag2 flag3 Mysql登錄 查看mysql的運行權限 MySql提權&#xff1a;UDF 查看數據庫寫入條件 查看插件目錄 查看是否可以遠程登錄 gcc編譯.o文件 創建so文件 創建臨時監聽…

Podman Desktop:現代輕量容器管理利器(Podman與Docker)

前言 什么是 Podman Desktop&#xff1f; Podman Desktop 是基于 Podman CLI 的圖形化開源容器管理工具&#xff0c;運行在 Windows&#xff08;或 macOS&#xff09;上&#xff0c;默認集成 Fedora Linux&#xff08;WSL 2 環境&#xff09;。它提供與 Docker 類似的使用體驗…

極狐GitLab 權限和角色如何設置?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 權限和角色 (BASIC ALL) 將用戶添加到項目或群組時&#xff0c;您可以為他們分配角色。該角色決定他們在極狐GitLab 中可以執…

解鎖現代生活健康密碼,開啟養生新方式

在科技飛速發展的當下&#xff0c;我們享受著便捷生活&#xff0c;卻也面臨諸多健康隱患。想要維持良好狀態&#xff0c;不妨從這些細節入手&#xff0c;解鎖科學養生之道。? 腸道是人體重要的消化器官&#xff0c;也是最大的免疫器官&#xff0c;養護腸道至關重要。日常可多…

Kafka 主題設計與數據接入機制

一、前言&#xff1a;萬物皆流&#xff0c;Kafka 是入口 在構建實時數倉時&#xff0c;Kafka 既是 數據流動的起點&#xff0c;也是后續流處理系統&#xff08;如 Flink&#xff09;賴以為生的數據源。 但“消息進來了” ≠ “你就能處理好了”——不合理的 Topic 設計、接入方…

【繪制圖像輪廓|凸包特征檢測】圖像處理(OpenCV) -part7

15 繪制圖像輪廓 15.1 什么是輪廓 輪廓是一系列相連的點組成的曲線&#xff0c;代表了物體的基本外形。相對于邊緣&#xff0c;輪廓是連續的&#xff0c;邊緣不一定連續&#xff0c;如下圖所示。輪廓是一個閉合的、封閉的形狀。 輪廓的作用&#xff1a; 形狀分析 目標識別 …

uniapp中使用<cover-view>標簽

文章背景&#xff1a; uniapp中遇到了原生組件(canvas)優先級過高覆蓋vant組件 解決辦法&#xff1a; 使用<cover-view>標簽 踩坑&#xff1a; 我想實現的是一個vant組件庫中動作面板的效果&#xff0c;能夠從底部彈出框&#xff0c;讓用戶進行選擇&#xff0c;我直…

Kafka常見問題及解決方案

Kafka 是一個強大的分布式流處理平臺&#xff0c;廣泛用于高吞吐量的數據流處理&#xff0c;但在實際使用過程中&#xff0c;也會遇到一些常見問題。以下是一些常見的 Kafka 問題及其對應的解決辦法的詳細解答&#xff1a; 消息丟失 一、原因 1.生產端 網絡故障、生產者超時…

leetcode 二分查找應用

34. Find First and Last Position of Element in Sorted Array 代碼&#xff1a; class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {int low lowwer_bound(nums,target);int high upper_bound(nums,target);if(low high…

【Docker】在容器中使用 NVIDIA GPU

解決容器 GPU 設備映射問題&#xff0c;實現 AI 應用加速 &#x1f517; 官方文檔&#xff1a;NVIDIA Container Toolkit GitHub 常見錯誤排查 若在運行測試容器時遇到以下錯誤&#xff1a; docker: Error response from daemon: could not select device driver ""…

通過Quartus II實現Nios II編程

目錄 一、認識Nios II二、使用Quartus II 18.0Lite搭建Nios II硬件部分三、軟件部分四、運行項目 一、認識Nios II Nios II軟核處理器簡介 Nios II是Altera公司推出的一款32位RISC嵌入式處理器&#xff0c;專門設計用于在FPGA上運行。作為軟核處理器&#xff0c;Nios II可以通…