我正在阅读有关RPC的内容。博客,https://www.cse.iitk.ac.in/users/dheeraj/cs425/lec26.html,建议使用UDP over TCP,在进行远程过程调用时,为什么UDP比TCP更受欢迎?
在进行远程过程调用时,UDP通常不优先于TCP。事实上,大多数RPC技术的实现,如CORBA,XML-RPC,SOAP,Java RMI,......使用TCP而不是UDP作为底层传输。 TCP在这里是首选,因为与UDP相反,它已经关注可靠性(处理丢包,重复,重新排序),并且还可以轻松透明地处理任意大小的消息。
您引用的博客是指与NFS一起使用的经典Sun-RPC,主要用于本地网络 - 与当前在更复杂的网络环境中使用的RPC技术相反。在这种环境中(此前很久以前)UDP提供了比TCP更小的开销和更快的网络问题恢复,因为没有初始握手和必要的重传,重新排序......完全控制RPC层和可以调整到特定用例。因此,虽然在这种环境中优先选择UDP用于特定的RPC,但不能说UDP应该是任何类型的RPC的首选。