通而不达网络的发现与解决方案

简介: 通而不达网络的发现与解决方案

通而不达网络又称受限网络。若连接到这样的网络,手机收到的是网络正常通知,手机状态栏出现正常的wifi标志。若已经连接上后切换到这种网络,select函数监控不到异常(正常的响应超时,网络错误码errno有时间为45有时间为22,但是我们的socket在正常的情况下有时间errno为9,有时间为22,所以根据errno判断不出来这种异常),但是收不到服务器发回的所有响应(类似于 iphone手机里设置的弱网测试,丢失率为100%的设置情况)。在这种网络下发起connect 连接,那么会出现典型的75秒超时的情况。所以通而不达的网络典型特征是connect 75秒超时。通而不达网络通常是网络防火墙禁止了用户随意访问外网,进行了身份识别和登录。

既然网络通知,select函数, connect函数及网络错误码(errno)都不能准确定位出这类异常网络,那么解决这样的通而不达网络的办法代价很大,只能用心跳的方式发现这类网络。毕竟这类的网络很罕见,一般通过连接3次或超过75*2秒没有连接上,或没75秒发送一次心跳,若服务器无法实时响应(10秒)就判定它为通而不达网络。

aibinjiang这个网络在登录连接上切换到后台,到了无信号区自动切换到4g网络,后进入aibinjiang信号区,在次离开该信号区,自动切换到4g网络。在connect连接时1毫秒给予响应,结果为1(0为正常,非零为失败),返回的错误码是65(网关或主机不可达),53(软件引起的连接异常)。

连接aibinjiang公交wifi网络异常日志:

15/12/03 08:13:18:422  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1807 Debug:connect before:_connectTime = 1449101598421, Thread Sno: 18
2015/12/03 08:13:18:422  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1811 Debug:connect after:_connectTime = 1449101598422, Thread Sno: 18
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2586 Debug:ret = 1
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2598 Debug:pipe data:GuardThreadStartMonitor
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1865 Debug:errno:65
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2613 Debug:收到守护线程开始监控的消息,开始实时监控长连接线程:GuardThreadStartMonitor
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1880 Debug:i= -1
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1882 Debug:error : 65
2015/12/03 08:13:18:423  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2586 Debug:ret = 1
2015/12/03 08:13:18:424  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:2530 Debug:socket err 
2015/12/03 08:13:18:424  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2598 Debug:pipe data:GuardThreadIdle
2015/12/03 08:13:18:424  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:2549 Debug:sleep: 1秒
2015/12/03 08:13:18:424  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2604 Debug:收到守护线程空闲的消息,停止实时监控长连接线程:GuardThreadIdle
2015/12/03 08:13:19:372  Singleton.m:-[Singleton getLatitudeAll]:392 Debug:函数
2015/12/03 08:13:19:372  Singleton.m:-[Singleton getLongitudeAll]:404 Debug:函数
2015/12/03 08:13:19:372  Singleton.m:-[Singleton getLatitudeAll]:392 Debug:函数
2015/12/03 08:13:19:372  Singleton.m:-[Singleton getLongitudeAll]:404 Debug:函数
2015/12/03 08:13:19:372  Singleton.m:-[Singleton getDistanceWithStartLat:startLng:endLat:endLng:]:564 Debug:函数
2015/12/03 08:13:19:489  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1650 Debug:SKIP fd= 19
2015/12/03 08:13:19:489  Singleton.m:-[Singleton getLoginOrderStat]:265 Debug:函数
2015/12/03 08:13:19:489  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1735 Debug:socket sucess 
2015/12/03 08:13:19:489  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1736 Debug:g_fd= 19
2015/12/03 08:13:19:489  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1741 Debug:main loop 
2015/12/03 08:13:19:490  Singleton.m:-[Singleton getLoginOrderStat]:265 Debug:函数
2015/12/03 08:13:19:490  SingleAsyncSocket.m:-[SingleAsyncSocket getNetworkStatus]:54 Debug:函数
2015/12/03 08:13:19:490  SingleAsyncSocket.m:-[SingleAsyncSocket getNetworkStatus]:54 Debug:函数
2015/12/03 08:13:19:490  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1807 Debug:connect before:_connectTime = 1449101599489, Thread Sno: 18
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2586 Debug:ret = 1
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1811 Debug:connect after:_connectTime = 1449101599491, Thread Sno: 18
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2598 Debug:pipe data:GuardThreadStartMonitor
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1865 Debug:errno:65
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2613 Debug:收到守护线程开始监控的消息,开始实时监控长连接线程:GuardThreadStartMonitor
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2586 Debug:ret = 1
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2598 Debug:pipe data:GuardThreadIdle
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__32-[SingleAsyncSocket guardThread]_block_invoke:2604 Debug:收到守护线程空闲的消息,停止实时监控长连接线程:GuardThreadIdle
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1880 Debug:i= -1
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:1882 Debug:error : 65
2015/12/03 08:13:19:492  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:2530 Debug:socket err 
2015/12/03 08:13:19:493  SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:2549 Debug:sleep: 1秒

iphone手机弱设置(用来模拟测试应用在不通网络环境下的健壮性),在设置->开发者->Status(Network Link Condtioner)里设置。

目录
相关文章
|
16天前
|
传感器 运维 物联网
蓝牙Mesh网络:连接未来的智能解决方案
蓝牙Mesh网络:连接未来的智能解决方案
98 12
|
2月前
|
监控 安全 网络安全
云计算与网络安全:技术、挑战与解决方案
【8月更文挑战第30天】随着云计算技术的飞速发展,越来越多的企业和个人开始将数据和应用迁移到云端。然而,云计算的普及也带来了一系列网络安全问题。本文将探讨云计算中的网络安全挑战,包括数据泄露、恶意软件攻击和服务中断等,并介绍一些常见的网络安全技术和最佳实践,如加密、访问控制和安全监控等。最后,我们将讨论如何制定有效的网络安全策略,以保护云服务免受威胁。
|
3月前
|
存储 安全 网络安全
云端防御策略:云计算时代的网络安全挑战与解决方案
【7月更文挑战第31天】随着云计算技术的迅猛发展,企业和个人越来越倚重云服务来处理和存储数据。然而,这种转变也带来了新的网络安全挑战。本文将深入分析云计算环境下的网络安全问题,并探讨如何通过先进的安全措施和技术来保护云基础设施免受威胁。我们将讨论从身份验证到入侵检测系统的一系列安全实践,以及如何利用加密技术来保障数据在传输和静态状态下的安全。
39 1
|
3月前
|
云安全 安全 网络安全
云端防御策略:在云计算时代保护网络安全的全新挑战与解决方案
随着云计算技术的飞速发展,企业和个人越来越依赖云服务来处理和存储数据。然而,这种转变也带来了新的安全威胁和隐私问题。本文将探讨云计算环境中特有的网络安全挑战,并介绍一系列创新的安全措施和技术,旨在加强云服务的安全性,确保数据的完整性和保密性。通过案例分析和最新技术趋势的讨论,我们旨在为读者提供深入理解并应对这些挑战的策略。
35 1
|
4月前
|
安全 网络安全 云计算
云计算与网络安全:技术挑战与解决方案
【6月更文挑战第8天】在信息技术飞速发展的今天,云计算作为一种新兴的计算模式,已经广泛应用于各个领域。然而,随着云计算的普及,网络安全问题也日益突出。本文将探讨云计算与网络安全之间的关系,分析云服务、网络安全和信息安全等技术领域的挑战,并提出相应的解决方案。
|
5月前
|
存储 监控 安全
云计算与网络安全:技术挑战与解决方案
【5月更文挑战第31天】本文深入探讨了云计算与网络安全的交叉领域,分析了云服务、网络安全、信息安全等技术领域的关键问题。文章首先介绍了云计算的基本概念和主要服务模型,然后详细讨论了云计算环境下的网络安全威胁和挑战,最后提出了一些有效的解决方案和技术策略。
|
2月前
|
存储 安全 网络安全
云计算与网络安全:技术挑战与解决方案
【8月更文挑战第31天】在数字化时代,云计算已成为企业和个人数据存储、处理和分析的首选平台。然而,随着其广泛应用,网络安全问题也日益凸显。本文将探讨云计算中的网络安全挑战,包括数据泄露、服务中断等风险,并介绍如何通过加密技术、身份验证和访问控制等手段来增强云安全。文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全措施。
|
2月前
|
安全 网络安全 云计算
云计算与网络安全:探索云服务的安全挑战与解决方案
【8月更文挑战第24天】在数字化转型的浪潮中,云计算作为一项关键技术,正推动着企业IT架构的革新。然而,随着云服务的广泛应用,网络安全问题也日益凸显,成为制约云技术发展的主要因素之一。本文将深入探讨云计算环境下的网络安全挑战,并结合最新的安全技术,提出有效的防护策略和解决方案。通过分析云服务模式、安全威胁及应对措施,旨在为读者提供一套完整的云计算网络安全指南。
|
2月前
|
网络协议 Linux 网络安全
遇到Docker容器网络隔断?揭秘六种超级实用解决方案,轻松让Docker容器畅游互联网!
【8月更文挑战第18天】Docker容器内网络不通是开发者常遇问题,可能因网络配置错、Docker服务异常或防火墙阻碍等原因引起。本文提供六种解决策略:确认Docker服务运行状态、重启Docker服务、检查与自定义Docker网络设置、验证宿主机网络连接、临时禁用宿主机IPv6及检查防火墙规则。通过这些步骤,多数网络问题可得以解决,确保容器正常联网。
113 1
|
2月前
|
安全 网络安全 数据中心
下一篇
无影云桌面