我确信这有一些古老的遗留原因,但它是什么?这似乎是一项面向可靠数据传输的服务。

有帮助吗?

解决方案

  • NFS 最初设计用于丢失率非常低的 LAN。
  • UDP 速度更快,开销更少
  • NFS 是无状态的,因此客户端重试很简单

请注意,NFS v3+ 可以使用 TCP。

其他提示

UDP是NSF版本默认的(没人真的应该利用这些天),但NFSv3的默认使用TCP。 TCP坐骑更可靠,你知道你有一个网络问题的速度远远超过使用UDP。

UDP是无状态的,TCP不大,但TCP有没有适合NFS,或者不如说是NFS要管理的细节很多预定义的属性。特别是,当TCP是做包传送,它不管理超时等

使用UDP,你输了,你并不特别想任何方式开销。当NFS文件系统时,原以为是,该系统不写,如果只有一半完成,这将是坏...所以NFS(硬模式)将继续重试永远完成交易,1分钟, 5,10,和小时,一天......当连接回来的交易可能继续完成......

NFS看起来后的“状态”,而不是TCP,其设计建立了一个新状态的新的连接(或再连接)上,该连接(和状态)可以为任何(硬件)的原因和一个新的连接止跌”死牛逼坚持这种状态......想想处理文件......你只是独自离开的过程中,NFS连接跌出了一点,但是当它回来的时候,一切都将只是继续。这些天的应用更聪明,路线有很多,事情更加模块化,而且我们有很多更不耐烦......如果不打算打算..有人得到一个电话,就具有登录,并得到它去反正他们能......早在一天,当它可以离开了,这是一个更完美的事......今天好,它的工作方式是静止的,但现在有这么多的更多的选择,而且往往有更多的人现在更迅速固定的一切。另外两端的想法传递会话对象来回,而不是作业之间犯,直到双方同意,他们就完成了 - 早在一天NFS做了很多这为你....

这个类比有点类似RS232的东西是如何工作的?电子会做它的东西,并加载它们的缓冲区,并且将得到充分不得不停止(或丢失信息),其可以通过信息的该流(空他们的缓冲区,并继续)时,CTS(清除发送引脚在插头上的金属针)是高或低(什么都它应该是)。

我的猜测是,它可能是遗留(历史)的原因。本来NFS可能是使用低延迟网络,其中有错误的非常可能性不大,所以发起三次握手来(与所有消息的双向确认一起)建立TCP连接的开销压倒的简单使用无连接协议如UDP。

当使用UDP作为传输协议,推测这将是到NFS客户机如果必要管理重传。

当协议是要由应用程序本身来管理使用UDP。该应用程序可以对如何做一个更好的主意,或者它可能会更快(应用程序的特殊条件下)。 TCP是很不错,但有很多与之相关联的开销。

性能。 UDP比TCP低得多的开销。在另一方面NFS必须自行处理,然后可靠的传输(相对于TCP),但因为这是局域网,其中连接问题和封装下降是一个协议(或更好:应该是)不是一个问题,它的性能优化。

UDP也使用,因为它可以大大减少存储器使用量。在20世纪80年代,当NFS最初被开发,你就会有一个UNIX系统一样的RAM 4-8MB,和(至少在学术环境)中的“服务器”可能只是被这些4-8MB系统之一,几额外的磁盘迷上了它。在服务器上的RAM使用是个大问题,你可能已经失去了几个MB上,我一直作为硬盘缓存更好地使用TCP缓冲区。它也使得容易处理存储器的压力,一个负担过重NFS服务器可以简单地丢弃请求。

在无状态的UDP连接最小化网络流量,如NFS服务器向客户机发送所述客户端被授权访问共享卷后的cookie。这cookie是存储在服务器侧的随机值,并与从客户端RPC请求一起传递。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top