如果我从一台计算机向另一台通过以太网电缆直接连接的计算机发送数据包,是使用UDP在接收计算机上不断轮询,还是使用Java RMI让发送者将数据包“提供”给接收计算机,哪个更快?
我不知道是否有任何性能差异?
发布于 2012-04-18 03:28:12
UDP通常更快,因为在传输上没有额外的确认开销,因为不需要为接收确认而烦恼。
使用TCP时,会将确认信息传回数据源。全双工通信可以在不中断传入数据流的情况下传输此确认;但是,您必须等待一段时间,才能使确认返回发送方,并由发送方对其进行处理。
虽然假设两台计算机都足够快来处理数据流,但在现实世界中,计算机可能会发现自己正在执行多个任务,这可能会中断以线速处理网络流量的能力。在这种情况下,如果发送计算机不能足够快地接收确认(或接收计算机不能足够快地发送它们),那么您可能会耗尽未确认数据包的窗口,这将导致发送计算机暂停传输,直到确定所传输的内容需要重新传输或已被接收。
但是UDP协议并不是一件好事,因为它不确认收到的解决方案是允许任何数据包在没有通知的情况下随时消失。因此,对于不需要完全传输的数据(实时语音,如果它被丢弃,从"now“数据包开始比收集所有数据包更重要),或者对于由更有效的特定于应用程序的算法管理重新传输的数据,它是理想的。
https://stackoverflow.com/questions/10197436
复制相似问题