IM开发者的零基础通信技术入门:上网卡顿?网络掉线?一文即懂!
Posted im中国人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IM开发者的零基础通信技术入门:上网卡顿?网络掉线?一文即懂!相关的知识,希望对你有一定的参考价值。
【来源申明】本文引用了微信公众号“鲜枣课堂”的《上网慢?经常掉线?这篇文章告诉你该怎么办!》文章内容。为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动。
1、本文内容概述
对于不太了解网络通信的人来说(包括开发者),可能会经常碰到下面这些问题:
- “手机(电脑)上网经常掉线,是为什么?”
- “手机(电脑)上网总是很慢,看个抖音都很卡,是怎么回事?”
- ……
想要搞清楚这些看似简单的问题,其实并不容易。归根到底的原因,就是因为上网牵扯到的技术和环节太多,容易出现问题的地方也很多。即使是老司机,也有可能被难住。
对于即时通讯网的开发者来说,为了更深入地搞清楚这些常见的网络问题,很有必要系统地了解导致这些问题的方方面面。
本文将详细介绍生活中遇到的常见网络问题,及可能的解决方法,虽说是一篇技术文章,但内容将一如既往地通俗易懂,简单实用。
废话不多说,我们直入主题。
技术交流:
- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》
- 开源IM框架源码:https://github.com/JackJiang2011/MobileIMSDK(备用地址点此)
(本文已同步发布于:http://www.52im.net/thread-2406-1-1.html)
2、基础知识
正文开始之前,几个基本知识需要先说明一下。(如果是老司机,请跳过本节。如果是零基础,请认真阅读。)
我们首先来解释一下,到底什么是“网速慢”。
网速慢,就是上网速度慢。上网,就是上互联网。互联网,就是因特网(Internet)。
关于上网的本质,给大家看一个示意图:
手机(电脑),首先通过有线信号(网线、光纤)或无线信号(WiFi、基站),连到运营商(移动、电信、联通)的网络里。然后,运营商会把我们的数据,送到互联网。同时,把互联网的数据,送给手机(电脑)。
什么是数据呢?
文字、声音、图片、视频(电视剧、电影等),这些都是数据:
数据的大小,是有度量单位的。单位有两种,一种是比特(bit),一种是字节(byte)。它们的换算关系,是1字节=8比特(1 byte = 8 bit)。因为bit和byte都是b开头,所以,为了区分,把byte简写成大写的B。我们口语上,把B叫做“大B”,把b叫做“小b”。
bit是一个很小的单位。通常,一张图片的大小,就有40000000bit。所以,为了方便,我们就创造了更大的单位:b、Kb、Mb、Gb、Tb。(就像长度有毫米、厘米、分米、米一样。)
它们之间的换算关系如下:
Byte也是一样,也有B、KB、MB、GB、TB:
大B和小b,都是数据的大小单位。如果是网速(数据传输速率)的话,就是每秒多少比特(bit/s)或每秒多少字节(byte/s)。
因此,大家判断网速,一定要先搞清楚使用的是什么单位。
例如,中国电信的200M宽带,其实是指200M bit/s,实际上,最高速度只有200÷8=25MB/s。
再例如,你的千兆网卡,是指1000M bit/s,也就是1000÷8=125MB/s。
还有大家现在使用的4G LTE手机,理论峰值速率是150M,也是bit/s,实际上,也就是150÷8=18.75MB/s。(这只是理论上的最高速度,人一多,速度就达不到。)
好了,搞清楚这些,我们开始真正进入正文。
3、上网=用水管
刚才说了,所谓上网,就是手机访问互联网上的数据。这些数据,都在别人公司的电脑(服务器)上。
也就是说,网络通信,就是把你的手机和别人公司(例如腾讯、阿里、优酷)的服务器之间,连一个通道。
如果这个通道有任何一处出现问题,那么,整个通道的速率,就会出现问题。
就像一根水管,它最细的地方,决定了整个水管的流速。
出现问题导致的后果,就是——消息发不出去(或收不到),音乐或视频播放会停顿或模糊,游戏也会停顿,甚至重连。
这就影响了功能的正常使用,影响了你的体验还有心情:
因此,处理网速问题,说白了,就是找到这根水管的最窄处,把它拓宽。解决断网问题,也是这个道理,找到水管断掉的位置,把它接上。
有的人会抱怨网速:“我家不是百兆光纤嘛,怎么还会卡顿?”。其实就是搞错了问题的方向——他没有找水管的最窄处,而是强调自己水管的最宽处。
4、移动通信?有线宽带?
处理网络问题的第一步,就是先判断——你到底是用的什么上网方式?
前面我提到,之所以我们能上网,是使用了运营商提供的“电信服务”。
这种服务,主要分为两种:
- 1)一种是卖手机SIM卡给你,你把卡插入手机,进行通信。这种叫移动通信服务;
- 2)另一种,是给你家里拉根宽带,可能是网线,或者是光纤(现在基本上是光纤为主)。然后你通过这根线上网。这种,叫有线宽带服务。
包括固定电话,还有iptv,也是属于有线通信服务的范畴。
▲ 电信师傅调测iptv(iptv其实就是上网看电视)
这两种上网方式(移动通信和有线宽带),问题排查的方法不尽相同。所以,应该首先搞清楚自己到底用的是什么方式。
注意:大家所熟知的WiFi,虽然看上去也是在“移动”中通信,但是本质上属于有线宽带(待会我们会说明)。
5、移动通信上网问题的排查
我们首先说说移动通信上网的问题排查。
移动通信,就是通过基站,提供网络信号(关于基站更详细的知识,请见:《IM开发者的零基础通信技术入门(六):移动终端的接头人——“基站”技术》)。
▲ 基站
然后你的手机通过这个信号,连入运营商的网络,从而访问互联网。
大家都知道,如果你使用移动通信上网或打电话,网络不好,通常会表现为:你手机上的信号标志,格数只有1格,甚至是无信号。
信号好,上网就快。信号不好,上网就慢,甚至不能上网。决定这个信号强弱的,就是运营商的基站和天线。基站越多,天线和你之间的距离越短,或者基站和手机之间的障碍物越少,你的手机信号就会越好。
如果你所在的地方手机信号不好,怎么办呢?
答案是打客服电话投诉。一次不行就多打几次。如果还是不行,就拨打工信部的投诉电话:12300。
▲ 工信部是运营商们的上级主管部门
很多人问我,是不是可以自行安装信号放大器或者中继器的方式,加强所在区域的运营商信号?
答案是——不行。
任何个人或单位都没办法中继或加强运营商的基站信号。这主要是为了保证公众的通信安全。
你只能让运营商自己来解决。他们的办法,无非是多安装几个基站,或微基站。
如果你看到信号格数是满的,但始终觉得速度很慢,可以安装软件进行网速测试。例如“speedtest”这个软件,就可以用于测速。
▲ Speedtest软件界面
现在我们所处的4G LTE时代,手机上网测速如果达到30-40Mbps(注意单位是bit/s,bps)以上,就算是不错的了。
如果信号格数满的,但测速值很低,依然可以打运营商客服电话投诉。
注意:如果你身边的用户(必须是相同运营商),测速结果很好,那么有可能是你的手机存在问题。这种,就属于“用户侧”问题。
所谓用户侧,也就是手机(电脑)这一侧。相对应的,运营商那边,叫做“网络侧”。
如果手机上网有问题,第一件事,就是问问身边的人,是否存在同样的问题。
当然,也有可能是你的SIM卡有问题,或者运营商那边,把你的数据设置错了,导致问题。
通常来说,用户侧出问题的概率明显高于网络侧。如果网络侧出问题,就是大面积问题,大家都无法使用网络,很容易察觉。
6、用户侧问题的排查
如果确认了是自己的手机存在问题,就需要进一步排查了。
手机出现卡顿,首先要判断清楚的,就是——到底是手机卡顿,还是网络卡顿?
现在新出的手机,配置都比较高,对于绝大部分软件(例如微信、爱奇艺、百度地图等)来说,都是可以流畅运行的。(对手机配置要求高的,主要是一些游戏软件。)
如果是几年前购买的手机,可能会存在手机卡顿的毛病。还有安卓手机,时间久了就会变卡,这也是产品本身的问题,没办法的(现在安卓手机性能很强,配置很好,这个问题不像以前那么明显)。电脑也是如此。
如何判断是手机卡顿,还是网络卡顿呢?
一般来说,如果是手机卡,那么主要表现为:
- 1)打开软件缓慢,半天没有反应;
- 2)点击按钮时,屏幕卡顿;
- 3)运行游戏时,图像不流畅。
如果是网速卡,通常会有一个很重要的符号,那就是缓冲圆圈。
▲ 类似这样的
这个圆圈会不停地转,然后可能还会提示你:“正在缓冲,请等待,Loading”,之类的。(缓冲,就是等待服务器过来的数据。)
如果是手机卡顿,解决方案有两个:
- 1)重置手机,也就是初始化手机,通过手机设置,恢复成最开始的样子(数据会全部丢失,要记得备份);
- 2)购买新的手机。
注意:大家别急着去买新手机,如果只是运行某个程序有卡顿,并不一定是你的问题。也有可能是这个程序的服务提供商那边存在问题。例如它们的服务器挂了,它们的机房断网了,之类的。
▲ 服务商的机房
7、有线宽带上网问题的排查
刚才说了移动通信问题和手机自身问题。接下来,我们看看有线宽带上网问题。
这个里面的问题,就多了去了。
对于有线宽带来说,运营商只是提供了一根线,也就是一个“水龙头”。如果只是拿一台电脑直接接它,显然太浪费了。
所以,每个人家里,都会安装一个路由器,将一个水龙头,变成好多个水龙头。
以前的路由器,只能分出多根网线。现在的路由器,都是无线路由器,除了分出网线之外,还可以发出无线信号,这也就是大家所熟知的——WiFi。
▲ 常见的家庭网络组成
一般来说,有线宽带的网络信号质量,要比移动基站更为稳定,速率也要更快一些。(无线信号容易受障碍物阻挡,也容易受干扰。)
再加上手机上网需要使用流量,费用更贵。所以,大家都喜欢用WiFi,喜欢用光纤宽带上网。
但是,光纤宽带也不一定都很快。不同省份和城市之间,不同的运营商之间,差异会比较大。
而且,有线宽带也分专享宽带和共享宽带,如果是共享宽带,好几家一起用的,高峰期就会很慢,不建议使用。(当然,共享宽带价格便宜。)
很多用户,贪便宜,装了不好的宽带,结果速度还不如使用手机流量上网。
使用有线宽带上网,最重要的,就是你的无线路由器。
无线路由器!无线路由器!无线路由器!重要的东西说三遍!
目前市面上的无线路由器,牌子很多,价格差别很大,品质差别也很大。
▲ 各种品牌的无线路由器
我很严肃地告诉大家,请不要使用一两百块钱的那种低端路由器。哪怕它外观很漂亮、拥有各种功能(都是噱头)。
以我的经验,路由器的外观越低调,反而越靠谱。
现在我们所处的这个信息时代,网络的质量决定了生活的质量,所以,多花点钱,买个好的无线路由器,很有必要。
好的无线路由器,运行更加稳定,不容易掉线、死机,网速的抖动也不会大。而且,好路由器在信号和辐射之间的平衡,也控制得更好。
▲ 例如华硕、网件的无线路由器,就做得不错
另外,请大家注意,很多无线路由器号称是千兆路由器,但实际上是玩的“文字游戏”。
现在的无线路由器,可以同时提供两个无线网络,分别是2.4GHz频段和5GHz频段。
所以一般你手机能搜到两个无线网络,名字类似这样:
▲ 有一些WLAN网络,名字以“_5G”结尾
商家宣传无线路由器的时候,有一个潜规则——它所说的XX兆,实际上是两个无线网络的理论峰值速率相加。
例如这个路由器,所谓1200M,就是300M+867M:
▲ 1200M≈300M+867M
▲ 市售路由器宣传速率和实际速率对照表
这显然是不合理的——你的手机不可能同时连两张WiFi网络,更不可能网速进行叠加,更更不可能达到极限速度。但是,所有的路由器厂家都在这么做。
更需要注意的是,现在的很多所谓“千兆”路由器(尤其是低端型号),网线物理端口都是百兆的,根本不是千兆。
▲ 出去的口(WAN口)是千兆的,可是内部的口(LAN口)是百兆的
也就是说,如果你安装运营商的“千兆宽带”,但使用的是这样的路由器,你根本发挥不出千兆的能量。
而且,事实上,就算你用了千兆物理网口的路由器,如果网线没有达到标准,都很难达到千兆速率。
▲ 网线对网速的影响,也很大
所以,对绝大部分用户来说,完全没有必要追求所谓“千兆宽带”。两百兆的宽带,绝对足够了。
如何判断有线宽带的问题点在哪里呢?
最简单的办法,就是直接拿电脑,接上网线,连在运营商的光猫上,然后进行测速。
▲ 家庭宽带最简测速模型
测速软件很多,简单一点的话,腾讯电脑管家的工具箱—测试网速工具,就可以进行测速。
如果测速结果不能达到运营商承诺的值,那么,请拨打客服电话,让运营商工作人员上门解决。
测速的时候需要注意,建议选本地或附近的测速点。不要选异地或别的运营商的测速点。
例如,你是南京电信的用户,那么,不要选择北京电信或者四川联通的测速点。
注意:现在运营商的光猫基本上都带无线WiFi功能,但是我建议不要使用。因为光猫的WiFi功能很烂,很容易出问题。我建议专门购买无线路由器,用路由器进行PPPOE拨号。光猫的话,只用用光纤拨号功能就好了。此外,建议关掉光猫的Wi-Fi,减少辐射,也减少对自家无线路由器的信号干扰。
如果测速正常,那么,要么是无线路由器的问题,要么是手机(电脑)的问题。
如果家里多部手机(电脑)都工作正常,而只有某部手机(电脑)网速异常的话,基本上是这个手机(电脑)的问题。还是建议采用替换法进行排查处理。
实在不行,就只能找手机(电脑)的厂家或专业维修人员了。
好啦,以上就是今天文章的全部内容。
其实,大家也应该看明白了,虽然网络问题纷繁复杂,但是,只要逻辑思路清晰,按照顺序逐一排查,就不难找到原因。平时开发应用程序,或向客户、产品经理、老板解释相关网络问题时,也更有依据、更有底气了。
希望这篇文章能够给大家带来帮助,感谢大家的耐心观看,我们系列文章的下篇再见咯!
8、本系列文章目录
《IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)》
《IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)》
《IM开发者的零基础通信技术入门(三):国人通信方式的百年变迁》
《IM开发者的零基础通信技术入门(四):手机的演进,史上最全移动终端发展史》
《IM开发者的零基础通信技术入门(五):1G到5G,30年移动通信技术演进史》
《IM开发者的零基础通信技术入门(六):移动终端的接头人——“基站”技术》
《IM开发者的零基础通信技术入门(七):移动终端的千里马——“电磁波”》
《IM开发者的零基础通信技术入门(八):零基础,史上最强“天线”原理扫盲》
《IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”》
《IM开发者的零基础通信技术入门(十):零基础,史上最强5G技术扫盲》
《IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!》
《IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!》(* 本文)
《IM开发者的零基础通信技术入门(十三):手机信号差?一文即懂!》
《IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!》
《IM开发者的零基础通信技术入门(十五):理解定位技术,一篇就够》
(本文已同步发布于:http://www.52im.net/thread-2406-1-1.html)
作者:Jack Jiang (点击作者姓名进入Github)
出处:http://www.52im.net/space-uid-1.html
交流:欢迎加入即时通讯开发交流群 215477170
讨论:http://www.52im.net/
Jack Jiang同时是【原创Java
Swing外观工程BeautyEye】和【轻量级开源移动端即时通讯框架MobileIMSDK】的作者,可前往下载交流。
本博文
欢迎转载,转载请注明出处(也可前往 我的52im.net 找到我)。
im即时通讯开发如何理解定位技术
在开发IM、推送这类应用系统时,尤其在移动网络下,各种弱网问题,让人非常痛苦。
典型的弱网问题,比如:
1)频繁掉线;
2)丢包严重;
3)网络抖动;
4)网络延迟;
........
那么,针对以上现象,怎么才能有底气的跟老板、客户、产品经理地解释以下问题?
1)导致这些现象的根本原因到底是什么?
2)怎么跟老板解释,要搞定在高铁上用好音视频聊天功能很困难?
3)怎么跟客户解释P2P在3G、4G甚至5G网络下的成功率问题?
4)怎么向客户说明,商场或人多场合下,明明信号很好,但你的APP确用不了?
网上能找到的通信技术资料都太过专业或太不专业,要么都是搞网络工程方面的内行人编写的(内容专业但很枯燥难懂),要么就是外行的IT开发人员写的(很少见,且价值不大,因为不够专业,所以内容并不准确,参考价值很有限)。
既能让外行的普通程序员看懂,还能准确地讲明白通信技术知识,这样的资料简直比找金矿还难。因为普通程序员能接触到的网络编程、网络通信方面的资料多针对数据通信的逻辑层(比如:tcpip、socket等知识范畴),而通信技术涉及的是数据通信的物理层(交换机、路由器、天线、网络制式等),某种意义上来说,这是完全不同的技术方向。
好消息是,经过长时间的资料搜集,终于有了本系列文章,希望能给你带来帮助。
对于IM开发者来说,用户的地理位置、附近的人这类功能,都需要用到手机的定位技术。不过,当用户、产品经理、测试人员使用这类功能,有某些情况下定位不出结果或者定位不准时,这锅是要程序员来背吗?显然不是。
那么,定位技术到底是怎么实现的?技术原理怎样?有哪些局限性?貌似我们平时也没有做更多了解,既然这样,那就跟着本文来一窥究竟吧。
定位技术,应用广泛
今天我们所处的移动互联网时代,手机成了每个人的生活标配。这些手机里,安装了形形色色的APP,提供了各种服务,彻底改变了我们的生活。
这些服务里面,就包括我们今天的主角——定位。
每一个人,每一件物品,在这个地球上都有一个空间位置信息,这就是定位。它非常重要,我们靠它来找到这个人或这件物。
自从有人类文明开始,地图就被发明出来,用于标示位置信息。但是,因为技术手段的落后,人们只能通过参照物来“佛系”定位。
那么,大家平时使用手机定位服务的时候,有没有想过这些问题:
1)手机到底如何实现定位的?工作原理是什么?
2)大家都知道卫星定位,那么,是不是只有卫星这一种定位方式?
3)为什么有时候我们没有打开手机的卫星定位开关,仍然能够进行定位?
4)如果我们在室内,没有卫星信号覆盖,是不是就彻底不能定位了?
5)…
卫星定位技术
定位,我们通常按使用场景,分为室内定位和室外定位。
我们先来说说用得最多的室外定位。目前最主流的室外定位方式,刚才我们已经提到了,就是卫星定位。即时通讯聊天软件app开发可以加蔚可云咨询
卫星定位:是利用人造地球卫星进行点位测量的技术,也是目前使用最为广泛、最受用户欢迎的定位技术。它的特点非常突出,就是精度高、速度快、使用成本低。
但是,目前世界上只有少数国家,具备建设和维护卫星定位系统的能力。
大家所熟知的,包括:美国的GPS,中国的北斗(BDS)、欧洲的伽利略(Galileo)、俄罗斯的格洛纳斯(GLONASS)。此外,还有日本的准天顶系统(QZSS)和印度的IRNSS。
我们就拿使用最为广泛的美国GPS系统来说吧。GPS,英文全名是Global Positioning System,全球定位系统。
它起始于1958年美国军方的一个项目,1964年投入使用,1994年彻底布设完成。
GPS系统的主要建设目的,是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报搜集、核爆监测和应急通讯等一些军事目的。
该系统由24颗卫星构成,其中21颗为工作卫星,还有3颗是在轨备用卫星。它们共同组成了GPS卫星星座。
基站定位技术
好了,说完了卫星定位,再来看看地面定位。说到地面定位,大家首先想到了什么?哈哈,是不是雷达?
确实,雷达作为一项搜索定位技术,广泛应用于军事和民用领域。但是,毕竟普通手机数量非常庞大,加之生活场所障碍物非常复杂,不管从技术角度,还是成本角度,都不适合采用雷达进行定位。
那我们采用什么方式呢?其实可以用的方法很多,最常用的,是基站定位,也就是常说的LBS,Location Based Service(基于位置服务)。
基站定位的原理和雷达有相似之处。雷达定位大家都知道,就是发射雷达波,根据目标的反射,进行空间位置测算。
基站定位的话,基站就相当于是一个“雷达”。
通常,在城市中,一部手机会在多个基站的信号覆盖之下。手机会对不同基站的下行导频信号进行“测量”,得到各个基站的信号TOA(到达时刻)或TDOA(到达时间差)。根据这个测量结果,结合基站的坐标,就能够计算出手机的坐标值。
以上是关于IM开发者的零基础通信技术入门:上网卡顿?网络掉线?一文即懂!的主要内容,如果未能解决你的问题,请参考以下文章
IM开发者的零基础通信技术入门:为什么WiFi信号差?一文即懂!
IM开发者的零基础通信技术入门:零基础,史上最强5G技术扫盲