QQ采用什么传输协议?
QQ文件傳輸協(xié)議采用TCP,UDP
(1)UDP協(xié)議是無連接方式的協(xié)議,它的效率高,速度快,占資源少,但是其傳輸機制為不可靠傳送,必須依靠輔助的算法來完成傳輸控制。QQ采用的通信協(xié)議以UDP為主,輔以TCP協(xié)議。由于QQ的服務器設計容量是海量級的應用,一臺服務器要同時容納十幾萬的并發(fā)連接,因此服務器端只有采用UDP協(xié)議與客戶端進行通訊才能保證這種超大規(guī)模的服務。?
(2)QQ客戶端之間的消息傳送也采用了UDP模式,這不同于國外的ICQ在客戶端之間采用TCP進行通訊的模式。因為國內的網絡環(huán)境非常復雜,而且很多用戶采用的方式是通過代理服務器共享一條線路上網的方式,在這些復雜的情況下,客戶端之間能彼此建立起來TCP連接的概率較小,嚴重影響傳送信息的效率。而UDP包能夠穿透大部分的代理服務器,因此我們在開發(fā)QQ的時候選擇了UDP作為客戶之間的主要通信協(xié)議,因此網友會覺得用QQ傳送信息要比ICQ及其它采用TCP協(xié)議的ICQ類軟件快。
(3)當然,UDP協(xié)議優(yōu)點突出,缺點也很明顯:UDP包的傳送是不可靠的傳輸,它不象TCP一樣有包重傳等機制,因此采用UDP協(xié)議的信息在傳送過程中很容易丟失,這樣就需要輔助的算法實現包重傳機制以保證信息不會丟失,而QQ服務器的負荷非常重,因此在QQ 99b 0425之前我們只是在客戶端到客戶端之間傳送消息時采用了這個輔助的機制,當消息在客戶間直接傳送無法到達時就需要通過服務器來中轉,由于服務器端在老版本的時候迫于負荷過重的壓力沒有對主動發(fā)往客戶端的信息進行傳輸控制,因此在老版本的時候容易造成通過服務器中轉的信息丟失的現象。在QQ99c 0725之后我們單獨設立出了幾臺專用的服務器采用包重傳機制來中轉消息(僅限于QQc之間傳遞的消息),確保通過服務器轉發(fā)的消息也能夠發(fā)送到對方的QQ。
?
總結
以上是生活随笔為你收集整理的QQ采用什么传输协议?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数指针和函数指针数组及其应用
- 下一篇: ping的实现和代码分析