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




  

相关话题

  大文件传输主要技术瓶颈都有哪些?如何处理的? 
  从技术层面看,从客观现实出发,12306 逢节必瘫情有可原吗? 
  udp文件传输的问题,采用nack,怎么处理最后几个包丢失的情况? 
  网络连接路由器会让网速变慢? 
  路由器的 USB 接口速率较慢到底是什么原因啊? 
  网络丢包,丢的包去哪里了? 
  NAT 解决了IP地址枯竭问题后,再去推广IPV6的意义是什么? 
  如何看待百度云限速黑名单? 
  网关和路由器的区别是什么? 
  电脑需不需要有杀毒软件呢? 

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





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