IM即時通訊實現的原理_風聞
16629866266-2021-01-18 11:28
IM 技術全稱 Instant Messaging ,中文翻譯“即時通訊”,它是一種使人們能在網上識別在線用户並與他們實時交換消息的技術,是電子郵件發明以來迅速崛起的在線通訊方式。IM的出現和互聯網有着密不可分的關係,IM完全基於 TCP/IP網絡協議族實現,而TCP/IP協議族則是整個互聯網得以實現的技術基礎。最早出現即時通訊協議是IRC(Internet Relay Chat),但是可惜的是它僅能單純的使用文字、符號的方式通過互聯網進行交談和溝通。隨着互連網變得高度發達,即時通訊也變得遠不止聊天這麼簡單,自1996年第一個IM產品ICQ發明後,IM的技術和功能也開始基本成型,語音、視頻、文件共享、短信發送等高級信息交換功能都可以在IM工具上實現,於 是功能強大的IM軟件便足以搭建一個完整的通信交流平台。目前最具代表性的幾款的IM即時通訊軟件有MSN、Google Talk、Yahoo、Messenger 、騰訊QQ等。
典型的IM工作方式如下:登陸IM即時通訊中心(IM即時通訊服務器),獲取一個自建立的歷史的交流對象列表(好友列表),然後自身標誌為在線狀態,當好友列表中的某人在任何時候登錄上線並試圖通過你的計算機聯繫你 時,IM系統會發一個消息提醒你,然後你能與他建立一個聊天會話通道進行各種消息如鍵入文字、通過語音等的交流。
從技術上來説,IM的基本技術原理如下:通過IM服務器登陸或註銷;用户A通過列表找到B,用户B獲得消息並與之交談;通過IM服務器指引建立與B單獨的通訊通道。
第一步,用户A輸入自己的用户名和密碼登錄IM服務器,服務器通過讀取用户數據庫來驗證用户身份,如果驗證通過,登記用户A的IP地址、IM客户端軟件的版本號及使用的TCP/UDP端口號,然後返回用户A登錄成功的標誌,此時用户A在IM系統中的狀態為在線(Online Presence)。
第二步,根據用户A存儲在IM服務器上的好友列表(Buddy List),服務器將用户A在線的相關信息發送給也同時在線的IM好友的PC機,這些信息包括在線狀態、IP地址、IM客户端使用的TCP端口(Port)號等,IM好友的客户端收到此信息後將在予以提示。
第三步是IM服務器把用户A存儲在服務器上的好友列表及 相關信息回送到他的客户端機,這些信息包括也在線狀態、IP地址、IM客户端使用的TCP端口(Port)號等信息,用户A的IM客户端收到後將顯示這些好友列表及其在線狀態。
IM通訊方式有哪些?
1、在線直接通訊
如果用户A想與他的在線好友用户B聊天,他將直接通過服務器發送過來的用户B的IP地址、TCP端口號等信息,直接向用户B的PC機發出聊天信息,用户B 的IM客户端軟件收到後顯示在屏幕上,然後用户B再直接回復到用户A的PC機,這樣雙方的即時文字消息就不再IM服務器中轉,而是直接通過網絡進行點對點 的通訊,即對等通訊方式(Peer To Peer)。
2、在線代理通訊
用户A與用户B的點對點通訊由於防火牆、網絡速度等原因難以建立或者速度很慢,IM服務器將會主動提供消息中轉服務,即用户A和用户B的即時消息全部先發 送到IM服務器,再由服務器轉發給對方。
3、離線代理通訊
用户A與用户B由於各種原因不能同時在線的時候,如此時A向B發送消息,IM服務器可以主動寄存A用户的消息,到B用户下一次登陸的時候,自動將消息轉發 給B。
4、擴展方式通訊
用户A可以通過IM服務器將信息以擴展的方式傳遞給B,如短信發送方式發送到B的手機,傳真發送方式傳遞給B的電話機,以email的方式傳遞給B的電子郵箱等。