QQ通信原理概述_第1頁(yè)
QQ通信原理概述_第2頁(yè)
QQ通信原理概述_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

#方式登陸的時(shí)候,端口是8000。因此,假如你所在的網(wǎng)絡(luò)開放了80端口(80端口是最常用端口。。就是通常訪問Web的端口,禁掉它的話,你的網(wǎng)絡(luò)對(duì)你來(lái)說(shuō)價(jià)值已經(jīng)不大了),但沒有屏蔽騰訊的服務(wù)器IP,恭喜你,你是可以登陸成功QQ的。二、聊天消息通信。采用UDP協(xié)議,通過(guò)服務(wù)器中轉(zhuǎn)方式。因此,現(xiàn)在的IP偵探在你僅僅跟對(duì)方發(fā)送聊天消息的時(shí)候是無(wú)法獲取到IP的。大家都知道,UDP協(xié)議是不可靠協(xié)議,它只管發(fā)送,不管對(duì)方是否收到的,但它的傳輸很高效。但是,作為聊天軟件,怎么可以采用這樣的不可靠方式來(lái)傳輸消息呢?于是,騰訊采用了上層協(xié)議來(lái)保證可靠傳輸:如果客戶端使用UDP協(xié)議發(fā)出消息后,服務(wù)器收到該包,需要使用UDP協(xié)議發(fā)回一個(gè)應(yīng)答包。如此來(lái)保證消息可以無(wú)遺漏傳輸。之所以會(huì)發(fā)生在客戶端明明看到“消息發(fā)送失敗”但對(duì)方又收到了這個(gè)消息的情況,就是因?yàn)榭蛻舳税l(fā)出的消息服務(wù)器已經(jīng)收到并轉(zhuǎn)發(fā)成功,但客戶端由于網(wǎng)絡(luò)原因沒有收到服務(wù)器的應(yīng)答包引起的。三、文件/自定義表情傳送。大家都知道,QQ可以傳送文件,可以發(fā)送自定義表情。先說(shuō)官方表情。官方表情實(shí)際發(fā)送的是命令字,而沒有發(fā)送表情??蛻舳耸盏矫钭趾螅瑫?huì)自動(dòng)解釋為對(duì)應(yīng)的表情。因此,QQ2008正式版的客戶端發(fā)出的新版表情,在2007beta4及以前的版本無(wú)法找到相對(duì)應(yīng)的表情,就無(wú)法解釋,看到的就會(huì)是空白信息,但查聊天記錄就會(huì)有[表情]字樣。自定義表情的傳送是以文件傳輸方式進(jìn)行的。下面說(shuō)文件傳輸方式:A要向B發(fā)送一個(gè)文件,于是發(fā)出一個(gè)文件傳送請(qǐng)求。服務(wù)器收到這個(gè)文件傳送請(qǐng)求后,轉(zhuǎn)發(fā)給B,同時(shí)或者在B應(yīng)答后,將A的IP地址同時(shí)發(fā)送給B。B這個(gè)時(shí)候就得到了A的真實(shí)IP。這里的IP是你的本機(jī)IP。也就是說(shuō),如果A處在接是無(wú)法建立的。這個(gè)時(shí)候,客戶端就會(huì)請(qǐng)求服務(wù)器進(jìn)行文件中轉(zhuǎn)。因?yàn)榉?wù)器具有公網(wǎng)IP,處在內(nèi)網(wǎng)的A跟B都是可以連接到服務(wù)器的,于是,A跟B的文件傳送就通過(guò)服務(wù)器中轉(zhuǎn)的方式,順利進(jìn)行。(注:服務(wù)器文件中轉(zhuǎn)使用443端口)*注:什么是內(nèi)網(wǎng)、公網(wǎng)內(nèi)網(wǎng)、公網(wǎng)是兩種Internet的接入方式。內(nèi)網(wǎng)接入方式:上網(wǎng)的計(jì)算機(jī)得到的IP地址是Inetnet上的保留地址,保留地址有如下3種形式:10.x.x.x172.16.x.x至172.31.x.x192.168.x.x內(nèi)網(wǎng)的計(jì)算機(jī)以NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)協(xié)議,通過(guò)一個(gè)公共的網(wǎng)關(guān)訪問Internet。內(nèi)網(wǎng)的計(jì)算機(jī)可向Internet上的其他計(jì)算機(jī)發(fā)送連接請(qǐng)求,但I(xiàn)nternet上其他的計(jì)算機(jī)無(wú)法向內(nèi)網(wǎng)的計(jì)算機(jī)發(fā)送連接請(qǐng)求。公網(wǎng)接入方式:上網(wǎng)的計(jì)算機(jī)得到的IP地址是Inetnet上的非保留地址。公網(wǎng)的計(jì)算機(jī)和Internet上的其他計(jì)算機(jī)可隨意互相所以,如果一個(gè)局域網(wǎng)只開放80端口,QQ是可以登陸成功的,也可以進(jìn)行聊天。但傳送文件也是不可以的,除非你們都在同一個(gè)時(shí)候,就會(huì)采用TCP協(xié)議進(jìn)行發(fā)送.而信息的可靠發(fā)送是通過(guò)各種驗(yàn)證機(jī)制來(lái)完成的,這一點(diǎn)你可以去GOOGLE之類的網(wǎng)站去搜索下.答:發(fā)送消息的時(shí)候是UDP打洞,登陸的時(shí)候使用HTTP~因?yàn)榈顷懛?wù)器其實(shí)就是一個(gè)HTTP服務(wù)器,只不過(guò)不是常用的那些,那個(gè)服務(wù)器因?yàn)橛脩粢话愣际窃诰钟蚓W(wǎng)內(nèi),地址都為私有IP,IM服務(wù)器是如何將信息轉(zhuǎn)發(fā)到用戶的?答:如果使用TCP就沒什么好說(shuō)了~由內(nèi)網(wǎng)向外網(wǎng)連接,只要能夠連接上進(jìn)行握手了,消息就可以暢通無(wú)阻的進(jìn)行發(fā)送了.如果使用UDP的話,就是使用的打洞技術(shù)了,只要通道打通了,發(fā)送消息基本和TCP沒什么區(qū)別,要做的只是維護(hù)消息的完整性而已.那么QQ是如何通訊的呢?在TCP/IP協(xié)議中,唯一標(biāo)識(shí)一個(gè)應(yīng)用進(jìn)程的是socket,它通過(guò)網(wǎng)絡(luò)層的IP地址和傳輸層的端口號(hào)來(lái)實(shí)現(xiàn),對(duì)與同一個(gè)IP地址的內(nèi)部網(wǎng)絡(luò),通過(guò)不同的端口號(hào)來(lái)標(biāo)識(shí)不同的QQ進(jìn)程;當(dāng)你登陸QQ游戲服務(wù)器的時(shí)候,服務(wù)器會(huì)保留你的保留IP地址和端口號(hào)信息,并在你的好友的QQ進(jìn)程中進(jìn)行列表顯示,然后兩個(gè)進(jìn)程就可以通信了。通常,發(fā)送文件的計(jì)算機(jī)首先要通過(guò)消息服務(wù)器將其IP地址發(fā)送給接收計(jì)算機(jī),當(dāng)接收計(jì)算機(jī)同意接收的確認(rèn)消息反饋到消息服務(wù)器后,消息服務(wù)器將據(jù)此設(shè)置好文件傳輸對(duì)話。隨即,發(fā)送計(jì)算機(jī)與接收計(jì)算機(jī)就會(huì)在確定好的端口范圍內(nèi),建立起TCP或UDP連接開始文件的檢索與傳輸。在默認(rèn)狀態(tài)下,QQ優(yōu)先采用了UDP(UserDataProtocol,用戶數(shù)據(jù)報(bào)協(xié)議)協(xié)議傳送數(shù)據(jù),而對(duì)可靠性要往往使用TCP協(xié)議傳輸數(shù)據(jù)。與TCP協(xié)議不同,UDP協(xié)議并不提供數(shù)據(jù)傳送的驗(yàn)證機(jī)制——在整個(gè)文件傳輸過(guò)程中如果出現(xiàn)數(shù)據(jù)報(bào)的丟失,協(xié)議本身并不能作出任何的檢測(cè)或提示。因此,通常人們把UDP協(xié)議稱為不可靠的傳輸協(xié)議。UDP協(xié)議適用于無(wú)須應(yīng)答、要求時(shí)效的軟件使用,這樣的設(shè)計(jì)正好與QQ追求的目標(biāo)相符,所以QQ優(yōu)先使用了此協(xié)議進(jìn)行一切功能應(yīng)用。但是,由于UDP協(xié)議具有不可靠性,常會(huì)因種種原因?qū)е孪⒒驍?shù)據(jù)的發(fā)送失敗(很多時(shí)候會(huì)發(fā)現(xiàn)發(fā)送文件給對(duì)方接收時(shí),對(duì)方根本收不到要求接收文件的消息?;蚴前l(fā)送聊天消息時(shí),對(duì)方根本沒有收到過(guò)消息)。顯然,UDP協(xié)議由于排除了信息可靠為了獲得更好的使用效果,往

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論