我想在C#中创建类似于应用程序的teamviewer.在性能方面哪种协议更好的TCP或UDP?
UDP只是在不强制执行订单的情况下发送网络消息,例如,它们可能无序发送,并且无需检查消息是否通过.
TCP强制执行数据包排序,并且有一种检查实际通过的消息的方法.所以它更可靠.
就吞吐量而言 - 例如在给定时间内传输的数据量 - 它们实际上大致相同.
UDP的优点是延迟更低.因为它不检查订单或确认收到数据包 - 您的程序在收到数据包时会收到数据包.没有等待确认.
当低延迟至关重要且消息很小时,您希望使用UDP,并且您的程序可以容忍丢失数据包和乱序数据包.我只看到它用于视频游戏(如射击游戏)用于发送用户输入.
对我来说,"teamviewer"意味着视频 - 大量数据 - 所以使用TCP.