IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)

352 阅读17分钟
原文链接: www.52im.net

【来源申明】本文原文来自:微信公众号“鲜枣课堂”,官方网站:xzclass.com,原题为:《通信交换的百年沧桑(上)》,本文引用时已征得原作者同意。为了更好的内容呈现,即时通讯网在收录时内容有稍许调整,转载时请注明原文来源信息,请尊重原作者的劳动。


1、系列文章引言


1.1适合谁来阅读?


本系列文章尽量使用最浅显易懂的文字、图片来组织内容, 力求通信技术零基础的人群也能看懂。但 个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获。如果您大学学习过《计算机网络》这门课,那么一定不要错过本系列文章。

特别推荐即时通讯开发者来阅读,因为针对移动弱网的问题,确实可以找到很多有价值的答案。

友情提示:本系列文章可能涉及以下通信技术范畴,如您有兴趣,也可自行系统地学习:
IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_1.gif

1.2本系列文章的初衷


作为即时通讯( IM、消息推送等应用场景)相关技术的开发者人员来说,似乎了解跨专业的通信技术( 这是大学通信工程专业类学生的学习内容),有点过于深入和底层了,因为一般来说熟练掌握逻辑层的TCP\IP相关协议、网络编程相关的应用技术就差不多能胜任这方面的本职工作了。

没错,确实是这样。但在开发IM、推送这类应用系统时,尤其在移动网络下,各种弱网问题,让人非常痛苦。

典型的弱网问题,比如:

  • 1)频繁掉线;
  • 2)丢包严重;
  • 3)网络抖动;
  • 4)网络延迟;
  • ........

那么,针对以上现象,怎么才能有底气的跟老板、客户、产品经理地解释以下问题?

  • 1)导致这些现象的根本原因到底是什么?
  • 2)怎么跟老板解释,要搞定在高铁上用好音视频聊天功能很困难?
  • 3)怎么跟客户解释P2P在3G、4G甚至5G网络下的成功率问题?
  • 4)怎么向客户说明,商场或人多场合下,明明信号很好,但你的APP确用不了?
  • .......

你说这些都是网络问题,APP代码无能为力。那么,你倒是讲讲到底是什么样的网络问题?能把人讲信服了,就可以甩锅给网络,不然只能是APP代码背锅了。现实吧!

所以,我们还是老老实实花点功夫来研究研究通信技术吧( 通信技术直面的是网络通信物理层),至少遇到问题,不说给别人,至少给自已找到一个说的过去的解释。这才是一个优秀程序员的修养!

1.3本系列文章的价值


网上能找到的通信技术资料都太过专业或太不专业,要么都是搞网络工程方面的内行人编写的( 内容专业但很枯燥难懂),要么就是外行的IT开发人员写的( 很少见,且价值不大,因为不够专业,所以内容并不准确,参考价值很有限)。

既能让外行的普通程序员看懂,还能准确地讲明白通信技术知识,这样的资料简直比找金矿还难。因为普通程序员能接触到的网络编程、网络通信方面的资料多针对数据通信的逻辑层( 比如:tcpip、socket等知识范畴),而通信技术涉及的是数据通信的物理层( 交换机、路由器、天线、网络制式等),某种意义上来说,这是完全不同的技术方向。

好消息是,经过长时间的资料搜集,终于有了本系列文章,希望能给你带来帮助。

1.4拓展阅读


即时通讯网之前已经整理过《移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”》、《移动端IM开发者必读(二):史上最全移动弱网络优化方法总结》、《现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障》这几篇初涉通信层的文章,但都因技术广度和深度有限,能带给读者的帮助比较局限。 如果您看过这几篇文章,那么一定不要错过本次的《IM开发者的零基础通信技术入门》系列文章。

另外, 如果您对最基本的程序员本该掌握的网络编程知识都还不怎么了解的话,建议首先阅读《网络编程懒人入门系列文章》、《脑残式网络编程入门系列》,以及更高深一点的《不为人知的网络编程系列文章》。

1.5番外:通信技术女神镇楼


IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_11.jpg
▲ 史上最高颜值科学杂志封面,人物为 “CDMA之母”——海蒂·拉玛 (一个被演艺事业耽误的科学女神)

2、本系列文章目录


IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)》( * 本文)
IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)
IM开发者的零基础通信技术入门(三):国人通信方式的百年变迁
IM开发者的零基础通信技术入门(四):手机的演进,史上最全移动终端发展史
IM开发者的零基础通信技术入门(五):1G到5G,30年移动通信技术演进史
IM开发者的零基础通信技术入门(六):移动终端的接头人——“基站”技术
IM开发者的零基础通信技术入门(七):移动终端的千里马——“电磁波”
IM开发者的零基础通信技术入门(八):零基础,史上最强“天线”原理扫盲
IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”
IM开发者的零基础通信技术入门(十):零基础,史上最强5G技术扫盲
IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!
IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!
IM开发者的零基础通信技术入门(十三):手机信号差?一文即懂!
IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
《IM开发者的零基础通信技术入门(十五):彻底读懂移动端的定位技术》

3、本文内容概述


本文(上下两篇)将带你了解当今通信交换技术最初的模样以及发展过程。学习技术更要了解技术的前世今生,技术本无聊,故事很有趣。

4、“电话”的出现


1876年2月,一位名叫亚历山大·贝尔的29岁年轻人,向美国专利局提交了一项发明专利申请并获得批准。这项专利,就是日后影响了整个人类社会进程的通信神器——电话。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_2.jpg
▲ 亚历山大·格拉汉姆·贝尔(Alexander Graham Bell)

在这之后的第二年,贝尔创办了贝尔电话公司(也就是美国AT&T公司和朗讯公司的前身,贝尔实验室的发起者),开始了电话的商业化运营。到了年底,用户数很快就达到了3000户。没过多久,贝尔又完成了波士顿和纽约之间的首次长途电话实验(相距300多公里),进一步刺激了电话的快速普及。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_3.jpg
▲ 当时的宣传海报

5、“交换机”的出现


随着电话数量和通话距离的迅速增加,人们发现,传统的电话连线方式存在很大的问题。当时的连线方式,是直连模式,也就是1对1模式。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_4.png
▲ 直连模式

这种模式,适用于最早期用户数量很少的情况。随着用户数增加,就会带来很高的成本。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_5.png
▲ 直连模式需要大量的电话线连接

如上图所示,当采用直连方式,连接N个电话,需要N*(N-1)/2条电话线例如,10000个电话,就需要49,995,000条电话线。

于是,人们开始引入了“交换(switch)”的概念。所谓“交换”,就是“进和出”。交换机,就是控制消息从哪里来,到哪里去。有了交换机之后,将大幅减少线缆和线杆成本,并且有利于管理和维护。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_6.png
▲ N个电话,只需要N条线

1878年,也就是电话发明两年后,世界上最早的电话交换机出现了。这种交换机,是由话务员进行人工操作的,所以称为“人工交换机”。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_7.jpg
▲ 话务员和人工交换机

人工交换机由用户线、用户塞孔、绳路(塞绳和插塞)和信号灯等设备组成。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_8.jpg

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_9.jpg

用户要打电话,先与话务员通话,告诉话务员要找谁,然后由话务员帮你接续。人工交换机,根据当时电话的分类,也分为两种:磁石式和共电式。最初的电话机,电能由自身提供,主要由送话器、受话器、手摇发电机、电铃、干电池等部件构成。因为手摇发电机上有两块永久磁铁,所以得名“磁石电话机”。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_10.jpg
▲ 早期的磁石电话机

1880年,出现了“共电式电话机”,通话双方可以共同使用电话局的电源。这项改进,使电话机的结构大大简化了,而且使用方便,拿起电话便可呼叫。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_11.jpg
▲ 共电电话机(摇把没了)

6、“步进制电话交换机”的出现


人工交换机的缺点是显而易见的:容量很小,需要占用大量人力,工作繁重,效率低下,而且容易出错。1891年,有一个名叫史端乔的殡仪馆老板,就吃了人工交换机的大亏。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_12.jpg
▲ A.B.史端乔(Almon Brown Strowger)

他发现,打到自己店里的生意电话,总会被话务员转接到另一家殡仪馆。后来才知道,原来当地话务员是那家殡仪馆老板的堂弟。于是,他很生气,发誓一定要发明一个不需要人工操作的交换机。结果,他还真的做到了。他在自己的车库里,制作了世界上第一台步进制电话交换机。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_13.jpg
▲ 为了纪念他,这种交换机也被称为“史端乔交换机”

这种交换机,由预选器、选组器和终接器等部件组成,以机械动作代替话务员的人工动作。当用户拨号时,选择器随着拨号发出的脉冲电流,一步一步地改变接续位置,从而将主叫和被叫用户间的电话线路自动接通。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_14.jpg
▲ 步进制交换机工作原理图

话说,史端乔确实是一个发明天才,除了步进制交换机之外,大家经常在电视上看到的旋转式拨号盘,也是他发明的。有人还专门给他建了一个网站,以示纪念(网址就是他的名字:www.almonbrownstrowger.com)。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_15.jpg
▲ 旋转式拨号盘

1892年,第一个“史端乔步进制电话局”在美国投入使用。后来,在史端乔步进制交换机的基础上,又出现了旋转式和升降式的交换机。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_16.jpg

1909年,德国西门子公司对史端乔步进制电话交换机进行了改进,主要是将三磁铁上升旋转型选择器改为二磁铁的选择器,制成西门子步进制电话交换机。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_17.jpg
▲ 1929年在澳门安装使用的西门子F1步进制电话交换机

7、“机电制自动电话交换机”的出现


步进制交换机虽然实现了替代人工,但是仍然存在很多缺点,例如接点是滑动式的,可靠性差,易损坏,动作慢,结构复杂,体积大等。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_18.jpg
▲ 日本富士通信机制造株式会社生产的A29步进制交换机(1940年)

于是,工程师们继续寻求更好的解决方案。1919年,瑞典工程师贝塔兰德和帕尔姆格伦共同发明了一种“纵横接线器”的新型选择器,并为之申请了专利。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_19.jpg
▲ 纵横制接线器

这种接线器,将过去的滑动式改成了点触式,从而减少了磨损,提高了使用寿命。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_20.jpg
▲ 纵横连接器交叉点示意图

在“纵横连接器”的基础上,1926年,世界上第一个大型纵横制自动电话交换机在瑞典松兹瓦尔市投入使用。到了1938年,美国开通了1号纵横制自动电话交换系统。紧接着,法国、日本等国家也相继生产和使用该类系统。从此,人类正式进入纵横制交换机的时代。到20世纪50年代,纵横制交换系统已经非常成熟和完善。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_21.jpg
▲ 纵横制交换机

“纵横制”和“步进制”,都是利用电磁机械动作接线的,所以它们同属于“机电制自动电话交换机”。

8、“程控交换机”的出现


就在纵横制不断完善的同时,随着晶体管的发明,半导体技术和电子技术飞速发展,人们开始考虑,在电话交换机中引入电子技术。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_22.jpg
▲ 世界上第一个晶体管

由于当时电子元件的性能还无法满足要求,所以出现了电子和传统机械结合的交换机技术,被称为“半电子交换机”、“准电子交换机”。后来,微电子技术和数字电路技术进一步发展成熟,终于有了“全电子交换机”。1965年,美国贝尔成功生产了世界上第一台商用存储程式控制交换机(也就是“程控交换机”),型号为No.1 ESS(Electronic Switching System)。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_23.jpg
▲ No.1 ESS程控交换机

1970年,法国在拉尼翁开通了世界上第一个程控数字交换系统E10,标志着人类开始了数字交换的新时期。程控交换机的实质,就是电子计算机控制的交换机。

IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)_24.png
▲ NEC程控交换机

它以预先编好的程序来控制交换机的接续动作,优点非常明显:接续速度快、功能多、效率高、声音清晰、质量可靠,其容量可大至万门。

注:这里所说的“门”,是交换机容量的一种单位,可以简单理解为最大支持的接续电话数量。如此巨大的容量,意味着占地面积更小。程控交换机的机架数仅为纵横制的1/10,而且每个机架的重量减轻一半多,非常有利于安装和维护。

(——本篇未完,下篇《 IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)》再续——)

附录:更多网络编程知识干货


计算机网络通讯协议关系图(中文珍藏版)[附件下载]
TCP/IP详解 - 第11章·UDP:用户数据报协议
TCP/IP详解 - 第17章·TCP:传输控制协议
TCP/IP详解 - 第18章·TCP连接的建立与终止
TCP/IP详解 - 第21章·TCP的超时与重传
技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)
通俗易懂-深入理解TCP协议(上):理论基础
通俗易懂-深入理解TCP协议(下):RTT、滑动窗口、拥塞处理
理论经典:TCP协议的3次握手与4次挥手过程详解
理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程
计算机网络通讯协议关系图(中文珍藏版)
UDP中一个包的大小最大能多大?
P2P技术详解(一):NAT详解——详细原理、P2P简介
P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解
P2P技术详解(三):P2P技术之STUN、TURN、ICE详解
通俗易懂:快速理解P2P技术中的NAT穿透原理
高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少
高性能网络编程(二):上一个10年,著名的C10K并发连接问题
高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了
高性能网络编程(四):从C10K到C10M高性能网络应用的理论探索
高性能网络编程(五):一文读懂高性能网络编程中的I/O模型
高性能网络编程(六):一文读懂高性能网络编程中的线程模型
不为人知的网络编程(一):浅析TCP协议中的疑难杂症(上篇)
不为人知的网络编程(二):浅析TCP协议中的疑难杂症(下篇)
不为人知的网络编程(三):关闭TCP连接时为什么会TIME_WAIT、CLOSE_WAIT
不为人知的网络编程(四):深入研究分析TCP的异常关闭
不为人知的网络编程(五):UDP的连接性和负载均衡
不为人知的网络编程(六):深入地理解UDP协议并用好它
不为人知的网络编程(七):如何让不可靠的UDP变的可靠?
网络编程懒人入门(一):快速理解网络通信协议(上篇)
网络编程懒人入门(二):快速理解网络通信协议(下篇)
网络编程懒人入门(三):快速理解TCP协议一篇就够
网络编程懒人入门(四):快速理解TCP和UDP的差异
网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势
网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门
网络编程懒人入门(七):深入浅出,全面理解HTTP协议
网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解
让互联网更快:新一代QUIC协议在腾讯的技术实践分享
现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障
聊聊iOS中网络编程长连接的那些事
移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”
移动端IM开发者必读(二):史上最全移动弱网络优化方法总结
IPv6技术详解:基本概念、应用现状、技术实践(上篇)
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
脑残式网络编程入门(三):HTTP协议必知必会的一些知识
脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?
以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
迈向高阶:优秀Android程序员必知必会的网络基础
全面了解移动端DNS域名劫持等杂症:技术原理、问题根源、解决方案等
美图App的移动端DNS优化实践:HTTPS请求耗时减小近半
Android程序员必知必会的网络通信传输层协议——UDP和TCP
>> 更多同类文章 ……