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




  

相关话题

  如果两个IP一样,但是网段不一样,能ping通吗? 
  TCP链接之间的网络物理断开了然后有连上,这个TCP链接是否断开? 
  该怎么看待网络语言? 
  为什么常见路由器的网关默认 IP 都是 192.168.1.1? 
  服务器端口范围0~65535,假设远大于65536个并发连接,你怎么处理? 
  在网络批评声中,联想的PC销量增长,继续保持全球第一,这是什么原因? 
  MAC地址会耗尽吗? 
  ip地址是否可以取代mac地址,Fibre Channel over IP是否只使用ip地址进行通信? 
  为什么常见路由器的网关默认 IP 都是 192.168.1.1? 
  如果世界上有两个相同的媒体访问控制(MAC)地址会发生什么事? 

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





© 2024-11-12 - tinynew.org. All Rights Reserved.
© 2024-11-12 - tinynew.org. 保留所有权利