什么情况下适合用UDP协议,什么情况下适合用TCP协议?
总的来说
TCP协议提供可靠的服务,
UDP协议提供高效率的服务。
高可靠性的TCP服务提供面向连接的服务,主要用于一次传输大量报文的情形,
如文件传输,远程登录等;
高效率的UDP协议提供无连接的数据报服务,用于一次传输少量的报文。
即使发生传输错误,也可以重新传输并且不会为此付出多少代价。
TCP提供的是面向连接的、可靠的数据流传输,可避免数据传输错误。
面向连接的协议在任何数据传输前就建立好了点到点的连接。
而UDP提供的是非面向连接的、不可靠的数据流传输。当一个UDP数据包在网络中移动时,
发送过程并不知道它是否到达了目的地,除非应用层已经确认了它已到达的事实。
当数据传输的性能必须让位于数据传输的
完整性、
可控制性
可靠性时,
TCP协议是当然的选择。
当强调传输性能而不是传输的完整性时,
如:音频和多媒体应用,
UDP是最好的选择。
在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下
UDP也是一个好的选择
,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,
UDP较低的开销使其有更好的机会去传送管理数据。
总结 tcp 提供可靠的服务 若强调 完整性 可靠性可控性 选择tcp
udp 提供高效的服务 若强调 传输性能 选择udp
TCP:
面向连接、传输可靠(保证数据正确性,保证数据顺序)、
用于传输大量数据(流模式)、速度慢,建立连接需要开销较多
(时间,系统资源)。
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。