當前位置:編程學習大全網 - 編程語言 - Python用UDP模擬QQ問題

Python用UDP模擬QQ問題

這個問題很有意思!我也想了很久。如果大家了解UDP和TCP的區別。很多人會告訴妳。TCP協議因為是可靠的!它會驗證信息是否發送到目的地。而且TCP連接和斷開時都會經過看似漫長3次握手。而UDP因為是不可靠的

它沒有驗證機制更沒有什麽握手打招呼!我們聊天肯定希望速度越快越好不要有延時,所以有很多人或許會告訴妳UDP比TCP快得多!所以QQ用UPD。

這個從理論上講是對的!但大家忽視了壹個客觀因素。也就是TCP的驗證和3次握手到底能用多少時間,這裏可以告訴妳最多不會超過0.5秒也就是500毫秒

這個速度玩遊戲的人都知道很慢了。如果說0.5秒妳覺得我估計少了那麽1秒怎麽也夠了吧

對於我們人來說1秒不是眨眼的功夫嗎。所以說以上所說不是QQ使用UDP的原因,起碼不是主要原因。(其實QQ也有驗證機制,只不過這個驗證機制是由應用層其他協議完成的)那麽就要更深壹層去探討UDP和TCP

在傳輸上區別了。首先我個人認為最主要是UPD包比TCP包要少12個字節。12個字節差距雖然很微小

但量變到壹定程度那就有質的變化。現在我們2M寬帶理論256KB

每秒,就算200KB吧

等於1600個字節

大家可以算這個差距。還有壹個更深層原因也就是UDP“素質”很差。TCP就很紳士。

為什麽說UDP素質不高

是因為UDP就像馬路那種見縫插幀的司機

誰也不讓

拼了命往前沖

不管妳路上有多擠

更不會去想維持壹下次序。TCP就不會!壹旦TCP覺得路上擁擠就會自覺降低發送速度

他會努力維護次序。這樣壹進壹退差距就大了。所以我覺得這才是QQ使用UDP的主要原因!也似乎也符合騰訊壹貫作風

呵呵

MSN使用TCP

就要慢壹些

不信妳可以試試

  • 上一篇:讀機械類專業是種什麽感受?
  • 下一篇:怎麽制作題庫搜索 dreamweaver
  • copyright 2024編程學習大全網