UDP ------ UDP 和 TCP 的对比

UDP是无连接协议,客户端和服务器通信之前不需要建立握手连接;

UDP没有应答机制,所以也没有重发机制,很大的可能会造成丢包、收到重复包、乱序的情况;

UDP可以实现局域网广播功能,即某个主机可以向所有在同个子网的主机发送数据,TCP不能广播,只能单播;

TCP是有连接协议,客户端发送数据给服务器之前需要三次握手;

TCP是有重发机制,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!有重传机制,A端没有收到确认包会重新发送;

 当网络差到一定程度了,TCP的优势反而会成为劣势,比如客户端和服务器要进行频繁的连接,重发。UDP对应用层的干预较少,灵活性大,可以有针对性的解决TCP在网络差的时候表现出的问题。

对于实时性要求比较高的时候,肯定是udp,因为实时性中传输大量的数据,丢一些包不妨碍实时性;

如果是网络非常好的情况,并且要数据完整的只能说优先考虑tcp,udp也是可以做到的,但是就比较麻烦需要去做拆包分包的帧的验证和判断,但是做好了绝对比tcp好,这是在公司人力资源允许的情况下; 

因此综上所述:外网的传输优先考虑udp,实时性高的只能用udp,tcp开发相对简单,为了开发效率可以考虑;

如果是局域网的传输,想都别想就用tcp,无论是实时的还是大文件的都用tcp,因为局域网的网速是不用质疑的;

猜你喜欢

转载自www.cnblogs.com/god-of-death/p/8921361.html