QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?
登陸采用TCP協議和HTTP協議,你和好友之間發送消息,主要采用UDP協議,內網傳文件采用了P2P技術。
QQ對于普通用戶是采用UDP協議,對于會員用TCP協議
總來的說:
1.登陸過程,客戶端client 采用TCP協議向服務器server發送信息,HTTP協議下載信息。登陸之后,會有一個TCP連接來保持在線狀態。2.和好友發消息,客戶端client采用UDP協議,但是需要通過服務器轉發。騰訊為了確保傳輸消息的可靠,采用上層協議來保證可靠傳輸。如果消息發送失敗,客戶端會提示消息發送失敗,并可重新發送。
3.如果是在內網里面的兩個客戶端傳文件,QQ采用的是P2P技術,不需要服務器中轉。
首先,QQ并不是完全基于UDP實現。比如在使用QQ進行文件傳輸等活動的時候,就會使用TCP作為可靠傳輸的保證。
使用UDP進行交互通信的好處在于,延遲較短,對數據丟失的處理比較簡單。同時,TCP是一個全雙工協議,需要建立連接,所以網絡開銷也會相對大。如果使用QQ語音和QQ視頻的話,UDP的優勢就更為突出了,首先延遲較小。最重要的一點是不可靠傳輸,這意味著如果數據丟失的話,不會有重傳。因為用戶一般來說可以接受圖像稍微模糊一點,聲音稍微不清晰一點,但是如果在幾秒鐘以后再出現之前丟失的畫面和聲音,這恐怕是很難接受的。
TCP和UDP都是傳輸層協議,QQ的消息為應用層內容,需要通過傳輸協議封裝傳輸。
TCP為可靠的面向連接協議,建立TCP連接需要兩端三次握手協商(雙方在線)。
UDP為不可靠的無連接協議,數據傳輸出去,無需連接兩端,確認是否到達(對端可以不在線)。
QQ采用UDP協議提高了消息傳輸的效率,無需兩端建立連接,即使對端不在線也能傳輸消息。
UDP協議是無連接方式的協議,它的效率高,速度快,占資源少,但是其傳輸機制為不可靠傳送,
必須依靠輔助的算法來完成傳輸控制。QQ采用的通信協議以UDP為主,輔以TCP協議。由于QQ的服務器設計容量是海量級的應用,一臺服務器要同時容納十幾萬的并發連接,因此服務器端只有采用UDP協議與客戶端進行通訊才能保證這種超大規模的服務。
總結
以上是生活随笔為你收集整理的QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试常考题汇总
- 下一篇: 死锁产生的原因及四个必要条件