关于用户掉线问题的原因分析
吴旻
泰岩网络工作室
很少参加每周的三方会议。昨天因为需要我解释一个投诉,听了半场。其中争论最多,也是近期投诉最严重的问题,就是用户掉线问题。
市场上C/S架构的产品很多,掉线问题的原因也多种多样。根据我以前做内网安全产品及网络通信的开发经验,掉线问题的原因大体上分如下几类:
一、服务端或客户端本身的BUG
这类问题一般来说比较好解决,纯代码的问题,总是很容易通过调试方式解决。产品越成熟,这样的问题就会越少。当然不排除有些BUG隐藏的很深,很难发现。不过,多数情况通过模拟方式,都可以解决。比如,我们假设服务器可能有问题,那就再写一个简单的服务端程序,只简单模拟一下登录过程的几个协议,就可以找到问题的原因了。
二、网络硬件问题
这类问题有时也不好排查,因为网络的节点很多。比如某个交换机坏掉了,或者某根网线没插牢,造成时断时续。这类问题的特点是带有普遍性,一出问题,大家都出问题,或者一个软件出问题,别的软件也同时出问题。
三、防火墙问题
涉及到防火墙,事情的难度会变得很大。市场上的防火墙种类很多,而且都越来越倾向于“主动防御”,所以哪怕你没做什么“坏事”,也难保它“怀疑”你有可能做坏事而把你过滤掉。防火墙的策略多是“有罪推定”,它怀疑你有问题,你就是有问题。
四、适应性问题
这个事情是软件开发人员经常忽略掉的一个很严重很严重的大事情!KFC进入中国这么多年,也依然在努力寻求本地化的经营策略,比如提供有米饭的午餐。在美国很成功的只提供汉堡,到中国就必须考虑米