小科普|漫漫长路,聊天软件是这样让你与朋友沟通的!

文 / 头条号作者 Okay

PC互联网时代,你最常使用的软件一定是腾讯QQ,而到了移动互联网时代,大家使用最频繁的APP一定是微信。这是自然,不管何时何地,大家少不了的,或者说迫切需要的,一定是与朋友与他人聊天、沟通。

小科普|漫漫长路,聊天软件是这样让你与朋友沟通的!

小科普|漫漫长路,聊天软件是这样让你与朋友沟通的!

我们在感谢互联网给我们带来的方便的同时,其实也可以了解背后的某些道理。比如:即时通讯软件是怎样建立你和你朋友之间的关系的,又是怎样保证消息准确无误地传达的!

即时通讯(Instant Messenger,简称IM),它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。IM的出现和互联网有着密不可分的关系,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。最早出现即时通讯协议是IRC(Internet Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。

IM软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。而后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议。

QQ就是使用UDP协议进行发送和接收消息的。当你的机器安装了QQ以后,实际上,你既是服务端(Server),又是客户端(Client)。当你登录QQ时,你的QQ作为Client连接到腾讯公司的主服务器上,当你看谁在线时,你的QQ又一次作为Client从QQ Server上读取在线好友名单。当你和你的QQ好友进行聊天时,如果你和对方的连接比较稳定,你和他的聊天内容都是以UDP的形式,在计算机之间传送。如果你和对方的连接不是很稳定,QQ服务器将为你们的聊天内容进行中转。其他的即时通信软件原理与此大同小异。

下面便说一下IM软件进行消息通信的基本步骤:

首先,用户A输入自己的用户名和密码登录即时通讯服务器,服务器通过读取用户数据库来验证用户身份,如果用户名、密码都正确,就登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(Online Presence)。

其次,根据用户A存储在IM服务器上的好友列表(Buddy List),服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口(Port)号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。

第三步,即时通讯服务器把用户A存储在服务器上的好友列表及相关信息回送到他的PC机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的PC机上的IM客户端收到后将显示这些好友列表及其在线状态。

接下来,如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不通过IM服务器中转,而是通过网络进行点对点的直接通讯,这称为对等通讯方式(Peer To Peer)。在商用即时通讯系统中,如果用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器还提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。

如果用户A的好友用户B不在线,但用户A却发送了一条消息,那么此时IM服务器可以主动寄存A用户的消息,到B用户下一次登陆的时候,自动将消息转发给B。这一步就是IM通讯方式的离线代理通讯。

小科普|漫漫长路,聊天软件是这样让你与朋友沟通的!

好了!以上便是QQ、微信等即时通讯软件的基本原理,当然它们这些超级APP绝不会做的这么简单。

本期内容到这里就要结束了,如需订阅更多精彩文章,欢迎关注我的头条号“Okay”!

来源:Okay

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年6月25日
下一篇 2017年6月25日

相关推荐