前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >泪目!网络连接中断的原因,终于找到了!

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

作者头像
程序员鱼皮
发布2024-05-23 13:33:08
890
发布2024-05-23 13:33:08
举报
文章被收录于专栏:鱼皮客栈鱼皮客栈

朋友们,出大事了!

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

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

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

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

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

玩笑话

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

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

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

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

网络小知识

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

1、网络延迟大或不稳定

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

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

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

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

2、带宽不足

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

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

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

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

3、服务端问题

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

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

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

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

4、其他原因

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

二、网络优化小建议

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

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

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

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

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

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

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

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

最后

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

代码语言:javascript
复制
if (用户 A 爆了装备 1) {
  if (装备 1 是稀有装备) {
    if (用户没充值) {
      // 强行中断网络连接
      connect.close()
    }
  }
}

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员鱼皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 网络小知识
    • 一、网络连接中断的常见原因
      • 1、网络延迟大或不稳定
      • 2、带宽不足
      • 3、服务端问题
      • 4、其他原因
    • 二、网络优化小建议
    • 最后
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档