为什么NFS从UDP转换为TCP作为版本4中的标准协议?

发布于 2025-02-04 04:58:46 字数 70 浏览 4 评论 0 原文

为什么将UDP用作NFS系统中的标准协议,直至版本4版本中的版本3和TCP?不幸的是,我还没有发现有关导致这一动机的任何信息。

Why was UDP used as the standard protocol in NFS systems up to version 3 and TCP in version 4? Unfortunately, I have not yet found anything about the motives that led to this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

楠木可依 2025-02-11 04:58:46

提供了有关为什么首选UDP的一些见解:

与UDP一起使用NFSV2或NFSV3时,在正常条件下,无状态的UDP连接比TCP的协议开销较小,TCP可以转化为在非常干净,非质量的网络上的更好性能。

...以及为什么要进行允许并最终需要TCP的举动:

但是,由于UDP是无状态的,如果服务器出乎意料地关闭,则UDP客户端继续使用服务器的请求使网络饱和。因此,连接到NFS服务器时,TCP是首选协议。

当前RFC 还指出,TCP还指出,TCP还可以促进运输安全而无需隧道隧道:

从历史上看,NFSV2和NFSV3服务器已驻留在端口2049上。NFS协议的注册端口2049 [RFC3232]应为默认配置。为NFS服务使用注册端口意味着NFS客户端将不需要使用[RFC1833]中所述的RPC绑定协议;这将允许NFS运输防火墙。

为什么专门为TCP?实际上,RFC说SCTP也可以接受(尽管TCP支持是强制性的):

,如果NFSV4实现支持IP网络协议的操作,则NFS和IP之间的受支持的传输层必须是IETF标准化的传输协议,以避免网络拥塞;这样的传输包括TCP和流控制传输协议(SCTP)。为了增强互操作性的可能性,NFSV4实现必须支持TCP传输协议的操作。

最后,针对性能,选择了UDP的原始原因,RFC说:

如果将TCP用作传输,则客户端和服务器应使用持久连接。这将通过短暂的连接来防止TCP的拥塞控制削弱,并通过消除对SYN握手的需求来提高大区域网络(WAN)环境的性能。

最终,只有Sun Microsystems的工程师(作为NFS的创造者)选择,仅选择“ noreferrer”> ietf nfs for nfs 致力于TCP。

The Red Hat NFS documentation provides some insight about why UDP was preferred:

When using NFSv2 or NFSv3 with UDP, the stateless UDP connection under normal conditions has less Protocol overhead than TCP which can translate into better performance on very clean, non-congested networks.

...and why the move to allow and eventually require TCP was made:

However, because UDP is stateless, if the server goes down unexpectedly, UDP clients continue to saturate the network with requests for the server. For this reason, TCP is the preferred protocol when connecting to an NFS server.

The current RFC also notes that TCP facilitates transport security without needing to tunnel:

Historically, NFSv2 and NFSv3 servers have resided on port 2049. The registered port 2049 [RFC3232] for the NFS protocol SHOULD be the default configuration. Using the registered port for NFS services means the NFS client will not need to use the RPC binding protocols as described in [RFC1833]; this will allow NFS to transit firewalls.

Why TCP specifically? Actually, the RFC says SCTP is also acceptable (though TCP support is mandatory):

Where an NFSv4 implementation supports operation over the IP network protocol, the supported transport layer between NFS and IP MUST be an IETF standardized transport protocol that is specified to avoid network congestion; such transports include TCP and the Stream Control Transmission Protocol (SCTP). To enhance the possibilities for interoperability, an NFSv4 implementation MUST support operation over the TCP transport protocol.

Finally, addressing performance, the original reason UDP was chosen, the RFC says:

If TCP is used as the transport, the client and server SHOULD use persistent connections. This will prevent the weakening of TCP's congestion control via short-lived connections and will improve performance for the Wide Area Network (WAN) environment by eliminating the need for SYN handshakes.

Ultimately, only the engineers at Sun Microsystems (as the creators of NFS) know the exact reasons UDP was chosen and only the IETF working group for NFS (as the maintainers) know why the switch to TCP was made.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文