即時(shí)通訊工作原理_第1頁(yè)
即時(shí)通訊工作原理_第2頁(yè)
即時(shí)通訊工作原理_第3頁(yè)
即時(shí)通訊工作原理_第4頁(yè)
即時(shí)通訊工作原理_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

即時(shí)通訊(InstantMessenger,簡(jiǎn)稱IM)軟件多是基于TCP/IP和UDP進(jìn)行通訊的,TCP/IP和UDP都是建立在更低層的IP協(xié)議上的兩種通訊傳輸協(xié)議。前者是以數(shù)據(jù)流的形式,將傳輸數(shù)據(jù)經(jīng)分割、打包后,通過兩臺(tái)機(jī)器之間建立起的虛電路,進(jìn)行連續(xù)的、雙向的、嚴(yán)格保證數(shù)據(jù)正確性的文件傳輸協(xié)議。而后者是以數(shù)據(jù)報(bào)的形式,對(duì)拆分后的數(shù)據(jù)的先后到達(dá)順序不做要求的文件傳輸協(xié)議。QQ就是使用UDP協(xié)議進(jìn)行發(fā)送和接收消息的。當(dāng)你的機(jī)器安裝了OICQ以后,實(shí)際上,你既是服務(wù)端(Server),又是客戶端(Client)。當(dāng)你登錄OICQ時(shí),你的OICQ作為Client連接到騰訊公司的主服務(wù)器上,當(dāng)你“看誰(shuí)在線時(shí),你的OICQ又一次作為Client從QQServer上讀取在線網(wǎng)友名單。當(dāng)你和你的OICQ伙伴進(jìn)行聊天時(shí),如果你和對(duì)方的連接比較穩(wěn)定,你和他的聊天內(nèi)容都是以UDP的形式,在計(jì)算機(jī)之間傳送。如果你和對(duì)方的連接不是很穩(wěn)定,QQ服務(wù)器將為你們的聊天內(nèi)容進(jìn)行中轉(zhuǎn)。其他的即時(shí)通信軟件原理與此大同小異。首先,用戶A輸入自己的用戶名和密碼登錄即時(shí)通訊服務(wù)器,服務(wù)器通過讀取用戶數(shù)據(jù)庫(kù)來驗(yàn)證用戶身份,如果用戶名、密碼都正確,就登記用戶A的IP地址、IM客戶端軟件的版本號(hào)及使用的TCP/UDP端口號(hào),然后返回用戶A登錄成功的標(biāo)志,此時(shí)用戶A在IM系統(tǒng)中的狀態(tài)為在線(OnlinePresence)。其次,根據(jù)用戶A存儲(chǔ)在IM服務(wù)器上的好友列表(BuddyList),服務(wù)器將用戶A在線的相關(guān)信息發(fā)送到也同時(shí)在線的即時(shí)通訊好友的PC機(jī),這些信息包括在線狀態(tài)、IP地址、IM客戶端使用的TCP端口(Port)號(hào)等,即時(shí)通訊好友PC機(jī)上的即時(shí)通訊軟件收到此信息后將在PC桌面上彈出一個(gè)小窗口予以提示。第三步,即時(shí)通訊服務(wù)器把用戶A存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送到他的PC機(jī),這些信息包括也在線狀態(tài)、IP地址、IM客戶端使用的TCP端口(Port)號(hào)等信息,用戶A的PC機(jī)上的IM客戶端收到后將顯示這些好友列表及其在線狀態(tài)。接下來,如果用戶A想與他的在線好友用戶B聊天,他將直接通過服務(wù)器發(fā)送過來的用戶B的IP地址、TCP端口號(hào)等信息,直接向用戶B的PC機(jī)發(fā)出聊天信息,用戶B的IM客戶端軟件收到后顯示在屏幕上,然后用戶B再直接回復(fù)到用戶A的PC機(jī),這樣雙方的即時(shí)文字消息就不通過IM服務(wù)器中轉(zhuǎn),而是通過網(wǎng)絡(luò)進(jìn)行點(diǎn)對(duì)點(diǎn)的直接通訊,這稱為對(duì)等通訊方式(PeerToPeer)。在商用即時(shí)通訊系統(tǒng)中,如果用戶A與用戶B的點(diǎn)對(duì)點(diǎn)通訊由于防火墻、網(wǎng)絡(luò)速度等原因難以建立或者速度很慢,IM服務(wù)器還提供消息中轉(zhuǎn)服務(wù),即用戶A和用戶B的即時(shí)消息全部先發(fā)送到IM服務(wù)器,再由服務(wù)器轉(zhuǎn)發(fā)給對(duì)方。早期的IM系統(tǒng),在IM客戶端和IM服務(wù)器之間通訊采用采用UDP協(xié)議,UDP協(xié)議是不可靠的傳輸協(xié)議,而在IM客戶端之間的直接通訊中,采用具備可靠傳輸能力的TCP協(xié)議。隨著用戶需求和技術(shù)環(huán)境的發(fā)展,目前主流的即時(shí)通訊系統(tǒng)傾向于在即時(shí)通訊客戶端之間、即時(shí)通訊客戶端和即時(shí)通訊服務(wù)器之間都采用TCP協(xié)議。|C1每次想和C2通信,先向S遞一個(gè)申請(qǐng),然后s同意,把信息轉(zhuǎn)交C2C2以后每次通信都這樣|/C1和C2之間建立了一條連接,可以直接通信,無需經(jīng)過s.QQ聊天信息是在兩個(gè)用戶間直接通信的,而MSN要經(jīng)過服務(wù)器中轉(zhuǎn)QQ當(dāng)用戶登陸時(shí),用戶需要首先與qq服務(wù)器進(jìn)行連接進(jìn)行登錄,服務(wù)器會(huì)向客戶返回一些信息,比如你的好有的在線情況以及ip的信息,然后客戶可以與你所請(qǐng)求的朋友進(jìn)行點(diǎn)對(duì)點(diǎn)連接,兩者互相通信。第一種,對(duì)服務(wù)器的性能要求比較高,要求服務(wù)器可以同時(shí)處理很高的連接數(shù),因?yàn)樗行畔⒍家ㄟ^服務(wù)器進(jìn)行傳遞,同時(shí),它可以對(duì)所傳遞的信息進(jìn)行控制。第二種,僅僅是用戶登陸或下線時(shí)與服務(wù)器進(jìn)行連接,平時(shí)進(jìn)行通信時(shí),是用戶之間直接進(jìn)行點(diǎn)對(duì)點(diǎn)的連接,這種實(shí)現(xiàn)更合理一些。那c1和c2如果都在私網(wǎng)內(nèi),要通過路由器做NAT才能出去的話,他們之間的socket是如何建立的呢?看一下下面的協(xié)議.STUN,是為了實(shí)現(xiàn)透明的穿透NAT,而定義的一套協(xié)議。他使本地的內(nèi)網(wǎng)的機(jī)器,具有取得,能夠得知他的NAT網(wǎng)關(guān)的IP,NAT類型的能力。為什么需要STUN:因?yàn)镹AT雖然解決了IP地址稀少的問題,但是也帶來了很多的問題。比如所有P2P應(yīng)用,像文件SHARE,多媒體,和在線游戲等等..ALGs也有嚴(yán)重的問題,比如跟不上速度太塊的CLIENT,每一個(gè)應(yīng)用都需要單獨(dú)的實(shí)現(xiàn)。跟不上應(yīng)用的發(fā)展。為了克服ALGS的問題,又提出了theMiddleboxCommunications(MIDCOM)protocol把應(yīng)用協(xié)議和NAT部分分開,把ALGS從基本NAT里面處理開。不過因?yàn)橐幚鞰IDBOX,那么所有的NAT或者防火墻都要升級(jí),因?yàn)樯厦娣N種原因:要想穿透NAT,首先知道NAT的一些特性:NAT分為4種(加上防火墻的話,多幾種情況)://也就是說進(jìn)內(nèi)部網(wǎng)的數(shù)據(jù)包的SPORT,SPORT不受限制帶外網(wǎng).和受限NAT不同的是,只有當(dāng)外部主動(dòng)請(qǐng)求的的源IP和端口,等于內(nèi)部網(wǎng)發(fā)送的請(qǐng)求的目的IP和端口。內(nèi)部網(wǎng)同一臺(tái)機(jī)器,同一個(gè)端口如果目的地址不同,那么MAPPING的端口也不同,所以只有他主動(dòng)連的服務(wù)器才可能知道他的MAPPING后端口,別的服務(wù)器如果想總結(jié):前面3重NAT,MAPINGPORT和IP,是根據(jù)發(fā)送包的的內(nèi)部網(wǎng)的IP和端口決定的。這個(gè)功能為我們的穿越提供了很好條件。用來發(fā)現(xiàn)是否NAT,用來發(fā)現(xiàn)NAT的公網(wǎng)地址,和MAPPING后的端口較MAPPING地址是否和本機(jī)地址相同,如果是說明是本機(jī)也是公網(wǎng),否則這個(gè)請(qǐng)求要求服務(wù)器返回一臨時(shí)用戶名和密碼,用來下一步的BindingRequests/Response,STUN信息結(jié)構(gòu)MAPPED-ADDRESS必選用在BindingResponsCHANGE-REQUEST可選用在BindingRequest。用來決定,CLIENT的NAT類型是限制NA還是端口限制NAT,(命令服務(wù)器從不同的源端口/IP,Response請(qǐng)求)用戶并與他們實(shí)時(shí)交換消息的技術(shù),是電子郵件發(fā)明以來迅速崛起的在線通訊方式。協(xié)議族則是整個(gè)互聯(lián)網(wǎng)得以實(shí)現(xiàn)的技術(shù)基礎(chǔ)。最早出現(xiàn)即時(shí)通訊協(xié)議是IRC(InternetRelayChat),但是可惜的是它僅能單純的使用文字、符號(hào)的方式通過互聯(lián)網(wǎng)進(jìn)行交談和溝通。隨著互連網(wǎng)變得高度發(fā)達(dá),即時(shí)通訊也變得遠(yuǎn)不止聊天這么簡(jiǎn)單,自1996年第一個(gè)IM產(chǎn)品信息交換功能都可以在IM工具上實(shí)現(xiàn),于是功能強(qiáng)大的IM軟件便足以搭建一個(gè)完整的通典型的IM工作方式如下:登陸IM通訊中心(IM通訊服務(wù)器),獲取一個(gè)自建立的歷史的交流對(duì)象列表(好友列表),然后自身標(biāo)志為在線狀態(tài),當(dāng)好友列表中的某人在任何時(shí)候登一個(gè)聊天會(huì)話通道進(jìn)行各種消息如鍵入文字、通過語(yǔ)音等的交流,登陸或注銷登陸或注銷用戶A通過列表找到B,用戶B獲得的消息并與之交談通過IM服務(wù)器指引建立與B單獨(dú)的通訊通道第一步,用戶A輸入自己的用戶名和密碼登錄IM服務(wù)器,服務(wù)器通過讀取用戶數(shù)據(jù)庫(kù)來驗(yàn)端口號(hào),然后返回用戶A登錄成功的標(biāo)志,此時(shí)用戶A在IM系統(tǒng)中的狀態(tài)為在線(Online第二步,根據(jù)用戶A存儲(chǔ)在IM服務(wù)器上的好友列表(BuddyList),服務(wù)器將用戶A在線的相關(guān)信息發(fā)送給也同時(shí)在線的IM好友的PC機(jī),這些信息包括在線狀態(tài)、IP地址、IM客戶第三步是IM服務(wù)器把用戶A存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送到他的客戶端機(jī),這些信息包括也在線狀態(tài)、IP地址、IM客戶端使用的TCP端口(Port)號(hào)等信息,用戶A的IM客戶端收到后將顯示這些好友列表及其在線狀態(tài)。如果用戶A想與他的在線好友用戶B聊天,他將直接通過服務(wù)器發(fā)送過來的用戶B的IP地后顯示在屏幕上,然后用戶B再直接回復(fù)到用戶A的PC機(jī),這樣雙方的即時(shí)文字消息就不再IM服務(wù)器中轉(zhuǎn),而是直接通過網(wǎng)絡(luò)進(jìn)行點(diǎn)對(duì)點(diǎn)的通訊,即對(duì)等通訊方式(PeerToPeer)。用戶A與用戶B的點(diǎn)對(duì)點(diǎn)通訊由于防火墻、網(wǎng)絡(luò)速度等原因難以建立或者速度很慢,IM服務(wù)器將會(huì)主動(dòng)提供消息中轉(zhuǎn)服務(wù),即用戶A和用戶B的即時(shí)消息全部先發(fā)送到IM服務(wù)器,用戶A與用戶B由于各種原因不能同時(shí)在線的時(shí)候,如此時(shí)A向B發(fā)送消息,IM服務(wù)器可以主動(dòng)寄存A用戶的消息,到B用戶下一次登陸的時(shí)候,自動(dòng)將消息轉(zhuǎn)發(fā)給B。用戶A可以通過IM服務(wù)器將信息以擴(kuò)展的方式傳遞給B,如短信發(fā)送方式發(fā)送到B的手機(jī),傳真發(fā)送方式傳遞給B的電話機(jī),以email的方式傳遞給B的電子郵箱等。傳輸協(xié)議,而在IM客戶端之間的直接通訊中,采用具備可靠傳輸能力的TCP協(xié)議。隨著用即時(shí)通訊相對(duì)于其他通訊方式如電話、傳真、email等的最大優(yōu)勢(shì)就是消息傳達(dá)的即時(shí)性和精確性,只要消息傳遞雙方均在網(wǎng)絡(luò)上可以互通,使用即時(shí)通為1秒種傳統(tǒng)的IM在統(tǒng)治了互聯(lián)網(wǎng)即時(shí)通訊領(lǐng)域長(zhǎng)達(dá)十年之久,以其日趨穩(wěn)定的定能,與較強(qiáng)的用戶黏著度,至今仍統(tǒng)治著這個(gè)巨大的市場(chǎng)。然而,軟件行業(yè)的技術(shù)精英們,并不滿足于此。善,自然是一個(gè)必然的發(fā)展方向,在Web2.0時(shí)代,如何大力增強(qiáng)用戶對(duì)網(wǎng)站的黏著度,而不僅僅是對(duì)于IM的擁附,已經(jīng)成為他們的主攻方向了。于是,嵌入式IM相對(duì)以往的傳統(tǒng)的即使溝通工具,它們需要用戶下載軟件包度,都是有一定影響的。因此在IM與網(wǎng)站相互依存的今天,沒有哪家網(wǎng)絡(luò)公司,愿意將IM當(dāng)用戶登陸網(wǎng)頁(yè)后,該I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論