百科问答小站 logo
百科问答小站 font logo



TCP 为什么没有基于 UDP 实现? 第1页

  

user avatar   flily 网友的相关建议: 
      

看上去,TCP是UDP的一个超集,而其实,不是,UDP有一些很重要的功能,是TCP实现不了的。举两个例子,比如授时协议,就必须通过不面向连接的UDP来实现,因为面向连接的TCP有重传机制,因为重传的因素会增加时间计算的误差。另外,当我们需要使用广播数据的时候,TCP也是没有办法实现的,传输层协议,不面向连接的UDP才能支持广播。

TCP没有是基于UDP进行,如@陈硕 所说,确实TCP出现得比UDP早,这应该是一个很重要的原因。

另外一个原因,是我看到@狼大人 在@TonySeek 的评论里面的回复想到的。我们在讨论网络结构层次的时候,往往有一个误区,就是很容易把两种不同的标准混为一谈了。我们都知道,网络的分层有分五层的有分七层的,五层的分法是人们在建设互联网的时候,工程实践的做法,而七层的分法,是OSI的分法。

OSI对于网络的描述和实际是有脱节的,看看就行,不可全信。比如说,按照OSI的分法,HTTP是应用层协议,而HTML则应该是一种表示层协议,但是,下层的HTML数据却是封装在上层的HTTP数据报文里面的。

按照RFC-1122 1.1.3的描述,传输层(或者叫运输层,Transport Layer)的主要任务,是为应用程序提供端到端(end-to-end)的通信服务。在这个描述下,UDP是完全应该划分为传输层协议的,一点误差都没有。

对于UDP,我认为这完全是把IP层的功能,原封不动的引入传输层,仅仅增加了端口和校验,并没有其他任何的功能(恕我真的不知道OOB消息是什么)。和RFC-768中所说的一样,仅仅为应用程序发送消息和数据,提供了一种最小化的协议机制(a minimum of protocol mechanism)。和TonySeek所的那样,叫做UDP也很可能是因为这个原因。




  

相关话题

  udp文件传输的问题,采用nack,怎么处理最后几个包丢失的情况? 
  内网不同网段的主机如何访问? 
  不小心删除公司数据,会怎么样? 
  对于同一段代码,循环次数有限且已知,do和for之中哪一个的效率更高?为什么? 
  QQ 等即时通讯软件的消息传输的技术原理是什么? 
  如何免费的,完整的将Word转换为PDF? 
  美宣布多州及华盛顿特区进入紧急状态,因最大燃油管道商遭网络攻击暂停运营,目前情况如何?将产生哪些影响? 
  高性能计算中心对建设世界一流大学来说重要吗? 
  如何将手中 20 多台旧电脑,组建一台超级计算机? 
  如何彻底解决「网络延迟」这个问题? 

前一个讨论
如果太阳下一秒就变成黑洞那么地球会马上被吸进去吗?
下一个讨论
如何通俗地解释一下 TCP/UDP 协议和 HTTP、FTP、SMTP 等协议之间的区别?





© 2025-06-05 - tinynew.org. All Rights Reserved.
© 2025-06-05 - tinynew.org. 保留所有权利