Never give uphttp://blog.yesky.com/Blog/cheerful/复制地址

稻草芭比

公告栏

像花儿一样~


控制面板
日历
<2008年10月>
SuMoTuWeThFrSa
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
留言簿(50)
文章分类
文章档案
友情链接
我的博客圈
发现很多情况下,msn传输文件比qq要慢,倒不是说msn没有快的时候,但是大部分的时候是真的比QQ慢,连我这种神经比较大条的人都注意到了,google了一下,早就有人做了解答,基本上就是说msn传输文件是使用TCP,而QQ使用UDP,剩下的事情就是论证TCP传输文件没有UDP快。大概的就是下面的几个观点:

  1. TCP是可靠的,需要验证数据是否到达和是否正确,而UDP是不可靠的,少做了很多事情,所以MSN的文件传输比QQ慢。

  我看了当时就想笑,也用了QQ不少时日了,从来也没有发现传输文件有问题的,用UDP作协议也很久了,不做应用层验证重传的代码,我还真不敢写。这个理由,失败。

  2. TCP建立连接需要3次握手,而UDP不需要,所以TCP慢。

  3次握手这个事实倒是千真万确,还好我没有那么容易被忽悠,两个人谈话之前要握握手的确要稍微费上几秒钟,但是这个关谈话的语速啥事情?假如网络的ping值达到300ms,各位看官喜欢网络游戏的,估计都不会玩了,否则垂死的boss会高兴的发现你忽然变成了木偶可以随便殴打不还手,最后你只能骂骂电信网通然后复活几分钟后又是一条好汉。但是对于TCP,这样的ping值,3次握手一般都不需要1秒钟,把这个定为文件慢慢传的罪魁祸首,似乎太不靠谱了,这个理由还是失败。

  3. TCP一旦建立链接,路由就确定了,而UDP是不确定的路由方式,谁速度快走谁的线路。

  这样说就说明没有作者好好理解TCP/IP协议了,TCP的链路只是一个逻辑的,又没有建立物理链路,下面跑的还是IP包,这个包走这条路,那个包完全可能走另外的路,这点TCP和UDP没有两样。理由继续失败。

  4. msn服务器在国外?

  有些道理,但是我听一个美国的朋友说他也喜欢用QQ传文件的。

  那到底是怎么回事呢?是因为微软没有做好?(题外话,个人的确觉得MSN相比QQ的飞速进步而显得动作迟缓)QQ的Fans开始摩拳擦掌,一些不那么喜欢M$的估计就要开始丢板砖了。不管立场如何,事实还是要探寻一下,本着不求甚解,薄积薄发,浅入浅出的精神,我认为有几个可能原因:

  1. 两个传文件客户端都在NAT后面的时候 (你不知道NAT啥意思?比如多个人通过路由器共享一个猫上网,那么你们一般就是在NAT后面了),从技术实现上讲,TCP在这种情况下穿越NAT比UDP麻烦得多。UDP只要开始几个穿越NAT的协商包需要服务器转一下,后面的文件数据可以两个客户端之间直接传输搞定,但是一般TCP就只能全程由服务器中转了,你说哪一个会比较快? 为什么TCP需要服务器中转?先看看NAT吧,听说有高人可以用raw sock搞定,反正我没有中间服务器搞不定。

  2. 但是即使上面的条件不成立,msn还是一般比QQ慢的。问题还是在出在前面提到的验证数据可靠性上面,TCP是可靠的,UDP是不可靠的,但是用UDP做传输文件这档子事情,肯定要在应用层写一个验证的协议,否则传过来的文件缺胳膊少腿,会被用户骂死的。说是协议,其实也不难,打个比方吧:

  long long ago,贾宝玉在北京,林黛玉在长沙,怎么互诉衷肠呢,派家丁送信!路途遥远,怎么知道信收到没有?打电话问?那时候发明了这个就不用送信了,只能看家丁是否带了回信来了。假如发现一个家丁一个月还没有回,那就多半迷路堵车遭遇山贼或者开小差到扬州花差快活去了,再派一个人送吧! TCP就是这么做的,UDP在应用层协议一般也需要这么做,但是实现上有时候往往有区别。

  北京到长沙之间的路,并不是只有一个人跑的,常常很拥堵,假如发现家丁好久没有回了,TCP版的贾宝玉再派人送信是要的,但是他会比较识大体,他会少写信,降低发送速度,原来一天一封,现在可能一周一封了。他想,大家假如都这样,路就不会那么拥挤了。这做法很有道理,假如塞车了大家都想见缝插针,只能越来越塞,最后大家都动不了,还不如彼此容让慢慢排队。而UDP版本的贾宝玉假如也这么集体主义,那么他就叫做TCP友好流,就假如它只管自己拼命挤,就是非TCP友好的。

  所有的TCP协议假如发现拥塞,都会马上降低自己的发送速度。假如基于UDP的协议不这么做的话,原来拥塞的IP包加上重发的包,网路只会越来越拥塞,最后所有的坚持集体主义的TCP流都会做出牺牲,把带宽让给一些非TCP友好的UDP流。所以除非网络状况非常好,否则TCP是拼不过非TCP友好的协议的。

  我怀疑(仅仅是怀疑而已,我也没有条件和时间验证),QQ的文件传输机制是不那么TCP友好的,它抢带宽更加"我能",这样虽然对于整个网络负荷不是什么好事,但是对于单个用户,就见仁见智了,就好像大家看待多线程下载或者p2p一样。


作者:笨笨 阅读() 评论()  编辑 发表于:2007-09-06 14:45
相关内容
文章评论

  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • 8546566
    天极博友 | 2007-09-11 15:40
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • 终于见到真正的高手了


    ------------------
    myblog:
    http://hi.baidu.com/suruiqiang
    天极博友 | 2007-09-11 16:36
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • 不错哈,顶
    天极博友 | 2007-10-04 19:16
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • 好啊我遇到高手了
    天极博友 | 2007-11-05 14:35
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • czwzan001
    zuobdxx
    [url=http://www.mygamestock.com]wow gold[/url]
    [url=http:/www.pumppump.cn]螺杆泵[/url]
    [url=http://www.pumppump.cn]隔膜泵[/url]
    [url=http://www.marucollet.jp]毛穴 黒ずみ[/url]
    [url=http://www.jdcf168.com.cn]炒股软件[/url]
    [url=http://www.shdongfang.com]东方医院[/url]
    [url=http://goldmance.com/0801]wow gold[/url]
    [url=http://gontanksell.com/0801]wow gold[/url]
    [url=http://lemancesell.com/0801]wow gold[/url]
    [url=http://limancer.com/0801]wow gold[/url]
    [url=http://lemance.com/0801]wow gold[/url]
    [url=http://lomanxi.com/0801]wow gold[/url]
    [url=http://tuboty.com/0801]wow gold[/url]
    天极博友 | 2008-08-01 13:32
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • czwzan001
    zuobdxx
    <a href=http://www.mygamestock.com>wow gold</a>
    <a href=http:/www.pumppump.cn>隔膜泵</a>
    <a href=http:/www.pumppump.cn>螺杆泵</a>
    <a href=http://www.marucollet.jp>毛穴 黒ずみ</a>
    <a href=http://www.shdongfang.com>东方医院</a>
    天极博友 | 2008-08-01 13:32
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • czwzf001
    czwzhufeng
    [url=http://itemrate.com]wow gold[/url]
    [url=http://www.jdcf168.com.cn">http://www.jdcf168.com.cn]股票软件[/url]
    [url=http://www.pumppump.cn">http://www.pumppump.cn">http://www.pumppump.cn">http://www.pumppump.cn]螺杆泵[/url]
    [url=http://www.pumppump.cn">http://www.pumppump.cn">http://www.pumppump.cn">http://www.pumppump.cn]油泵[/url]
    [url=http://www.pumppump.cn">http://www.pumppump.cn">http://www.pumppump.cn">http://www.pumppump.cn]隔膜泵[/url]
    [url=http://www.jdcf168.com.cn">http://www.jdcf168.com.cn]黑马股[/url]
    [url=http://blog.tom.com/xufang]股票软件[/url]
    [url=http://czwxht.blog.chinajavaworld.com]隔膜泵[/url]
    [url=http://blog.people.com.cn/blog/u/miss]黑马股[/url]
    [url=http://blog.0452e.com/blog.php?uid=33891]油泵[/url]
    [url=http://www.586tv.com/blog/blog.php?uid=113]螺杆泵[/url]
    天极博友 | 2008-09-01 08:52
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • rtyrty09
    syj2008wer9
    [url=http://item4sale.com]wow gold[/url]
    [url=http://item4sale.com/faq.aspx]wow gold[/url]
    [url=http://item4sale.com/gvgold38.html]wow gold[/url]
    [url=http://item4sale.com/Buy%20Final%20Fantasy%20XI%20Gil.html]wow gold[/url]
    天极博友 | 2008-09-01 09:01
  • # re: 究竟谁更快?MSN和QQ文件传输速度解析
  • rtyuer9 syj2008wer9 wow gold wow gold wow gold wow gold wow gold item4sale item4sale item4sale item4sale item4sale buy AoC gold buy AoC gold buy AoC gold buy AoC gold 连锁加盟洗衣 连锁加盟洗衣 连锁洗衣加盟 连锁洗衣加盟 烫平机 烫平机 工业水洗机 工业水洗机 连锁加盟干洗 连锁加盟干洗 洗染店 洗染店 洗染设备 洗染设备 PDM PDM PLM PLM wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold
    rtyuer9 | 2008-09-03 09:31
  • # http://item4sale.com
  • rweqwew9 syj2008wer9 wow gold wow gold wow gold wow gold wow gold item4sale item4sale item4sale item4sale item4sale buy AoC gold buy AoC gold buy AoC gold buy AoC gold 连锁加盟洗衣 连锁加盟洗衣 连锁洗衣加盟 连锁洗衣加盟 烫平机 烫平机 工业水洗机 工业水洗机 连锁加盟干洗 连锁加盟干洗 洗染店 洗染店 洗染设备 洗染设备 PDM PDM PLM PLM wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold
    http://item4sale.com | 2008-09-10 13:50

    发表评论
    标题 *  
    姓名 *  
    内容 *  
       验证码: *       
           
    版权声明:天极是本Blog托管服务提供商。如本文牵涉版权问题,天极不承担相关责任,请版权拥有者直接与文章作者联系解决。
    Powered by:

    Copyright © 顽石