网络开发基础(游戏方向)之 概念名词

前言

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.mzph.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可以通…