5G时代已经到来,TCP/IP老矣,尚能饭否?

一、引言

哈罗,你们好,我是Jack Jiang。。。(一股浓浓的自媒体视频旁白味道)。php

对于常常看我文章的即时通信开发者来讲,今天要讨论的这个话题,貌似有点不着边际。html

是的,自从我整理完《IM开发者的零基础通讯技术入门》系列文章以后,对于网络编程的理解,开始有点飘了。程序员

言归正传。如今,5G技术离咱们的生活愈来愈近了,号称网络延迟1ms、下行速度10Gb/s的5G,在这样逆天的网络性能指标下,老骥伏枥的TCP/IP是否仍能Hold的住?带着这个思考,便有了本文的内容。编程

▲ 5G网速有多快?看图感觉一下(图自《 零基础,史上最强5G技术扫盲》)

本文已同时发布于个人“即时通信技术圈”公众号。安全

二、学好TCP/IP够用吗?

对于即时通信技术的开发者,从技术栈来讲,一条最普通的聊天消息的送达,确定要涉及到网络编程技术,而网络编程最核心的也就是TCP/IP协议(准确的说是TCP/IP协议簇,见《TCP/IP详解》),毫无疑问深刻的学习TCP/IP协议确定是很是有必要了。网络

基本上,对于普通的IM或消息推送系统开发来讲,对TCP/IP相关的计算机网络基础比较熟悉的话,彻底够用了。数据结构

▲ 这本书不少人都读过tcp

三、移动网络问题,只能赖我代码烂?

亲手写过即时通信的网络通讯层的同窗都很清楚,在移动网络中(我说的移动网络具体指的是运营商的2g/3g/4g/5g这些),由于无线通讯的介质和技术实现特殊性,出现了不少传统有线互联网未曾有过的网络通讯问题。分布式

就拿IM在移动弱网中出现的各类问题来讲,多数开发者都不自信的认为这应该是自已的网络层代码写的不够优秀,是的,不少时候也确实是这样。性能

其实,不多有人会去思考,在TCP/IP协议被发明出来的50年后,对于现代的移动网络来讲,是否仍然能工做的好?以弱网问题为例,难道我写的IM老是丢消息、掉线就仅仅是“我”的代码太烂? 

没错,这不只仅是应用层的代码编写问题,它或许涉及到TCP/IP的设计局限,甚至移动网络的底层设计也并非最完美的。

下面这两篇文章,对于弱网问题思考,已经深刻到运营商的通讯技术这一层,强烈建议读一读:

移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”

移动端IM开发者必读(二):史上最全移动弱网络优化方法总结

四、简单复习一下TCP/IP

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。

然而在不少状况下,它只是利用 IP 进行通讯时所必须用到的协议簇的统称。

具体来讲,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,所以,有时也称 TCP/IP 为网际协议簇。

互联网进行通讯时,须要相应的网络协议,TCP/IP 本来就是为使用互联网而开发制定的协议簇。所以,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。 

▲ 上图反映了TCP/IP协议族的关系(图片引用自《计算机网络通信协议关系图》)

五、TCP/IP或许太老了

对于现代移动网络来讲,TCP/IP或许太老了。咱们简单了解一下TCP/IP协议的产生过程。

1973年:卡恩与瑟夫开发出了TCP/IP协议中最核心的两个协议:TCP协议和IP协议。

1974年:卡恩与瑟夫正式发表了TCP/IP协议并对其进行了详细的说明。同时,为了验证TCP/IP协议的可用性,使一个数据包由一端发出,在通过近10万km的旅程后到达服务端。在此次传输中,数据包没有丢失一个字节,这充分说明了TCP/IP协议的成功。

1983年:TCP/IP协议正式替代NCP,今后之后TCP/IP成为大部分因特网共同遵照的一种网络规则。

1984年:TCP/IP协议获得美国国防部的确定,成为多数计算机共同遵照的一个标准。 

是的,你没有看错,TCP/IP协议设计于距今50年前!

▲ 罗伯特·卡恩(左者)与文特·瑟夫(右者)(图片引用自《技术往事:改变世界的TCP/IP协议》)

六、TCP/IP本来是为固定网络设计的

虽然TCP/IP自上世纪70年代发明以来,链接了无数的计算机,推进了互联网的蓬勃发展。

但不可回避的现实是,基于TCP/IP的互联网,它的初衷是为固定网络和网络互连而设计,而今天咱们已经发展到了移动互联时代。

再日后看,将来5G将面临AR/VR、超高清视频、物联网、车联网等各类应用、用例纷呈,加之网络安全的紧迫性愈加凸显,TCP/IP或许难以适应将来。

七、TCP/IP或许并不适合移动网络

7.1 TCP/IP设计之初没法预见高速移动网时代

在TCP/IP刚被设计的年代,即传统固定互联网的公元元年,主机是固定的,用于编址的IP也是固定的,世界是平的。

但是随着应用程序以及芯片技术的活力涌现,设备愈来愈小,App愈来愈丰富,当你以为浑身憋得慌的时候,移动互联网时代来了。

但传统的TCP/IP并不适合移动网络,以TCP/IP协议簇中咱们最经常使用的TCP协议来讲,传统的TCP基于TCP/IP协议头字段的五元组,而标识设备的IP地址仅仅标识了设备位置,并无标识设备自己(实际上无论到了什么年代,IP地址都不该该标识设备自己,它就是标识位置的!问题是,TCP不该该用一个标识位置的元素来标识设备)。

而对于移动互联网来讲,一旦移动设备(好比智能手机)换了位置(通讯基站切换了),其IP地址也会改变,进而既有的TCP链接将所有中断。

 

▲ 运营商的基站是有覆盖范围的,并且覆盖范围并不大

对于底层的移动网络通讯技术有所了解的开发人员或许知道,手机的通讯是由基站进行代理的,而基站是固定的。换句话说,当你移动到下一个基站的位置时,手机就得自动切换到新的基站,进而从新进行一系列的跟运营商的无线体系进行链接创建的过程。

这在平常生活中使用并无什么问题,但在时速达到350千米每小时的复兴号高铁上用手机上网时,这就会致使严重的问题。由于基站的信号覆盖范围有限,在手机移动速度如此之快的状况下,基站的切换也将频繁到让网络工程师们崩溃(有兴趣能够读一下《IM开发者的零基础通讯技术入门(十四):高铁上无线上网有多难?一文即懂!》)。

TCP/IP和网络的关系,能够做个有趣的类比。

假设互联网是公路,那么TCP/IP这就是这条公路上的一套交通规则。这套规则在制定时,可能考虑到的只是普通的市场内道路(最可能是高速公路使用),而如今的5G时代,就比如时速350千米的高速铁路,试想普通的市内交通规则套用在高速铁路上,那难道不算是灾难吗。

必竟普通的市内交通速度不会很快,各类规则的制定偏差和余量能够比较大,但高速铁路上,速度飞快、交通讯号控制精确无比的状况下,这套规则,对于开高铁的司机来讲,确定是胆颤心惊。而TCP/IP对于5G来讲,就比如这套老的交通规则,用它来驾驭这么快速的5G快车,是否是很疯狂?

 

7.2 TCP/IP与电信网的基因不一样

基于TCP/IP的互联网本来是为固定网络和网络互联设计,而运营商的移动网络是为移动性链接而生。互联网的链接是分布式的,而移动通讯网络是集中控制的。

这二者的技术基因确实有很大不一样,在早期移动网络网络性能较慢的状况下,这二者的结合,矛盾彷佛并不突出。

实际上,在传统电信网(就是你们最经常使用的电话、短信网络)与IT互联网是两拨人各自有玩耍(电信网为表明的就是3GPP标准化组织,互联网为表明的就是IETF标准化组织)。

在那个移动网还不发达的年代,这两拨人各自玩各自的,你们谁也不用鸟谁。

随着人们对移动上网需求愈来愈旺盛,搞电信网的这拨人只能想办法接入传统的互联网,必竟在当时传统互联网太强势,而移动网的应用场景还在摸索阶段,为了能快速解决移动上网的问题,与是也很差麻烦IETF这拨人,全部痛苦默默承受——虽然TCP/IP在移动网上的实施并不合适,但只能想办法缝缝补补,把移动网的标准制定,往它上面靠。

这就比如,TCP/IP这辆车已经造好了,至于你搞移动网的人,是修一条普通马路(2G)、仍是一条高速公司路(3G)、或者是如今的高速铁路(5G),反正你只能将就这辆车。本来应该是什么路上跑什么车,而如今是无论你什么路,只能跑这辆车。反正车子跑很差,不怪车子,怪路。。

好奇葩的逻辑,而这个逻辑就比如是如今的TCP/IP跟移动网的关系。

因此,在5G,甚至将来的6G、7G时代,这种“勉强”的结合,抛必带来网络低效、基础设施成本高昂等问题。

八、移动运营商们已经意识到问题

是的,大佬们已经意识到了问题的严重性,正在着手解决。

2020年4月初,欧洲电信标准协会(ETSI)已成立了一个新的行业规范工做组“Non-IP Networking”(ISG NIN),以解决新服务、尤为是5G服务面临的老式网络协议所存在的问题。

▲ 详细新闻内容《 点此查看
 

该工做组的目标是为5G网络研究开发新的网络协议,以替代TCP/IP。

是的,这些移动运营商已经发如今4G、甚至5G网络中使用的基于TCP/IP的技术存在一些问题。

因为TCP/IP协议最初是为互联网设计,而非为移动通讯网络而生,当移动通讯网络引入TCP/IP后,增长了移动性、安全性、QoS等功能,这使得网络更复杂,频谱使用效率较低。为了解决这些问题,后续的修补和替代方案又致使了成本、时延和功耗增长。

大佬们终于认可,对于5G的某些高级服务,TCP/IP确实被认为不是最佳的。

九、移动网络将来会怎样?

虽然TCP/IP可能愈来愈难以适应移动网络的发展,但不能否认,短时间内TCP/IP的不可替代性。

必竟,基于TCP/IP的传统互联网所构建的软件和硬件世界(尤为是硬件)并非一朝一夕的事,而替换掉这些,不管是从成本仍是各方利益来讲,都是个须要反复权衡和博弈的事。

一个很好的例子是,IPv4和IPv6,虽然谁都知道IPv4的困境,但IPv6喊了这么多年目前想要普及,仍然还比较遥远,要知道IPv6已经喊了10年了。由于这小小的IP地址,牵涉的是互联网从硬到软几乎全部环节,影响之大,无出其右。

对于IM开发者来讲,由于移动网络的特殊性,而技术改朝换代也并不鲜见。

好比众所周之的XMPP协议,设计之初也是野心勃勃——“要让上IM就像打开网页同样简单!”。确实,XMPP不管是肉眼可读性,仍是数据结构的优雅,都很是优秀,但悲剧的是,设计者们历来没有想过移动网会发展成今天这样,或者说设计者们从未考虑过XMPP在移动网下的使用。因而,后面的故事,你们都很清楚——每一个人都在抱怨XMPP臃肿、冗余(是的,这里我收集了一大堆这样的文章),这算个是把优势作成缺点的典型案例了。

或许,将来会有那么一天,移动网络终有属于为自已定制的网络协议标准。而对于搞网络通讯的程序员来讲,若是这套新的标准让能基于移动网络的代码编写,变的愉快起来,那真是谢天谢地了!(本文已同步发布于:http://www.52im.net/thread-2976-1-1.html

十、参考资料

[1] TCP/IP 已完 ?New IP 以后,又来一个 Non-IP

[2] 5G:再见,TCP/IP

[3] 从新设计TCP/IP协议栈以支持设备移动性

[4] 5G要抛弃TCP/IP?

[5] ETSI LAUNCHES NEW GROUP ON NON-IP NETWORKING ADDRESSING 5G NEW SERVICES

[6] 零基础,史上最强5G技术扫盲

[7] 为何WiFi信号差?一文即懂!

[8] 上网卡顿?网络掉线?一文即懂!

[9] IM开发者的零基础通讯技术入门(十三):为何手机信号差?一文即懂!

[10] 高铁上无线上网有多难?一文即懂!

相关文章
相关标签/搜索