1

假设您在 2 个对等方之间已经有一个不可靠的有损信道。您可以建议哪些方法来可靠地传输数据并且不会降低性能?此外,底层协议不是 TCP(这已经是可靠的)。(我使用有损通道来概括这个问题。)

(AFAIK,存在一些方法,例如 RDT(rfc-908),Go Back-N。)

4

3 回答 3

1

http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Reliable_transmission

因为有人已经解决了这个问题,并且有一个或十个库(TCP/IP)可以用现有的每种语言来解决这个问题。

这是一个哲学问题吗?

于 2010-11-11T10:51:26.847 回答
0

没有性能损失通常意味着减少对反向通道的依赖,从接收器向发送器发送 ACK。这通常意味着使用数据报和使用某种形式的前向纠错 (FEC) 的自定义协议。请注意,FEC 是一种滑动比例,通常会显着降低性能,因为根据定义,您会抢先发送额外的冗余数据,以便接收方不必请求它。

http://en.wikipedia.org/wiki/Forward_error_correction http://udt.sourceforge.net/

于 2011-02-20T03:03:04.957 回答
0

正如 Steve-o 所说,FEC 和 Kdansky 建议的 Retransmission 是很好的起点。重传的主要瓶颈是往返时间,这会导致接收丢失数据包的延迟。但是,FEC 是一个完全不同的主题,适用于数据包级别。正如 Steve-o 再次所说,瓶颈变成了您通过生成冗余流引起的带宽开销。虽然看起来很简单,但不同的 FEC 方案,如 Parity FEC、Reed-Solomon、Turbo 码、Raptor Q 等……根据它们的参数,对延迟、带宽开销等有不同的影响。(主要取决于您用于生成冗余流的编码率)

于 2012-10-17T22:17:41.477 回答