当计算机系统中的客户端(例如浏览器、应用程序等)尝试连接到远程服务器时,网络连接错误是一种常见的问题。这种错误可能会对用户造成很大的困扰,因为它可能导致无法访问网站或无法使用某些在线应用程序。而网络错误其实是我们日常开发中很难完全避免掉的一个问题,只能降低,而不能杜绝。

一、为什么会有网络错误?

图自:https://time.geekbang.org/column/article/78585

如果有一定网络知识基础,便很容易能够从上图大概清晰看出网络通信需要的各个节点。一个网络请求从用户到企业的软件服务器会经历很多链路,而且每个链路节点上又要经过很多设备。随着每个网络节点风险的叠加,便很难避免网络错误的发生。

这些网络错误可能是由多种原因引起,以下是一些常见的网络错误原因:

1、网络连接不稳定:网络连接不稳定是网络错误的常见原因之一,可能是由于网络拥堵、信号干扰、设备故障等因素引起的。

2、DNS解析错误:DNS解析错误是指在进行域名解析时出现错误,可能是由于DNS服务器故障、域名解析错误等原因引起的。

3、超时错误:在进行网络请求时,如果响应时间超过了设定的超时时间,就会出现超时错误。

4、网络安全防护:防火墙、入侵检测系统等安全防护设备也可能对网络请求造成影响,导致网络错误。

5、服务器故障:在进行网络请求时,如果服务器出现故障,可能会导致网络错误。

6、应用程序错误:应用程序本身的错误也可能导致网络错误,例如请求参数不正确、协议不匹配等。

7、其他原因:网络错误也可能由其他原因引起,例如网络病毒、操作系统错误等。

网络错误的原因可能非常复杂,开发者需要针对不同的网络错误原因,采取不同的解决方案,以提高软件的可靠性和稳定性。

二、一般常见的网络错误有几种?

以上,我们了解了网络错误发生的几种原因,那么网络错误的类型其实也就“紧跟着”清晰起来,以下是一些常见的网络连接错误类型:

1、连接超时:客户端发送连接请求后,在规定时间内没有得到服务器响应,就会出现连接超时错误。

2、连接被拒绝:当客户端尝试建立连接时,服务器可能会拒绝连接请求,此时会出现连接被拒绝错误。

3、DNS解析错误:DNS解析错误是指在进行域名解析时出现错误,可能是由于DNS服务器故障、域名解析错误等原因引起的。

4、SSL证书错误:如果客户端请求的是HTTPS协议的网站,但是服务器的SSL证书不正确或已经过期,就会出现SSL证书错误。

5、网络断开:在网络通信过程中,如果网络连接中断,就会出现网络断开错误。

6、网络拥堵:当网络带宽不足或网络拥堵时,会出现网络连接错误。

7、网络安全防护:防火墙、入侵检测系统等安全防护设备也可能对网络请求造成影响,导致网络连接错误。

8、服务器故障:在进行网络请求时,如果服务器出现故障,可能会导致网络连接错误。

9、应用程序错误:应用程序本身的错误也可能导致网络连接错误,例如请求参数不正确、协议不匹配等。

网络连接错误的类型可能非常多,可能是由多种原因引起的,开发者需要针对不同的网络连接错误类型,采取不同的解决方案,以提高软件的可靠性和稳定性。

三、如何降低一款App的网络错误率?

要降低一款App的网络错误率,可以考虑以下几个方面:

1、优化网络请求:在App中,网络请求是常见的操作,而网络请求的优化可以减少错误的发生。可以使用一些优化工具和技术来改善网络请求的效率,例如:

  • 使用HTTP缓存和资源缓存来减少网络请求的次数和提高响应速度。

  • 使用数据压缩技术来减少数据传输的大小。

  • 合并多个请求为一个请求,减少网络请求的次数。

  • 设置请求超时时间,避免因为请求超时而引起错误。

2、错误处理:当网络错误发生时,及时进行错误处理可以降低用户的体验。可以考虑以下措施:

  • 显示友好的错误提示,提示用户网络出现问题,并建议用户重试。

  • 提供错误日志记录,以便开发人员快速定位和解决问题。

  • 支持自动重试机制,当网络错误时,自动重试请求,避免用户手动操作。

3、测试和监控:及时的测试和监控可以发现网络错误,从而快速修复问题,提高App的稳定性。可以考虑以下方法:

  • 定期进行功能测试和性能测试,以确保App的稳定性和性能。

  • 实时监控网络请求的响应时间和错误率,发现问题后及时处理。

  • 通过用户反馈和崩溃报告等渠道获取用户反馈,快速修复问题。

优化网络请求、错误处理以及测试和监控是降低App网络错误率的重要手段。

四、httpDNS可以降低网络错误率吗?

使用HTTPDNS可以帮助降低网络连通错误率,尤其是在域名解析方面。传统的DNS解析方式存在被DNS污染、DNS劫持等问题,会导致网络连接出现错误。下图是一个传统DNS解析的流程。

图自极客时间《趣谈网络协议》

而HTTPDNS 基于 HTTP 协议,【优先】向自建的 DNS 服务器发送域名解析请求,替代了基于 DNS 协议向运营商 LocalDNS 发起解析请求的传统方式,可以避免 LocalDNS 造成的域名劫持和跨网访问等问题,并解决移动互联网服务中域名解析异常带来的困扰。

也就是没有了“中间商”。如下图所示。

图自:https://cloud.tencent.com/product/httpdns

另外HTTPDNS还可以通过多个节点的负载均衡,以及数据加密、签名验证等安全措施,提高域名解析的可靠性和准确性,从而降低网络连通错误率。

使用HTTPDNS可以避免DNS污染、DNS劫持等问题,提高域名解析的可靠性和准确性,从而降低网络连通错误率。同时,HTTPDNS也具有更快的解析速度和更强的可扩展性,可以提高网络连接的稳定性和可靠性。

需要注意的是,HTTPDNS并不能完全消除网络连接错误,仍需要综合考虑多种因素进行优化和调整,例如网络环境、网络设备、网络协议等方面。

使用httpDNS的一般步骤如下:

1、客户端向应用服务器请求某个域名的IP地址。

2、如果客户端本地DNS缓存中没有该域名的解析结果,则客户端向HTTPDNS服务器发送域名解析请求。

3、HTTPDNS服务器返回该域名的IP地址,同时包含TTL(Time-to-Live)字段,指定该解析结果的有效期。

4、客户端将该域名解析结果保存在本地缓存中,下次请求同一域名时可以直接从缓存中获取。

5、当TTL过期时,客户端会重新向HTTPDNS服务器请求解析结果。

HTTPDNS的优点在于可以绕过传统DNS解析的中间环节,直接访问DNS解析服务器,从而提高解析速度和可靠性。同时,HTTPDNS还具有多节点负载均衡和安全加密等功能,能够提高网络连接的稳定性和可靠性。

五、网络错误率的行业水平值是多少?

网络错误率的行业水平值会因为应用场景、网络环境、应用规模等因素不同而有所差异。不同行业和不同应用领域对网络稳定性和可靠性的要求也不同,因此其网络错误率的行业水平值也会有所差异。

在一些对网络稳定性和可靠性要求较高的行业,例如金融、医疗、交通等,网络错误率的要求相对较高,一般要求网络错误率达到0.1%以下。而在一些对网络稳定性和可靠性要求较低的行业,例如教育、娱乐、社交等,网络错误率的要求相对较低,一般在1%左右。

然而,总体来说,随着网络技术的发展和网络环境的改善,行业对网络错误率的要求也在逐步提高。对于企业应用,网络错误率的目标值应该尽量接近0,以提高用户体验和业务的顺畅进行。

六、为什么网络错误率很难达到0?

图自网络

网络错误率很难达到0,主要是因为网络本身是一个复杂的系统,由许多不同的组成部分组成,包括硬件、软件、协议、数据传输等等。每一个组成部分都有可能出现故障,从而导致网络连接失败。

以下是导致网络错误率很难达到0的一些常见原因:

1、网络环境不稳定:网络连接很容易受到外部环境的影响,例如天气、电力供应等因素。此外,不同地区、不同网络运营商之间的网络质量和连接速度也存在差异。

2、硬件故障:网络连接依赖于许多硬件设备,例如路由器、交换机、光纤、网卡等等。这些设备在使用过程中可能会出现故障,例如断电、硬件损坏等问题。

3、软件问题:网络连接也依赖于许多软件系统,例如操作系统、网络协议栈、应用程序等等。这些软件系统也可能存在缺陷或漏洞,从而导致网络连接失败。

4、流量过载:网络连接还可能受到流量过载的影响,当网络中同时有大量的数据传输时,可能会导致网络拥塞,从而影响连接质量。

5、人为操作失误:在网络连接的维护和管理过程中,人为操作失误也是导致网络连接失败的原因之一。

虽然网络错误率很难达到0,但通过合理的网络设计和管理、合适的网络设备和软件、及时的维护和更新等方法,可以尽可能降低网络错误率,提高网络连接的可靠性和稳定性。

小结

网络连接错误可能会由多种原因引起,采取适当的措施可以降低网络连接错误的发生率,提高系统的可用性和稳定性。在实际应用中网络错误率很难达到0,但是我们可以通过一些技术手段和管理错误来降低网络错误率,比如文中提到的httpDNS,以便提高系统的可用性和稳定性。

参考资料:

1、https://time.geekbang.org/column/article/9895

2、https://time.geekbang.org/column/article/78585

3、https://cloud.tencent.com/product/httpdns

从原因到解决方案,深入剖析网络错误问题相关推荐

  1. ffmpeg中av_read_frame阻塞的原因与解决方案

    最近用到ffmpeg,想要av_read_frame立即返回,但是看网上的博客,都没有详细的解说,那就自己看源码. 两种方法: 设置回调打断函数和设置超时 超时,但是如果只设置该参数,依然会在av_r ...

  2. ChatGPT 常见错误原因及解决方案:报错、回答不完整、网络错误等

    最近,由人工智能实验室 OpenAI 发布的对话式大型语言模型 ChatGPT 火得一塌糊涂.它可以与人类轻松地对话,无论是多么奇葩的问题 ChatGPT 都不在话下.在体验 ChatGPT 的同时我 ...

  3. Fiddler抓包抖音网络错误解决方案

    最近呢,挺磕碜的,因某些原因接触了一下抖音抓包api,但是因一些签名算法等问题被劝退了,貌似从app逆向上可以攻克抖音的一些限制,不过技术较菜,被劝退了 = = 以下内容可能有些难以阅读,请仔细阅读, ...

  4. Windows 10操作系统更改计算机名报“一般性网络错误”的解决方案

    由于某种原因,需要更改本地计算机名时,发现报错"一般性网络错误",导致无法更改成功,如下图所示: 解决方案: 右击右下角的网络图标,点击"打开网络和Internet设置& ...

  5. java.util.NoSuchElementException错误原因及解决方案

    java.util.NoSuchElementException错误原因及解决方案 参考文章: (1)java.util.NoSuchElementException错误原因及解决方案 (2)http ...

  6. linux 应用网络连接失败的原因,PuTTY网络错误:软件导致连接中止

    解决PuTTY网络错误 Software caused connection abort 阅读有关该错误的PuTTY怎么说 这是Windows网络代码由于某种原因而终止已建立的连接时所产生的一般错误. ...

  7. 做完系统回来计算机连接不上网络,win7重装系统之后连不上网的原因和解决方案...

    重装win7系统后也会遇到一些问题,比如最常见的win7重装系统之后连不上网问题,明明已经按照正常步骤安装程序,怎么还是连不上网呢?导致win7重装系统之后连不上网的原因有很多种,可能是网卡驱动问题, ...

  8. Microsoft OLE DB Provider for SQL Server 错误 ‘80004005‘错误原因和解决方案

    Microsoft OLE DB Provider for SQL Server 错误 '80004005'错误原因和解决方案 方法步骤: 1.在WINSOWS/TEMP目录的安全选项中,添加帐号ev ...

  9. 计算机无法连接网络错误651,Win7宽带连接错误651的原因和解决方法

    Win7宽带连接错误651的原因比较特殊,很多问题都可能导致宽带连接错误651,当用户遭遇宽带连接提示错误651时,可以按照以下方法进行检查和处理,以便解决宽带连接错误651的问题. Win7宽带连接 ...

最新文章

  1. 静态方法和实例化方法的区别
  2. MySQL-锁表处理
  3. MySQL外键约束On Delete、On Update各取值的含义
  4. maven打包jar上传到nexus
  5. 670. 最大交换
  6. JDK8新特性之Optional
  7. apipost如何设置断言
  8. java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常
  9. Relatives POJ - 2407(不打表的欧拉函数 单求)
  10. UNIX环境高级编程之第7章:进程环境
  11. Atitit sprbt 多数据源mltds datasource multi 目录 第一节 App cfg 1 第二节 Cfg bean 1 第三节 Use 4 第一节 App cfg
  12. 残差网络 ResNet 为什么能训练出1000层的模型 动手学深度学习v2
  13. python获取cpu温度 window_使用python从windows10运行系统读取CPU温度
  14. android防止程序休眠,android 设置 永不休眠
  15. 交换机用户模式、特权模式、全局模式、端口模式
  16. 1.3 博弈结构和博弈的分类
  17. mysql explain type_MySQL explain type详解
  18. Bark – 给自己的 iPhone 发推送提醒,简单开源且免费
  19. CVE-2018-4990 漏洞详情分析
  20. 安霸S2L交叉编译环境搭建

热门文章

  1. php视频吾爱破解,php 32行代码简单实现抖音无水印视频api,附前台页面
  2. csu 1769(数学)
  3. Welcome to the future! welcome to the python world!
  4. 基于VUE的考勤日历(带图标)
  5. 【Photoshop API 】六、 实际案例:在.atn文件中播放所有动作
  6. 《机器人SLAM导航核心技术与实战》先导课:如何安装Ubuntu系统
  7. React Native每日Apple App动画第二部分:打开图像
  8. [机器学习]机器学习在短文本分类项目中的应用
  9. 配角也可以成为荧屏经典 --- 我看电影《新喜剧之王》里几个配角
  10. MongoDB元数据的存储介绍