我正在阅读有关RPC
的信息。博客,
https://www.cse.iitk.ac.in/users/dheeraj/cs425/lec26.html建议在进行远程过程调用时使用UDP
而非TCP
,为什么UDP
比TCP
更受青睐?
答案 0 :(得分:5)
UDP而不是TCP。实际上,大多数RPC技术的实现(例如CORBA,XML-RPC,SOAP,Java RMI等)都使用TCP而不是UDP作为基础传输。此处首选TCP,因为与UDP相反,它已经在乎可靠性(处理数据包丢失,重复,重新排序),并且还可以轻松透明地处理任意大小的消息。
您引用的博客提到了与NFS一起使用的经典Sun-RPC,它主要用于本地网络,这与在更复杂的网络环境中经常使用的当前RPC技术相反。在这种环境中,并且此时(很久以前),UDP没有TCP的开销较小,而且从网络问题中恢复的速度比TCP小,因为没有初始握手,不需要进行重新传输,重新排序...完全控制RPC层,并且可以调整到特定的用例。因此,尽管在这种环境下将UDP首选用于特定的RPC是有道理的,但是不能说UDP应该被首选用于任何类型的RPC。