你能不能帮助我最大限度地减少数据包在我的广域网中的损失?我听说TCP阻塞控制,也就是有选择地确认(SACK)和提前确认(FACK)技术能够减轻这些数据包丢失的问题。能给我们解释一下SACK和FACK的区别吗?
多段损失可引起TCP协议失去自己的时钟,从而导致重新传输超时,引起网络性能的下降。在这些超时过程中,数据传输停止了,这将进一步降低网络的性能。所有这些事件通过增加数据传输的往返时间而降低了网络的性能,最终导致广域网性能的明显下降。据匹兹堡超级运算中心的研究人员称,在恢复丢失的段的时候,Reno TCP协议没有准确地控制网络阻塞是产生这个问题的核心原因。
使用SACK选项(也就是有选择地确认)可以在阻塞之后改善TCP协议的强大功能。这个选择可以帮助TCP协议在不用重新传输超时的情况下在一个窗口恢复多段损失。此外,SACK还能够收集有关重要状态变量的额外的信息,如阻塞状态等。这样可在恢复的阶段改善TCP协议的工作方式。
FACK(也就是提前确认)是SACK选项之外的一种特殊的算法,旨在进行阻塞控制。FACK使用SACK提供的信息在恢复期间对进入网络的数据增加更准确的控制。FACK把阻塞控制与数据恢复分开,从而获得了对进入网络的数据的更准确的控制。
FACK算法的主要思路是把最前面的有选择地确认的顺序号码作为一种标志,显示所有以前没有经过确认的部分都丢失了。这种观察方法非常有助于恢复丢失的数据。