networking层可靠性

我有一个关于networking层可靠性的问题,我认为在networking层有一个冗余,我的问题是为什么链路层和端到端可靠性都需要?

端到端是必需的,因为并不是所有的networking层都特别可靠,只有terminal系统知道真正需要多less可靠性。 而且,如果有多于一个有损链路,则只有terminal系统知道哪些分组真的需要重传(或校正)以及端到端的可靠性,因此最大限度地减less了额外的工作以弥补损失。 最后,所有不丢包的手段都需要时间。 如果一条长path上的每一跳都达到近乎完美的可靠性,那么总延迟将是巨大的。

端到端原则是使互联网实用的原因。

当链路层协议提供可靠的传输时,它保证通过链路移动每个networking层数据块,而不会出现任何错误。 链路层可靠性通常用于易出现高错误率的链路,如无线等,而不是通过传输或应用层协议强制进行数据的端到端重传。

在光纤情况下,networking传输额外的比特是开销。

好吧,所以你有一台服务器。而且你想要很好的可用性和冗余,所以你把它与一个网卡连接到一台交换机。

这是一个好的开始,如果离开,networking是相当可靠的。

更好的冗余将是连接2个网卡到同一台交换机,使用STP桥接,以确保您不会在networking中的循环。
这允许一个NIC出现故障,仍然让您连接。 (根据NIC的绑定模式)

更好的办法是连接2个网卡到不同的交换机。 现在你可能会失去一个网卡和一台交换机。

为了获得更大的冗余,您需要查看networking如何超越局域网。 由多个不同路由提供的WAN冗余。 不同的我的意思是交通采取不同的路线完全外出到互联网。 (比如,办公室里的ADSL和Cable)在一个数据中心里,最好通过获取一些IP空间来完成,并通过BGP向上游的传输/对等提供商宣布。

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

为了获得极高的可靠性,您需要将多个电源馈送到多个机架中,位于多个全球不同的数据中心位置,每个机架都具有上述所有冗余内置function。

(以及确保您的服务器具有双电源并且RAID级别≥1的磁盘中至less有2个!)