Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在进行远程过程调用时,UDP优于TCP?_C_Tcp_Udp_Rpc - Fatal编程技术网

为什么在进行远程过程调用时,UDP优于TCP?

为什么在进行远程过程调用时,UDP优于TCP?,c,tcp,udp,rpc,C,Tcp,Udp,Rpc,我在读关于RPC的书。博客,, ,建议使用UDP over TCP,在进行远程过程调用时,为什么UDP优于TCP?在进行远程过程调用时,UDP通常不优于TCP。事实上,大多数RPC技术的实现,如CORBA、XML-RPC、SOAP、JavaRMI等等。。。使用TCP而不是UDP作为基础传输。TCP在这里是首选的,因为与UDP相反,它已经关心处理数据包丢失、重复、重新排序的可靠性,并且还可以轻松透明地处理任意大小的消息 您引用的博客提到了与NFS一起使用的经典Sun RPC,它主要用于本地网络,而

我在读关于RPC的书。博客,,
,建议使用UDP over TCP,在进行远程过程调用时,为什么UDP优于TCP?

在进行远程过程调用时,UDP通常不优于TCP。事实上,大多数RPC技术的实现,如CORBA、XML-RPC、SOAP、JavaRMI等等。。。使用TCP而不是UDP作为基础传输。TCP在这里是首选的,因为与UDP相反,它已经关心处理数据包丢失、重复、重新排序的可靠性,并且还可以轻松透明地处理任意大小的消息


您引用的博客提到了与NFS一起使用的经典Sun RPC,它主要用于本地网络,而当前的RPC技术通常用于更复杂的网络环境。在这种环境中,而且在很久以前的这个时候,UDP提供了比TCP更小的开销和更快的从网络问题中恢复,因为没有初始握手和必要的重新传输、重新排序。。。完全控制RPC层,并可根据特定用例进行调整。因此,尽管在这种环境中为特定RPC首选UDP是有意义的,但不能说UDP应该为任何类型的RPC首选。

在这里@JohnZwinck。