网络层可靠性

网络层可靠性

我对网络层的可靠性有一个疑问,我认为在网络层存在冗余,我的问题是为什么链路级和端端可靠性都需要?

答案1

端到端是必需的,因为并非所有网络层都特别可靠,只有终端系统知道真正需要多少可靠性。此外,如果有多个有损链路,只有终端系统知道哪些数据包真正需要重新传输(或纠正),因此端到端可靠性可以最大限度地减少补偿丢失的额外工作。最后,所有不丢失数据包的方法都需要时间。如果长路径上的每一跳都追求近乎完美的可靠性,那么整体延迟将非常大。

端到端原则使得互联网变得实用。

答案2

当链路层协议提供可靠传输时,它保证每个网络层数据报在链路上无错误地传输。链路层可靠性通常用于容易出现高错误率的链路(如无线等),而不是强制通过传输层或应用层协议端到端地重新传输数据。

在光纤情况下,传输额外的比特对于网络来说是一种开销。

答案3

好的,所以您有一台服务器..并且您想要相当好的可用性和冗余度,所以您可以使用一个 NIC 将它连接到一个交换机。

这是一个好的开始,如果不加管控,网络是相当可靠的。

更好的冗余是将 2 个 NIC 连接到同一交换机,使用 STP 桥接确保网络中不会出现循环。
这样即使一个 NIC 发生故障,您仍可保持连接。(取决于 NIC 的绑定模式)

更好的办法是将 2 个 NIC 连接到不同的交换机。这样,您就只剩下一个 NIC 和一个交换机了。

为了实现更大的冗余度,您需要研究网络如何超越 LAN。WAN 冗余度由多个不同的路由提供。所谓不同的意思是,流量通过完全不同的路由到达互联网。(例如,办公室中的 ADSL 与 Cable)在数据中心,最好的方法可能是获取一些 IP 空间,并通过 BGP 将其通告给上游传输/对等提供商。

您还可以做很多事情来使您的应用层可靠。多个服务器位于多个交换机上,连接到多个路由器。
您的某些服务器可能需要运行诸如 memcached 之类的程序,以便您共享会话信息并允许您的用户在服务器之间无缝转换。

为了实现极高的可靠性,您需要考虑在全球多个不同的数据中心位置将多个电源馈入多个机架,每个机架都内置有上述所有冗余功能。

(同时确保您的服务器具有双电源和至少 2 个 RAID 级别 >= 1 的磁盘!)

相关内容