本文已同时发布于我的“即时通讯技术圈”公众号。
1、引言
哈罗,大家好,我是Jack Jiang。。。(一股浓浓的自媒体视频旁白味道)。
对于经常看我文章的即时通讯开发者来说,今天要讨论的这个话题,貌似有点不着边际。
是的,自从我整理完《IM开发者的零基础通信技术入门》系列文章之后,对于网络编程的理解,开始有点飘了。
言归正传。现在,5G技术离我们的生活越来越近了,号称网络延迟1ms、下行速度10Gb/s的5G,在这样逆天的网络性能指标下,老骥伏枥的TCP/IP是否仍能Hold的住?带着这个思考,便有了本文的内容。
▲ 5G网速有多快?看图感受一下(图自《零基础,史上最强5G技术扫盲》)
(本文已同步发布于:http://www.52im.net/thread-2976-1-1.html)
2、学好TCP/IP够用吗?
对于即时通讯技术的开发者,从技术栈来说,一条最普通的聊天消息的送达,肯定要涉及到网络编程技术,而网络编程最核心的也就是TCP/IP协议(准确的说是TCP/IP协议簇,见《TCP/IP详解》),毫无疑问深入的学习TCP/IP协议肯定是非常有必要了。
基本上,对于普通的IM或消息推送系统开发来说,对TCP/IP相关的计算机网络基础比较熟悉的话,完全够用了。
▲ 这本书很多人都读过
3、移动网络问题,只能赖我代码烂?
亲手写过即时通讯的网络通信层的同学都很清楚,在移动网络中(我说的移动网络具体指的是运营商的2g/3g/4g/5g这些),因为无线通信的介质和技术实现特殊性,出现了很多传统有线互联网不曾有过的网络通信问题。
就拿IM在移动弱网中出现的各种问题来说,多数开发者都不自信的认为这应该是自已的网络层代码写的不够优秀,是的,很多时候也确实是这样。
我收集整理的下面这几篇资料,就讨论的是这些,有兴趣可以读一下:
《现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障》
《百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇》
其实,很少有人会去思考,在TCP/IP协议被发明出来的50年后,对于现代的移动网络来说,是否仍然能工作的好?以弱网问题为例,难道我写的IM总是丢消息、掉线就仅仅是“我”的代码太烂?
没错,这不仅仅是应用层的代码编写问题,它或许涉及到TCP/IP的设计局限,甚至移动网络的底层设计也并不是最完美的。
下面这两篇文章,对于弱网问题思考,已经深入到运营商的通信技术这一层,强烈建议读一读:
如果你的认知,已经开始对底层的网络通信技术有所困惑,下面这几篇就是为你准备的:
《IM开发者的零基础通信技术入门(六):移动终端的接头人——“基站”技术》
《IM开发者的零基础通信技术入门(七):移动终端的千里马——“电磁波”》
《IM开发者的零基础通信技术入门(八):零基础,史上最强“天线”原理扫盲》
《IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”》
《IM开发者的零基础通信技术入门(十):零基础,史上最强5G技术扫盲》
《IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!》
《IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!》
4、简单复习一下TCP/IP
从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。
然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议簇的统称。
具体来说,IP 或 ICMP、TCP 或 UDP、TE