面试被问到一个问题:如果把TCP的可靠性加到UDP上,UDP就会可靠吗?我听到这根本没思路,还请各位大神帮助......

解决方案 »

  1.   

    当然会,但是,那样一来,UPD就不是UPD了,就成了TCP了
      

  2.   

    这个题问的很奇怪,还不如问:tcp有哪些手段来保证可靠性,从而与udp产生了本质上的不同。
      

  3.   

    与1楼同感:如果把TCP的可靠性加到UDP上当然可靠,但就不是UDP了。UDP的是因应用特点而生,在传输多媒体流时丢失少量帧并不影响音质和画面。
      

  4.   

    问这个问题的人是给自己刨坑,UDP要是把TCP的东西都加进来,那当然可靠,那还要UDP做什么
      

  5.   

    当然可靠,开销会被TCP大(最好最好的情况是和TCP一样)个人觉得,这题LZ应该没有写完,应该还有后续问题。比如如何实现一个可靠UDP,说说大致思路等等。
    考察目的可能是希望了解LZ对TCP/IP协议是否熟悉,或者面试者实际工程中用到的UDP,但是丢包太严重,不能满足实际要求,希望从LZ这“骗取”一些解决方案等。
      

  6.   

    可能大家都还不了解IBM收购Aspera的FASP吧。
    FASP就与TCP一样的地位,是用UDP实现的传输协议,在广域网上传输比TCP可以快上千倍。
      

  7.   

    UDP和TCP在底层是一样的,只是TCP做了更多的连接保持啊,完整性监视啊。
      

  8.   

    人家怎么不妥当了
    你才是不懂装懂吧.
    udp tcp不过是一个协议.发包的方式
    在底层其实没有任何区别,所有的T C P、U D P数据都是以I P数据报格式传输。TCP的可靠性谁告诉你只有一个发之前链接下?
    tcp最开始的就有三次握手,还有发送序号和确认序号,还有标志位,还有校检位。
    如果tcp所有机制都转移到udp上,那么udp就和tcp一样了.自己去看看 TCP/IP协议详解卷一.别闹这种笑话了
      

  9.   

    看看tcp ip 三卷本就行了。
      

  10.   

    如果tcp所有机制都转移到udp上,那么udp就和tcp一样了.?
    真是可笑。tcp的所有机制怎么可能转移到udp上。因为tcp是保持链接的。udp是不保持链接的。
    你在保持了链接的情况下。就不可能发送udp包。
    udp存在的意义就是保持了简洁和高效。
    你把tcp的一切都加到udp上。就完全成了tcp了。和udp没关系了。
    你说了半天也不靠谱。不管多少次握手,无非是为了确认链接成功 ,你并没有抓住问题的实质。
    发送序号和确认序号,还有标志位,还有校检位。
    这些也是为了校验数据的正确性而已。
     TCP/IP协议详解卷一我多年前就看过了。后面我还开发了不少小例子。
    其实tcp虽然保持链接,但是受网络影响,有时候也出问题。比如tcp通讯过程中。网络卡了断了同样麻烦。
    tcp的粘包问题常常很严重。
    我有大量socket通讯的经验。我说的是否准确需要有大量实践经验的人。
      

  11.   

    tcp 连接好用可靠
    udp 发送大量报文时用的
    所以 先tcp连接 建立管道(pipe)然后udp发送数据
    tcp:5000 端口连接 判断连接是否正常 一般交给线程做
    udp:5001端口接数据
    udp:5002收数据
      

  12.   

    可以肯定这个面试你的人有大量的tcp,udp通讯经验。不信你问去我的回答也是折腾了一些日子有些经验的体会
      

  13.   

    如果不考虑UDP会引起网络风暴还是相当可靠的