百科问答小站 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也很可能是因为这个原因。




  

相关话题

  TCP链接之间的网络物理断开了然后有连上,这个TCP链接是否断开? 
  为什么根据 IP 地址查询物理所在地,而不是 mac 地址? 
  数字信号在物理层传输时,本质上是数字信号还是模拟信号,为什么? 
  5G 不是号称可以超大容量吗?为什么现在人多的地方还是会满格信号无法上网? 
  RSA的公钥和私钥到底哪个才是用来加密和哪个用来解密? 
  如何看待高校永恒之蓝病毒事件? 
  路由器进行NAT地址转换时,如何避免可能出现的如下错误? 
  若实行网络白名单会是怎样一种机制? 
  为什么身边有很多在现实生活中,比较沉默不爱说话。但在网络世界里,观点犀利,点评事物一针见血? 
  网络丢包,丢的包去哪里了? 

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





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