1.介绍

 

对于经常阅读我的文章的即时消息开发人员来说,今天要讨论的话题似乎有点无关紧要。

 

 是的,自从我整理了一系列的文章“即时消息开发人员零基通信技术简介”之后,我对网络编程的理解开始变得模糊。

 

 让我们回到正题。现在,5G技术越来越接近我们的生活。它被称为5G,网络延迟为1毫秒,下行速度为10 GB/s。在如此糟糕的网络性能指标下,旧的传输控制协议/协议还能保持吗?有了这个想法,就有了这篇文章的内容。

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_211202p6s6fm16k6qwwvyd.jpg

 ▲5G网络速度有多快?看着图片感受它(来自“零基础,历史上最强的5G技术素养”的图片)

 

 本文已在“即时通讯技术圈”公开发表,欢迎关注:

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_ 52 im _ QR _ instant messaging technology circle _ 400 px . png

 ▲本文关于公开号码的链接是:https://mp.weixin.qq.com/s/kOCyzhxyFyo4tja21JpRlA

 2.学好TCP/IP就足够了吗?

 

 对于即时通讯技术的开发者来说,从技术层面来说,最常见的聊天信息的传递必须涉及网络编程技术,而网络编程的核心是TCP/IP协议(确切地说,是TCP/IP协议簇,详见TCP/IP)。毫无疑问,有必要对TCP/IP协议进行深入研究。

 

 基本上,对于普通的即时消息或消息推送系统的开发,熟悉与TCP/IP相关的计算机网络基础就足够了。

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_tcpip_cover_opti.png

 ▲很多人都读过这本书

 3.移动网络问题只能取决于我的坏代码?

 

 写了即时通信网络通信层的学生非常清楚,在移动网络(我具体指的是2g/3g/4g/5g的运营商)中,由于无线通信媒体和技术实现的特殊性,存在许多传统有线互联网从未有过的网络通信问题。

 

 以移动脆弱网络中的各种即时消息问题为例,大多数开发人员并不确信他们自己的网络层代码写得不好,是的,在许多情况下确实如此。

 

 我收集了以下讨论过的材料。如果你感兴趣,你可以阅读它们:

 

 现代移动网络短连接优化方法综述:请求速度、弱网络适应和安全保障

 “百度APP移动网络深度优化实践分享(3):移动弱网络优化”

 微信移动应对网络弱势的探索与实践

 移动弱网络环境下YY直播深度优化实践共享(视频+PPT)[附件下载]

 

 事实上,很少有人会想到,在现代移动网络发明50年后,TCP/IP协议是否仍能很好地工作。以薄弱的网络问题为例,是不是因为我的即时消息总是丢失消息和断开连接,我的代码太糟糕了?

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_timg.jpg

 

 没错,这不仅仅是应用层代码编写的问题,它可能涉及到TCP/IP的设计限制,甚至移动网络的底层设计也不完美。

 

 以下两篇关于弱网络问题的文章已经深入到运营商的通信技术中,强烈建议阅读它们:

 

 “移动即时消息开发人员必须阅读(1):易于理解,理解移动网络的“弱”和“慢”

 移动即时消息开发者必须阅读(2):历史上最全面的移动弱网络优化方法总结

 

 如果您的认知已经开始对底层网络通信技术感到困惑,那么下面的文章适合您:

 

 即时通讯开发者零基通信技术介绍(六):“基站”技术作为移动终端的连接器

 即时通讯开发者零基通信技术介绍(七):移动终端的最大化——“电磁波”

 即时消息开发者零基通信技术介绍(8):零基,历史上最强的“天线”原则素养

 即时消息开发者零基通信技术介绍(九):“核心网”,无线通信网络的中心

 即时通讯开发者零基通讯技术介绍(10):零基,历史上最强的5G技术素养

 即时通讯开发者零基通信技术介绍(XI):为什么无线信号不好?一句话就明白了!》

 即时消息开发者零基通信技术介绍(12):互联网接入?网络中断了吗?一句话就明白了!》

 即时通讯开发者零基通信技术介绍(十三):为什么手机信号不好?一句话就明白了!》

 即时通讯开发者零基通信技术介绍(14):在高速铁路上无线上网有多难?一句话就明白了!》

 

 4.简要回顾协议/协议

 

 从字面上看,有些人可能认为TCP/IP指的是TCP和IP。在现实生活中,有时它真的指这两种协议。

 

 但是,在许多情况下,它只是协议套件的通用名称,在使用IP进行通信时必须使用。

 

 具体来说,网际协议或网际协议协议、网际协议或网际协议协议、网际协议或网际协议协议、网际协议或网际协议协议以及网际协议协议都属于网际协议/网际协议协议。它们与TCP或IP密切相关,是互联网不可或缺的一部分。网络协议通常指的是这些协议,因此,网络协议有时被称为互联网协议套件。

 

 在互联网上通信时,需要相应的网络协议。TCP/IP最初是为使用互联网而开发的协议套件。因此,互联网协议是TCP/IP,而TCP/IP是互联网协议。

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_3.jpg

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

 5.协议/协议可能太旧

 

 对于现代移动网络来说,TCP/IP可能太旧了。让我们简单了解一下TCP/IP协议的生成过程。

 

 1973年,卡恩和约瑟夫开发了两个核心的协议:TCP和IP。

 

 1974年:卡恩和约瑟夫正式公布了TCP/IP协议并详细解释了它。同时,为了验证TCP/IP协议的可用性,数据包从一端发送,经过近100,000公里的路程到达服务器。在这次传输中,数据包没有丢失一个字节,这充分证明了TCP/IP协议的成功。

 

 1983年,TCP/IP协议正式取代了网络控制协议,从那时起,TCP/IP已经成为大多数互联网的一种通用网络规则。

 

 1984年:TCP/IP协议被美国国防部确认,并成为大多数计算机的通用标准。

 

 是的,你没有弄错。协议是50年前设计的!

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_2.jpg

 ▲罗伯特·卡恩(左)和温特·约瑟夫(右)(图片引自“技术的过去:TCP/IP协议改变世界”)

 6.TCP/IP最初是为固定网络设计的

 

 虽然TCP/IP自20世纪70年代就被发明了,但它连接了无数台计算机,促进了互联网的蓬勃发展。

 

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

 

 回顾过去,在未来,5G将面临各种应用和使用情形,如增强现实/虚拟现实、超高清视频、物联网、汽车联网等。此外,网络安全的紧迫性日益突出,而TCP/IP可能难以适应未来。

 7.网际协议可能不适合移动网络

 

 7.1在TCP/IP设计之初,高速移动网络的时代是无法预见的

 

 在TCP/IP刚刚设计出来的时代,也就是传统固定互联网的第一年,主机是固定的,用于寻址的IP也是固定的,世界是平的。

 

 然而,随着应用和芯片技术的蓬勃发展,设备越来越小,应用也越来越丰富。当你感到不知所措时,移动互联网时代已经到来。

 

 然而,传统的TCP/IP协议不适用于移动网络。对于TCP/IP协议套件中最常用的TCP协议,传统的TCP协议是基于TCP/IP协议报头字段中的五元组,标识设备的IP地址只标识设备位置,而不标识设备本身(事实上,无论什么年代,IP地址都不应该标识设备本身,它就是位置!问题是,TCP不应该用标识位置的元素来标识设备。

 

 对于移动互联网,一旦移动设备(如智能手机)改变其位置(通信基站被切换),其IP地址也将改变,然后所有现有的TCP连接将被中断。

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_222748vr44irfyy8hv4fz4.jpg

 ▲运营商基站有覆盖,覆盖范围不大

 

 了解底层移动网络通信技术的开发人员可能知道,移动电话的通信是由固定的基站来代表的。换句话说,当您移动到下一个基站时,移动电话将自动切换到新的基站,然后再次与运营商的无线系统执行一系列连接建立过程。

 

 这在日常生活中不是问题,但在时速350公里的复兴高速铁路上用手机上网会导致严重的问题。因为基站的信号覆盖范围有限,当移动电话以如此快的速度移动时,基站的切换将如此频繁,以至于网络工程师会崩溃(如果你感兴趣,你可以阅读即时消息开发者的零基通信技术简介(XIV):在高速铁路上无线上网有多难?一句话就明白了!).

 

 TCP/IP和网络之间的关系可以做一个有趣的类比。

 

 假设互联网是一条高速公路,TCP/IP是这条高速公路上的一组交通规则。在制定这套规则时,可能只考虑市场上的普通道路(最多高速公路使用),但在当前的5G时代,它就像一条时速350公里的高速铁路。想象一下普通的城市交通规则被应用到高速铁路上,那不是一场灾难吗?

 

 普通城市的交通速度不会很快,制定各种规则的误差和余地会比较大。然而,在高速铁路上,当速度非常快并且交通信号控制非常精确时,这套规则对于驾驶高速铁路的司机来说肯定是可怕的。TCP/IP就像旧的5G流量规则一样。用它来控制如此快速的5G特快列车是不是很疯狂?

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_timg-(1)。使用jpeg文件交换格式存储的编码图像文件扩展名

 

 7.2TCP/IP不同于电信网络的基因

 

 基于TCP/IP的互联网最初是为固定网络和网络之间的互连而设计的,而运营商的移动网络则是为移动连接而诞生的。互联网连接是分布式的,而移动通信网络是集中控制的。

 

 两者的技术基因确实非常不同。在移动网络网络性能缓慢的早期,两者之间的矛盾似乎并不突出。

 

 实际上,在传统的电信网络(即最常用的电话和短信网络)和信息技术互联网中,两个人有他们自己的游戏(电信网络由3GPP标准化组织代表,互联网由IETF标准化组织代表)。

 

 在移动网络不发达的时代,这两个群体玩他们自己的游戏,每个人都不必鸟任何人。

 

 随着人们对移动互联网需求的不断增长,从事电信网络的人们只能找到接入传统互联网的方式,这在当时一定是太强大了,移动网络的应用场景还处于探索阶段。为了快速解决移动互联网的问题,困扰IETF的人是不好的,所有的痛苦都是默默承受的——虽然在移动网络上实施TCP/IP协议并不合适,但他们只能想办法制定移动网络的标准。

 

 就像,传输控制协议/IP已经建立。对于那些从事移动网络的人来说,你可以建造一条普通的道路(2G),一条高速的公司道路(3G),或目前的高速铁路(5G)。不管怎样,你只能靠这辆车过活。本来,你应该在什么路上跑什么车,但是现在不管你走什么路,你都只能跑这辆车。反正车跑不好,所以不要怪车,要怪路。。。

 

 奇妙的逻辑,就像TCP/IP和移动网络之间的关系。

 

 因此,在5G时代,甚至在未来的6G和7G时代,这种“不情愿”的结合将不可避免地带来诸如网络效率低和基础设施成本高的问题。

 8.移动运营商已经意识到了这个问题

 

 是的,老板们已经意识到问题的严重性,并正在努力解决它。

 

 2020年4月初,欧洲电信标准协会(ETSI)成立了一个新的行业标准工作组“非IP网络”(ISGNIN),以解决新服务(尤其是5G服务)面临的旧网络协议中存在的问题。

 

 5G时代已经到来,TCP/IP已经过时,你还能吃吗?_4.jpg

 ▲详细新闻内容“点击此处查看”

 

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

 

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

 

 由于TCP/IP协议最初是为互联网而设计的,而不是为移动通信网络而设计的,因此当TCP/IP协议引入移动通信网络时,增加了移动性、安全性、服务质量等功能,使得网络更加复杂,频谱利用率较低。为了解决这些问题,随后的修理和替换导致成本、延迟和功耗的增加。

 

 老大哥终于承认,对于一些5G的高级服务来说,传输控制协议/网际协议并不被认为是最好的。

 9.未来移动网络会发生什么?

 

 尽管TCP/IP可能越来越难以适应移动网络的发展,但不可否认的是,TCP/IP在短期内是不可替代的。

 

 毫无疑问,基于TCP/IP的传统互联网所构建的软件和硬件世界(尤其是硬件)不是一次性的事件,而是需要根据成本和各方利益反复权衡和发挥的事情。

 

 一个很好的例子是IPv4和IPv6。虽然每个人都知道IPv4的困境,但IPv6已经被人们呼唤了这么多年,现在它仍然很遥远。我们必须知道IPv6已经被使用了10年了。因为这个小小的IP地址几乎涉及到互联网的所有环节,从硬到软,并且有很大的影响力。

 

 对于即时消息开发者来说,由于移动网络的特殊性,技术改变王朝并不罕见。

 

 例如,著名的XMPP协议在设计之初也是雄心勃勃的——“让即时消息变得像打开网页一样简单!”。事实上,XMPP在数据结构的肉眼可读性和优雅性方面都非常优秀,但是不幸的是,设计者从来没有想到移动网络会发展到这种情况,或者说设计者从来没有考虑过在移动网络下使用XMPP。因此,下面的故事对每个人来说都很清楚——每个人都抱怨XMPP的臃肿和多余(是的,我在这里收集了很多这样的文章),这是一个典型的将优势转化为劣势的例子。

 

 也许,在未来的某一天,移动网络最终会属于为自己定制的网络协议标准。对于从事网络通信的程序员来说,如果这个新标准能让基于移动网络的代码编写变得更加愉快,那将是非常感激的!

 10.参考

 

 [1]传输控制协议/协议完成?继新知识产权之后,另一个非知识产权出现了

 [2] 5G:再见

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

 [4]5g会放弃TCP/IP吗?

 [5] ETSI推出新的非IP网络组,致力于5G新服务

 

 附录:网络编程的更多基本信息

 

 TCP/IP的详细说明-第11章UDP:用户数据报协议

 TCP/IP的详细说明-第17章TCP:传输控制协议

 TCP/IP的详细说明-第18章TCP连接的建立和终止

 TCP/IP的详细说明-第21章TCP的超时和重传

 技术过去:TCP/IP协议改变世界(珍贵的多画面,手机注意)

 易于理解——对TCP协议的深刻理解(一):理论基础

 易于理解——对TCP协议的深刻理解(ⅱ): RTT,滑动窗口,拥塞处理

 理论经典:三次握手和四波TCP协议详解

 理论与实践相结合:无线鲨鱼对TCP三握手四波的数据包捕获分析

 计算机网络通信协议图(中文版)

 UDP中数据包的最大大小是多少?》

 P2P技术的详细说明(一):网络地址转换的详细说明——P2P的详细原理和介绍

 P2P技术详解(二):P2P中的网络地址转换穿越(打洞)方案详解(基本原理)

 P2P技术详解(3):P2P中的网络地址转换穿越(打洞)方案详解(高级分析)

 P2P技术详细说明(4):P2P技术的STUN、TURN和ICE的详细说明

 易于理解:快速理解P2P技术中的NAT穿透原理

 高性能网络编程(一):一台服务器可以有多少个并发的TCP连接

 高性能网络编程(二):十年来著名的C10K并发连接问题

 高性能网络编程(3):在未来10年,是时候考虑C10M的并发问题了

 高性能网络编程(四):从C10K到C10M的高性能网络应用的理论探索

 高性能网络编程(5):读取高性能网络编程中的输入输出模型

 高性能网络编程(ⅵ):阅读高性能网络编程中的线程模型

 Java的BIO和NIO很难理解?练习用代码给你看,不明白我的职业变化!》

 未知网络编程(一):TCP协议中的疑难问题分析(上)

 未知网络编程(二):TCP协议中的疑难问题分析(下)

 未知的网络编程(3):为什么在关闭TCP连接时要等待时间和关闭等待时间

 未知网络编程(4):深入研究和分析TCP异常关机

 未知网络编程(5): UDP连接和负载平衡

 未知网络编程(ⅵ):深入理解UDP协议并充分利用它

 未知网络编程(七):如何使不可靠的UDP可靠?》

 未知网络编程(8):从数据传输层深度解密HTTP

 未知网络编程(九):理论联系实际,全方位理解域名系统

 惰性网络编程导论(一):网络通信协议的快速理解(上)

 惰性网络编程导论(二):网络通信协议的快速理解(下)

 网络编程中的懒人介绍(3):快速理解TCP协议就足够了

 网络编程中的懒人介绍(4):快速理解TCP和UDP的区别

 网络编程中的懒人入门(5):快速理解为什么UDP有时优于TCP

 网络编程中的懒人介绍(6):历史上最流行的集线器、交换机和路由器的功能原理介绍

 网络编程中的懒人介绍(7):用简单的方式理解HTTP协议

 网络编程中的懒人介绍(8):教你写基于TCP的套接字长连接。

 网络编程中的懒人介绍(9):通俗的解释,当你有IP地址的时候为什么要用MAC地址?》

 网络编程中的懒人入门(10):泡在尿里的时候,快速理解quic协议

 技术素养:新一代基于UDP的低延迟网络传输层协议

 让互联网更快:分享腾讯新一代QUIC协议的技术实践

 现代移动网络短连接优化方法综述:请求速度、弱网络适应和安全保障

 “谈谈网络编程在iOS中的长连接”

 “移动即时消息开发人员必须阅读(1):易于理解,理解移动网络的“弱”和“慢”

 移动即时消息开发者必须阅读(2):历史上最全面的移动弱网络优化方法总结

 IPv6技术详解:基本概念、应用现状和技术实践(上)

 IPv6技术详解:基本概念、应用现状和技术实践(下)

 理解HTTP协议从HTTP/0.9到HTTP/2的历史演变和设计思想;

 脑残网络编程导论(1):学习TCP三次握手和四波动画

 脑残网络编程导论(2):读写套接字时,我们在读什么和写什么?》

 脑残网络编程导论(3):对超文本传输协议的一些必要知识

 脑残网络编程导论(4):对HTTP/2服务器推送的快速理解

 脑残网络编程入门(5):每天使用的Ping命令是什么?》

 脑残网络编程导论(6):什么是公共知识产权和内部网知识产权?什么是自然语言转换?》

 脑残网络编程导论(七):历史上最流行的计算机网络分层。

 脑残网络编程导论(8):你真的知道127.0.0.1和0.0.0之间的区别吗?》

 以网络游戏服务器的网络接入层设计为例,了解实时通信的技术挑战

 更高层次:优秀安卓程序员必须了解的网络基础。

 全面了解移动域名系统域名劫持和其他各种疾病:技术原理、问题根源、解决方案等。

 “米托应用的移动域名系统优化实践:HTTPS请求时间减少了近一半”

 安卓程序员必须知道的网络通信传输层协议——UDP和TCP

 面向即时通信开发者的零基通信技术介绍(一):通信交换技术百年发展历程(一)

 面向即时消息开发者的零基通信技术介绍(二):通信交换技术百年发展历程(二)

 即时通讯开发者零基通讯技术介绍(三):中国通讯模式的百年变迁

 面向即时消息开发者的零基通信技术介绍(四):手机的演变,历史上最完整的移动终端发展历史

 面向即时通讯开发者的零基通信技术介绍(五):1G到5G,移动通信技术30年的演进历程

 即时通讯开发者零基通信技术介绍(六):“基站”技术作为移动终端的连接器

 即时通讯开发者零基通信技术介绍(七):移动终端的最大化——“电磁波”

 即时消息开发者零基通信技术介绍(8):零基,历史上最强的“天线”原则素养

 即时消息开发者零基通信技术介绍(九):“核心网”,无线通信网络的中心

 即时通讯开发者零基通讯技术介绍(10):零基,历史上最强的5G技术素养

 即时通讯开发者零基通信技术介绍(XI):为什么无线信号不好?一句话就明白了!》

 即时消息开发者零基通信技术介绍(12):互联网接入?网络中断了吗?一句话就明白了!》

 即时通讯开发者零基通信技术介绍(十三):为什么手机信号不好?一句话就明白了!》

 即时通讯开发者零基通信技术介绍(14):在高速铁路上无线上网有多难?一句话就明白了!》

 即时通讯开发者零基通讯技术介绍(十五):了解定位技术,一篇文章就足够了

 “百度应用移动网络深度优化实践分享(一):域名系统优化”

 “百度应用移动网络深度优化实践分享(二):网络连接优化”

 “百度APP移动网络深度优化实践分享(3):移动弱网络优化”

 《分享技术大牛陈硕:从浅入深,网络编程学习经验干货总结》

 可能会影响你的面试:你知道在一个TCP连接上可以发起多少个HTTP请求吗?》

 智虎技术共享:智虎1000万并发高性能长连接网关技术实践

 “5G时代已经到来,TCP/IP已经过时,你还能吃吗?》

 > >更多类似的文章...

 即时消息网络-即时消息开发者社区!来源:即时消息网络-即时消息开发者社区!

哇谷im_im即时通讯_私有云_公有云-哇谷云科技官网-JM沟通

IM下载体验 - 哇谷IM-企业云办公IM即时聊天社交系统-JM 沟通下载

IM功能与价格 - 哇谷IM-提供即时通讯IM开发-APP搭建私有化-公有云-私有化云-海外云搭建

新闻动态 - 哇谷IM-即时通讯热门动态博客聊天JM沟通APP

哇谷IM-JM沟通热门动态博客短视频娱乐生活

关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建

联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务

IM云系统即时通讯公有云、私有云、企业云、海外云-哇谷IM团队

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

im即时通讯社交软件APP红包技术分析(五):微信红包、聊呗红包、诚信红包、高并发技术

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?