其他
点击关注公众号,一周多次包邮送书来源:小白debug(ID:xiaobaidebug)作者:小白表面上我是个技术博主。但没想到今天成了个情感博主。我是没想到有一天,我会通过技术知识,来挽救粉丝即将破碎的感情。掏心窝子的说。这件事情多少是沾点功德无量了。事情是这样的。最近就有个读者加了我的绿皮聊天软件,女生,头像挺好看的,就在我以为她要我拉她进群发成人专升本广告的时候。画风突然不对劲。她说她男朋友也是个程序员,异地恋,也关注了我,天天研究什么TCP,UDP网络。一研究就是一晚上,一晚上都不回她消息的那种。话里有话,懂。不出意外的出了意外,她发出了灵魂拷问"你们程序员真的有那么忙吗?忙到连消息都不知道回。"没想到上来就是一记直拳。但是,这一拳,我接住了。我很想告诉她"分了吧,下一题"。但我不能。因为这样我就伤害了我的读者兄弟。沉默了一下。单核cpu都快转冒烟了,才颤颤巍巍在九宫格键盘上发出消息。再回慢一点,我就感觉,我要对不起我这全日制本科学历了。"其实,他已经回了你消息了,但你知道吗?网络是会丢包的。""我来帮他解释下,这个话题就要从数据包的发送流程聊起"数据包的发送流程首先,我们两个手机的绿皮聊天软件客户端,要通信,中间会通过它们家服务器。大概长这样。聊天软件三端通信但为了简化模型,我们把中间的服务器给省略掉,假设这是个端到端的通信。且为了保证消息的可靠性,我们盲猜它们之间用的是TCP协议进行通信。聊天软件两端通信为了发送数据包,两端首先会通过三次握手,建立TCP连接。一个数据包,从聊天框里发出,消息会从聊天软件所在的用户空间拷贝到内核空间的发送缓冲区(send