如果我要将数据包从一台计算机发送到另一台计算机,通过一根以太网电缆直接连接,是否可以使用UDP在接收计算机上不断轮询,或者使用Java RMI让发送方“给”该数据包到接收计算机?
我不知道是否有任何性能变化?
答案 0 :(得分:0)
执行UDP通常更快,因为传输上没有额外的确认开销,因为不需要打扰收据确认。
使用TCP,会有一个确认传回数据源。全双工通信可以在不中断输入数据流的情况下进行此确认的传输;但是,您必须等待一些的时间来确认该确认以返回发件人,并且该发件人将对其进行处理。
虽然假设两台计算机都足够快以处理数据流处理,但在现实世界中,计算机可能会发现自己正在执行多项任务,这些任务可能会中断以线速处理网络流量的能力。在这种情况下,如果发送计算机无法足够快地接收到确认(或接收计算机无法足够快地发送它们),那么您可能会耗尽未确认数据包的窗口,这将导致发送计算机停止传输,直到它确定要么发送的内容需要重新传输或收到。
但UDP不是玫瑰花,因为它不承认收到的解决方案是允许任何数据包在任何时候不经通知而消失。因此,它非常适用于不需要完全传输的数据(实时语音,如果它被删除,从“现在”数据包开始比收集它们更重要),或者用于管理重传的数据通过更有效的特定应用算法。