導航:首頁 > 配伺服器 > qq伺服器是怎麼工作的

qq伺服器是怎麼工作的

發布時間:2022-11-15 11:10:11

A. QQ的工作原理是什麼

一、 口令加密

每個oicq帳號的口令都保存在本地的一個文件中。登錄oicq時,先將輸入的口令與本地的

文件進行比較。如果口令與文件中保存的不符,將提示"輸入的密碼與上次成功登錄的密碼

不一致,是否到伺服器驗證?"。

OICQ 99c的口令文件為matrix.cnt。OICQ 99b的口令文件為matric.ewh。

口令加密演算法的函數原型為:

void CalcPassword(char *password ,int len ,char *outbuffer)

參數:

password為輸入的明碼口令

len: password長度

outbuffer:固定16個位元組長度的加密後的口令。

說明:該函數用調試工具查到入口地址為15f:456718。在口令加密和用戶之間通訊時都要

用到這個函數。已知能夠計算的最長口令為20個位元組,見下文用戶之間加密通信。

Oicq99b的口令文件就是將口令進行一次CalcPassword計算後保存在每個oicq帳號目錄中的

matrix.ewh,該文件正好為16個位元組。因此有這個文件就可以使用暴力進行口令破解了。

Oicq99c的口令文件就復雜多了,第一次將明碼的口令用CalcPassword進行計算,然後

將結果再作為口令進行計算,迭代計算很多次。計算次數用4個位元組的雙字表示。將4個字

節的次數和計算後的口令保存在每個oicq帳號的matrix.cnt文件中,這個文件正好為20個

位元組長度。因為迭代計算了很多次,使口令計算時間極大地延長了,使用暴力破解oicq99

c的口令幾乎不太可能。

二、 聊天歷史的查看

與每個人聊天的歷史都存在自已的oicq號目錄下,文件名為對方的oicq號.msh(99b)或

.msj(99c)文件中。

核心解密函數的原型為:

BOOL Decode(char *src ,int srclen ,char *decodekey, char outbuffer,int * p

outlen)

參數:

src:存放加密數據的緩沖區。

Srclen:src位元組數。

Decodekey:固定16個位元組的密鑰。

Outbuffer:輸出明文緩沖區的地址。

Poutlen:解密後的長度存放地址。

說明:該函數入口地址:15f:456D33。這個函數以密鑰進行解密。如果成功返回TRUE,否

則返回FALSE。

顯而易見,解密的關鍵是如何得到16個位元組的密鑰decodekey。

查看聊天歷史的密鑰生成不需要口令。演算法為:

1、 用當前使用的oicq號為口令,調用口令計算函數CalcPassword,得出一個臨時密

鑰keycode1。

2、 用keycode1為密鑰,進行解密。數據為文件matrix2.ewh(99b為matrix.ewh) 從0

起第17個位元組,長度為32個位元組,解出16個位元組的密鑰為keycode2。

3、 用keycode2為密鑰,可以解開跟任何人聊天的歷史。

例如要查看oicq號為123456的聊天歷史記錄,演算法為:

BYTE keycode1<16>;

BYTE filebuffer<32>;

//讀文件matrix2.ewh,從0起第17個字長,長度為32的內容讀出保存在filebuffer。

ReadToBuffer(filebuffer);

//用當前的oicq號計算keycode1

CalcPassword(』123456』, 6 , keycode1)。

//計算keycode2

BYTE keycode2<16>;

int len = 16;

Deocode(filebuffer , 32 , keycode1,keycode2,&len);

//現在keycode2就是能看任何聊天歷史的密鑰了。

//如看跟888888的聊天歷史,將文件888888.msj讀到緩沖區largerbuffer

Decode(largerbuffer,largerbufferlen,keycode2,outbuffer,*outlen),成功後

outbuffer中為解密後的聊天記錄。

三、 與伺服器通信的加密

與Decode相對應,是一個加密函數Encode。

void Encode(char *src,int srclen,char *encodekey,char *outbuffer,int *

poutlen)

參數:

src:明文緩沖區。

Srclen: 明文緩沖區的長度。

Encodekey:固定16個位元組的加密的密鑰。

Outbuffer:輸出加密緩沖區。

Poutlen:輸出長度的保存地址。

說明:該函數入口地址:15f:456b62。將明文進行加密,密鑰為encodekey。用d

ecode函數和同樣的密鑰可以進行解密。

l 登錄伺服器:

發送的數據包為

{BYTE b1;固定為0x2

BYTE b2;固定為0x3

BYTE b3;固定為0XA

BYTE b4;固定為0X0

BYTE cmd; 登錄伺服器為0X15。

WORD seq; 順序號,從高到低存放

DWORD oicq號;以從高到低順利存放二進制的OICQ號。

BYTE key<16> ;隨機產生的16個位元組的密鑰。

BYTE buffer<64>;64位元組的加密內容。

BYTE endchar ;固定為0x3。

最核心的是buffer<64>的內容。用口令調用CalcPassword進行一次計算,然後作

為密鑰對0長度的明文進行加密,得出16個位元組的結果,再進行加密發送。例如口

令為』abc123』,演算法為

BYTE passkey<16>

CalcPassword(』abc123』,6』,passkey)

BYTE keycode<16>

int keycodelen=16;

Encode(0,0,passkey,keycode,&keycodelen)

BYTE sndbuffer<51>;

memset(sndbuffer,0,51)

memcpy(sndbuffer,keycode,16)

//sndbuffer其餘的內容為當前機器的ip等信息,與檢查口令無關

BYTE result<64>

int sresultlen=64

Encode(sndbuffer,51,隨機產生16個位元組的密鑰,result,&resultlen)

最後把16個位元組的隨機密鑰和64位元組加密後的口令一同發給伺服器驗證。如果能用sniffe

r偵聽到別人與伺服器的通信,就能進行口令破解。當然也可以通過伺服器進行在線的口令

破解,只是速度很慢,沒有實用價值。

l 如果登錄成功,伺服器返回16個位元組的密鑰--ServerKey。

l UPD數據包的格式為

BYTE b1;固定為2

BYTE b2;固定為1

BYTE b3;固定為0

BYTE b4;固定為0

BYTE cmd;登錄為0X15

WORD seq;從高到低順序,與發送的seq一致。

BYTE msg<56>;

BYTE endchar ;固定0x3。

用口令經過一次CalcPassword計算,得出16個位元組的密鑰,對msg進行解密。從第1個位元組

開始的16個位元組即為與伺服器通信的密鑰暫稱為ServerKey。該密鑰經常變化。

在本次登錄中,以後所有跟伺服器的通信都用這個ServerKey為密鑰進行加密和解密。

四、 其它用戶發來的加密消息的解密。

其它用戶的發來的加密消息格式為:

BYTE b1;固定為0x0

BYTE b2;固定為0x3

BYTE b3;固定為0xA或0X2

BYTE salt; OICQ號加密用

DWORD EncodeOicqID;加密後的從高到低的oicq號。

DWORD seq;序號

BYTE msg<變長>

l 對方oicq號的解密。

將EncodeOicqID的4個位元組分別與salt進行異或操作,然後取反。

如salt = 0XA0, EncodeOicqID = 0X 5F5EBD1F。

//分別進行異或操作

0X 5F5EBD1F XOR 0XA0A0A0A0 = 0X FFFE1DBF

//再取反

NOT 0X FFFE1DBF = 0X1E240,轉為10進制就是123456。因此對方的oicq號為123456。

l 消息的解密。

先合成一個20位元組的口令。前4個位元組為從高到低的二進制對方的oicq號。後16個位元組為服

務器發來的ServerKey。ServerKey的來源見第三節。

如對方的oicq號為123456,20位元組的口令為

00 01 E2 40 + 16位元組的ServerKey。

用口令演算法對這20位元組的口令進行計算,得16個位元組的密鑰,就可以解開對方發來的消息

五、 發給其它用戶消息的加密

在登錄後,伺服器會通知好友的IP地址和埠,以及一個16個位元組的密鑰。就是當前的OI

CQ號加對方16個位元組ServerKey通過CalcPass的計算結果。

向對方發送消息時,只要用這16個位元組進行加密即可。

六、 一些結論

oicq 99c的加密是嚴密的,不易進行破解。除非得到某人的口令,否則不可能進行消息假

冒等。如果你有每秒能運算百億次的巨型機,也許能解開對方跟伺服器通信的16個位元組的

ServerKey,而且必須要快。總之oicq 99c 是安全的,仍然在使用的早期用戶間明文通信

協議不在本文考慮之內。

B. QQ伺服器是可以干嗎用的

伺服器是一種高性能計算機,作為網路的節點,存儲、處理網路上80%的數據、信息,因此也被稱為網路的靈魂。做一個形象的比喻:伺服器就像是郵局的交換機,而微機、筆記本、PDA、手機等固定或移動的網路終端,就如散落在家庭、各種辦公場所、公共場所等處的電話機。我們與外界日常的生活、工作中的電話交流、溝通,必須經過交換機,才能到達目標電話;同樣如此,網路終端設備如家庭、企業中的微機上網,獲取資訊,與外界溝通、娛樂等,也必須經過伺服器,因此也可以說是伺服器在「組織」和「領導」這些設備。 伺服器的構成與微機基本相似,有處理器、硬碟、內存、系統匯流排等,它們是針對具體的網路應用特別制定的,因而伺服器與微機在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面存在差異很大。尤其是隨著信息技術的進步,網路的作用越來越明顯,對自己信息系統的數據處理能力、安全性等的要求也越來越高,如果您在進行電子商務的過程中被黑客竊走密碼、損失關鍵商業數據;如果您在自動取款機上不能正常的存取,您應該考慮在這些設備系統的幕後指揮者————伺服器,而不是埋怨工作人員的素質和其他客觀條件的限制。

C. QQ工作原理是什麼

首先QQ客戶端向伺服器發送一個請求登錄令牌的數據包.伺服器返回登錄令牌.這個令牌是在伺服器端生成的.和客戶端的IP地址,版本信息等數據相關.以後會用到這個令牌去進行其他操作.
在QQ客戶端得到登錄令牌之後.就會向伺服器發送一個包含登錄信息的登錄請求.要求登錄.服務順會首先看看客戶端的號碼.I守址和版本是否可以在本伺服器上進行登錄.如果可以的話,就驗證客戶端的登錄信息是否與伺服器上保存的登錄信息進行比較.匹配的就向客戶端返回一個登錄成功的數據包.不匹配返回登錄失敗.因為QQ的伺服器有很多台.可能要分管不同的QQ版本.IP等.所以如果客戶端的號碼.IP地址和版本無法在本伺服器進行登錄.伺服器就返蜀犬吠日一個重定向包.讓客戶端去另外一台伺服器登錄.其實整個QQ登錄過程就是這么簡單的兩個步驟.
了解了QQ登錄的過程後.我們還需要知道具人本的數據包格式.以便解析出我們需要的數據內容.QQ登錄過程的數據包分為頭部.內容和尾部三個部分.其中頭的格式固定為:0x02客戶端版本 命令 序列號 QQ號碼. 其中0x02是1個位元組的標志;客戶端版本2個位元組.用於表示QQ客戶端的版本;命令2個位元組.表示要發送的命令類型.例如請求登錄令牌登錄請求等;序列號是一個2位元組的隨機數,在一次QQ會話中通過它來確認回應包是否對應請求包.QQ客戶端默認每次加1;QQ號碼就是4位元組的QQ號.對於伺服器來說是每個欄位是無所謂的.QQ登錄過程數據包的尾部固定為0x03.
1. 請求登錄令牌包
包內容就是對一次命令的具體信息,對於第一次發送的請求登錄令牌包來說,包命令是0x0062,整個請求包如下所示;
而伺服器返回包則相對復雜一些,如下所示;

其中0x18表示登錄令牌的長度,現在QQ默認的登錄令牌長度是0x18.這個令牌是在伺服器端生成的.具體的生成演算法我們當然還無從得知,應該是參考了QQ客戶端的I守址.埠和其他一些信息生成這個令版的,因為你把在A機器上得到的令牌用到B機器上,你就會登錄不了.如果你把A機器上的IP給改了.你照樣也登錄不了.
2. 登錄包.
對於我們嗅探QQ密碼來說,最重要的就是這個登錄包.在這里包含了和QQ密碼相關的信息.登錄包的具體結構如下;

其中初始密鑰是一個16位元組的隨機數,用於本身的加密.這里最重要的就是密碼密鑰加密的一個空字元串.
所謂密碼密鑰就是用QQ口呤進行兩次MD5加密後得到的密文,然後以這個密文作為密鑰去加密一個空字元串,這次加密使用了反饋的TEA演算法,加密結果放在QQ登錄包里,讓伺服器去驗證,由於QQ的加密演算法使用特殊的填充機制使用QQ伺服器可以驗證出用戶密碼是否正確,這個會在後面進行詳細的解釋.QQ登錄包裡面還有一些諸如登錄狀態,登錄令版和很多未知的內容.但是這些對於我們破解QQ密碼來說都沒有什麼太大的作用.
需要特別提到的是,前面的請求登錄令牌包是不加密的,而這個登錄包除了初始密鑰本身以外的部分都要用初始密鑰進行加密,加密演算法同樣是反饋的TEA.
QQ伺服器在收到這個登錄包之後,首先要用初始密鑰解密登錄包後面的部分,如果解密成功,就會用保存在伺服器上的密信息去解密密碼密鑰加密的那個空字元串密文,我現在還不確定QQ伺服器上保存的是密碼明文還是密碼密鑰.猜測是密碼密鑰.這樣伺服器就用密碼密鑰去解密那段16位密文,如果用戶提交的密碼是正確的.才可以解密成功.否則解密函數會返回空,認證就失敗了.當驗證QQ客戶端密碼准確無誤後.就返回一個登錄成功包.格式如下:

QQ的加密演算法
了解了上面的QQ登錄的通信協議之後還不足以破解QQ密碼,我們還需要掌握QQ的加密演算法.前面提到了,密碼密鑰是用戶密碼進行兩次MD5加密之後得到的結果.然後再用空個結果作為密鑰使用TEA演算法進行加密.TEA是Tiny Encrypt Arithmetic的縮寫.顧名思義就是一種比較簡單的小型加密演算法.它用一個16位元組的密鑰去加密一個8位元組的明文.得到一個8位元組的密文.也可以反向從密文解密出明文.具體的演算法可以到網上搜索查閱.這里就不在贅述了.
但是QQ使用的TEA雖然是標準的TEA.但是QQ卻使用了一種自己特殊的填充反饋機制,QQ消息被分為多個加密單元.每一個加密單元都是8位元組.使用TEA進行加密.加密結果再作為下一個單元的密鑰.如果明文本身的長度不是8的倍數.那麼還要進行填充.使其成為8的倍數.填充的時候會用一個32位隨機數存放於明文的開始位置.再在明文的最後用0填充為整個長度是8的倍數.由於會向後反饋這樣即使對於相同的明文,因為使用了不同的隨機數.也會產生完全不同的密文.
使用這種特殊的填充反饋演算法所導致的結果就是,一段密文只能用加密它的密鑰進行解密.如果使用不正確的密鑰.就無法得到正確的填充結果.最常見的就是解密後得到的填充數值不是0,這樣就判斷解密失敗.

D. QQ是一種什麼網路工作模式

C/S模式也就是客戶端-伺服器模式。

客戶機通過區域網與伺服器相連,接受用戶的請求,並通過網路向伺服器提出請求,對資料庫進行操作。伺服器接受客戶機的請求,將數據提交給客戶機,客戶機將數據進行計算並將結果呈現給用戶。

(4)qq伺服器是怎麼工作的擴展閱讀

伺服器進程:

接受一個來自客戶端的請求的過程。獲得來自客戶端的請求後會處理所需的收集所需的信息,將其發送到請求客戶端。一旦這樣做完成後,就又變成准備為另一個客戶端。伺服器進程始終等待准備用於處理傳入請求。

實例: Web伺服器一直等待來自互聯網瀏覽器的請求,並盡快得到任何請求從瀏覽器,它拿起一個請求的HTML頁面,並把它發送回該瀏覽器。

注意,客戶端需要知道的存在伺服器的地址,但是伺服器並不需要在建立的連接之前知道客戶端的地址。一旦建立連接後,雙方都可以發送和接收信息。

E. qq的伺服器是什麼

右鍵看你的QQ上有系統設置這一項,然後在基本設置里有一項網路連接,上面有你的登陸伺服器類型、地址和埠。

F. QQ是一個基於TCP/UDP協議的通訊軟體

原文地址: http://f543711700.iteye.com/blog/978044

發送消息的時候是UDP打洞,登陸的時候使用HTTP~因為登陸伺服器其實就是一個HTTP伺服器,只不過不是常用的那些,那個伺服器是騰訊自行開發的!!!

QQ客戶端在區域網內,當你打開QQ登錄到QQ伺服器時,通過外網,你的客戶端與QQ伺服器建立了一個長連接。你可以用netstat -bn 看到此連接的狀態是 establish

此時,在QQ伺服器那面看到的連接的IP是你們區域網對外的IP。舉個例子:

這是一個假象。通過QQ伺服器看到的連接是:

這樣,防火牆上的31234口對應的就是你機器的55579口。(由於你是發起方,這個數是變化的。動態的)
當有信息給你時,QQ伺服器只需要發給防火牆的55579口即可。(這里防火牆作了地址翻譯)

不管UDP還是TCP,最終登陸成功之後,QQ都會有一個TCP連接來保持在線狀態。這個TCP連接的遠程埠一般是80,採用UDP方式登陸的時候,埠是8000。因此,假如你所在的網路開放了80埠(80埠是最常用埠。。就是通常訪問Web的埠,禁掉它的話,你的網路對你來說價值已經不大了),但沒有屏蔽騰訊的伺服器IP,恭喜你,你是可以登陸成功QQ的。

採用UDP協議,通過伺服器中轉方式。大家都知道,UDP 協議是不可靠協議,它只管發送,不管對方是否收到的,但它的傳輸很高效。但是,作為聊天軟體,怎麼可以採用這樣的不可靠方式來傳輸消息呢?於是,騰訊採用了上層協議來保證可靠傳輸:如果客戶端使用UDP協議發出消息後,伺服器收到該包,需要使用UDP協議發回一個應答包。如此來保證消息可以無遺漏傳輸。之所以會發生在客戶端明明看到「消息發送失敗」但對方又收到了這個消息的情況,就是因為客戶端發出的消息伺服器已經收到並轉發成功,但客戶端由於網路原因沒有收到伺服器的應答包引起的。

因為用戶一般都是在區域網內,地址都為私有IP,騰訊伺服器是如何將信息轉發到用戶的?

首先先介紹一些基本概念:

最先提出的是基本的NAT,它的產生基於如下事實:一個私有網路(域)中的節點中只有很少的節點需要與外網連接(呵呵,這是在上世紀90年代中期提出的)。那麼這個子網中其實只有少數的節點需要全球唯一的IP地址,其他的節點的IP地址應該是可以重用的。
因此,基本的NAT實現的功能很簡單,在子網內使用一個保留的IP子網段,這些IP對外是不可見的。子網內只有少數一些IP地址可以對應到真正全球唯一的IP地址。如果這些節點需要訪問外部網路,那麼基本NAT就負責將這個節點的子網內IP轉化為一個全球唯一的IP然後發送出去。(基本的NAT會改變IP包中的原IP地址,但是不會改變IP包中的埠)
關於基本的NAT可以參看RFC 1631

另外一種NAT叫做NAPT,從名稱上我們也可以看得出,NAPT不但會改變經過這個NAT設備的IP數據報的IP地址,還會改變IP數據報的TCP/UDP埠。基本NAT的設備可能我們見的不多(呵呵,我沒有見到過),NAPT才是我們真正討論的主角。看下圖:

有一個私有網路10. . .*,ClientA是其中的一台計算機,這個網路的網關(一個NAT設備)的外網IP是155.99.25.11(應該還有一個內網的IP地址,比如10.0.0.10)。如果Client A中的某個進程(這個進程創建了一個UDPSocket,這個Socket綁定1234埠)想訪問外網主機18.181.0.31的1235埠,那麼當數據包通過NAT時會發生什麼事情呢?
首先NAT會改變這個數據包的原IP地址,改為155.99.25.11。接著NAT會為這個傳輸創建一個Session(Session是一個抽象的概念,如果是TCP,也許Session是由一個SYN包開始,以一個FIN包結束。而UDP呢,以這個IP的這個埠的第一個UDP開始,結束呢,呵呵,也許是幾分鍾,也許是幾小時,這要看具體的實現了)並且給這個Session分配一個埠,比如62000,然後改變這個數據包的源埠為62000。所以本來是(10.0.0.1:1234->18.181.0.31:1235)的數據包到了互聯網上變為了(155.99.25.11:62000->18.181.0.31:1235)。
一旦NAT創建了一個Session後,NAT會記住62000埠對應的是10.0.0.1的1234埠,以後從18.181.0.31發送到62000埠的數據會被NAT自動的轉發到10.0.0.1上。(注意:這里是說18.181.0.31發送到62000埠的數據會被轉發,其他的IP發送到這個埠的數據將被NAT拋棄)這樣Client A就與Server S1建立以了一個連接。

呵呵,上面的基礎知識可能很多人都知道了,那麼下面是關鍵的部分了。
看看下面的情況:

接上面的例子,如果Client A的原來那個Socket(綁定了1234埠的那個UDP Socket)又接著向另外一個Server S2發送了一個UDP包,那麼這個UDP包在通過NAT時會怎麼樣呢?
這時可能會有兩種情況發生,一種是NAT再次創建一個Session,並且再次為這個Session分配一個埠號(比如:62001)。另外一種是NAT再次創建一個Session,但是不會新分配一個埠號,而是用原來分配的埠號62000。前一種NAT叫做SymmetricNAT,後一種叫做ConeNAT。我們期望我們的NAT是第二種,呵呵,如果你的NAT剛好是第一種,那麼很可能會有很多P2P軟體失靈。(可以慶幸的是,現在絕大多數的NAT屬於後者,即Cone NAT)

好了,我們看到,通過NAT,子網內的計算機向外連結是很容易的(NAT相當於透明的,子網內的和外網的計算機不用知道NAT的情況)。
但是如果外部的計算機想訪問子網內的計算機就比較困難了(而這正是P2P所需要的)。
那麼我們如果想從外部發送一個數據報給內網的計算機有什麼辦法呢?首先,我們必須在內網的NAT上打上一個「洞」(也就是前面我們說的在NAT上建立一個Session),這個洞不能由外部來打,只能由內網內的主機來打。而且這個洞是有方向的,比如從內部某台主機(比如:192.168.0.10)向外部的某個IP(比如:219.237.60.1)發送一個UDP包,那麼就在這個內網的NAT設備上打了一個方向為219.237.60.1的「洞」,(這就是稱為UDP HolePunching的技術)以後219.237.60.1就可以通過這個洞與內網的192.168.0.10聯系了。(但是其他的IP不能利用這個洞)。

呵呵,現在該輪到我們的正題P2P了。有了上面的理論,實現兩個內網的主機通訊就差最後一步了:兩邊都無法主動發出連接請求,誰也不知道誰的公網地址,那我們如何來打這個洞呢?我們需要一個中間人來聯系這兩個內網主機。
現在我們來看看一個P2P軟體的流程,以下圖為例:

首先,Client A登錄伺服器,NAT A為這次的Session分配了一個埠60000,那麼ServerS收到的Client A的地址是202.187.45.3:60000,這就是Client A的外網地址了。同樣,ClientB登錄Server S,NAT B給此次Session分配的埠是40000,那麼ServerS收到的B的地址是187.34.1.56:40000。

此時,Client A與Client B都可以與ServerS通信了。如果Client A此時想直接發送信息給Client B,那麼他可以從ServerS那兒獲得B的公網地址187.34.1.56:40000,是不是Client A向這個地址發送信息ClientB就能收到了呢?答案是不行,因為如果這樣發送信息,NATB會將這個信息丟棄(因為這樣的信息是不請自來的,為了安全,大多數NAT都會執行丟棄動作)。那該怎麼辦呢? 首先我們假設Server S是219.237.60.1:7000,當Clinet A(202.187.45.3:60000)向Server S(219.237.60.1:7000)發送數據包,Server S是可以正常接收到數據,因為它是屬於外型開放的伺服器埠。當Server S收到數據包後可以獲知Clinet A(202.187.45.3:60000)對外通信的臨時session信息(這個叫臨時的埠,假設是60000會過期,具體時間不同,一般是每30S發送一個keep住連接以保證埠維持通信連接不斷)Server S此時應將次信息保存起來。而同時,Client B (192.168.0.10:40000)也在時刻向
Server S發送心跳包,Server S就向Client B (192.168.0.10:40000)發送一個通知,讓Client B (192.168.0.10:4000) 發送探測包(這個數據包最好發幾個),Client B (192.168.0.10:4000)在收到通知後在向Server S發送反饋包,說明以向自己以向Client A (192.168.0.20:60000)發送了探測包,Server S在收到反饋之後再向Client A (192.168.0.20:60000)轉發反饋包,Client A (192.168.0.20:60000)在收到數據包之後在向原本要求請求的Client B (192.168.0.10:4000)發送數據包,此時連接已經打通,實現穿透。Client B (192.168.0.10:4000)會將數據包轉發給
Client A (192.168.0.20:60000)從而在轉發給內網內網IP:192.168.0.1。

對於Symmetric NAPT的情況,網上有人說可以通過探測埠的方式,不過成功率並不高,我建議可用伺服器進行中轉。另外,最好在數據包發送前先檢測是否進行的是同個NAT的情況,也就是內網發內網,如果是,直接發送即可,而無需通過外網再繞回來。

G. QQ的工作原理是怎樣的 它是如何解決不同區域網之間的通訊用UDP吧,但數據包的那個目的IP地址是如何知道

我們使用的QQ軟體是一個客戶端軟體,伺服器端在騰訊那裡,
數據包的目的IP地址是通過服務端請求知道的,雙方都使用QQ,都連接上
QQ伺服器,自然可以從伺服器知道目的IP地址。

H. 什麼是本地伺服器和騰訊伺服器

充當伺服器的電腦放在本地的伺服器即為本地伺服器。騰訊在雲端完成重要部署,為開發者及企業提供雲服務、雲數據、雲運營等整體一站式服務方案為騰訊伺服器</strong>
伺服器按應用層次劃分為入門級伺服器、工作組級伺服器、部門級伺服器和企業級伺服器四類;按用途劃分為通用型伺服器和專用型伺服器兩類。

I. 什麼叫qq伺服器

一:QQ代理設置方法:

QQ代理有兩個類型可以選擇:SOCK5代理伺服器和HTTP代理伺服器。

(1)QQ登陸對話框中的設置

在QQ登陸界面點擊網路設置→出現的下拉列表中選擇你的需要的代理類型→地址:填上你收集的代理伺服器IP(「***.***.***.***形式的」)

→埠:填上你找到的代理伺服器的埠參數→把用戶和密碼框填上代理伺服器提供的用戶名和密碼(一般免費代理是沒有用戶名和密碼的,

那麼不用填)。

例如你收集 到的代理伺服器是127.0.0.1:80那麼設置時地址填:127.0.0.1,埠填80,注意沒有前面的冒號。

好了現在基本設置好了,你可以測試一下你的代理伺服器是否工作正常,
點擊測試。假如出現「代理伺服器正常」,則這個代理是可用的,正常就可以登陸你QQ了。假如出現「無法連接代理伺服器」,則說明這個代

理不能使用,重新輸入另外的代理參數,重新測試。

(2)QQ在運行時的代理設置

點擊「菜單」→「系統設置」→「代理設置」
其設置與上面的設置一樣,不過要使剛剛輸入的參數生效,必須下線一次,再上線,這樣才能改變QQ的傳輸狀態,使代理生效。

J. QQ伺服器是什麼

QQ伺服器就是掛QQ的伺服器,伺服器做什麼沒有太大限制,只不過用途不一樣而已

與qq伺服器是怎麼工作的相關的資料

熱點內容
優優pdf 瀏覽:798
程序員職業穿搭 瀏覽:254
程序員軟考大綱 瀏覽:16
命令窗口輸入後不滾動 瀏覽:638
C面向切面編程aop例子 瀏覽:368
windowsrar命令 瀏覽:379
單片機編程語言有哪些 瀏覽:441
蘋果安卓系統筆記本怎麼設置密碼 瀏覽:982
只能加密不能解密有什麼用 瀏覽:239
怎麼製造app 瀏覽:121
電腦解壓死機了怎麼辦 瀏覽:607
歐洲伺服器雲進銷存 瀏覽:192
程序員python和java 瀏覽:949
文件夾怎麼插入幻燈 瀏覽:282
帶孩子到崩潰怎麼解壓 瀏覽:63
戰地一被踢出伺服器會顯示什麼 瀏覽:837
怎麼看手機上所有的app 瀏覽:365
網路拚命令怎麼拼 瀏覽:836
產品經理和程序員優先選哪個 瀏覽:393
樸素的app應用怎麼推廣 瀏覽:586