常往光明快乐一面看,这就是我一生成功的诀窍。——科克
TCP 和UDP 是OSI模型(开放式通信系统互联参考模型)中的运输层中的协议。TCP提供可靠的通信运输传输,UDP常被用于让广播和细节控制
交给应用的通信传输。
区别:
TCP是面向连接的(如打电话前要先拨号建立连接)。UDP是面向非连接的,即发送数据前不需要建立连接。
TCP提供可靠的传输,即传输数据无差错,不丢失,按序到达(多用于网页注册账号、转账等)。UDP提供不可靠的传输,即传输过程中可能会丢包、重复、延时、乱序。
TCP传输速度慢。UDP传输速度快(多用于IP电话,实时视频等,由于会不断收到新的包,丢失的个别包会被新的包覆盖,对于数据精确性要求不高的数据影响不大)
TCP常用于传输大量数据。UDP常用于传送少量数据。
每一条TCP连接只能是点对点的。UDP支持一对一、一对多、多对一、多对多的交互通信。
TCP可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。TCP面向对象连接,只有确认通信对端存在时才会发送数据,从而控制通信流量的浪费。
TCP通过检验、序列号、确认应答、重发控制、拥塞控制、连接管理和窗口控制等机制实现可靠性运输,开销很大。
UDP不提供复杂的控制机制,不能探测重复、乱序的包,对丢包问题也不做处理,所以说它不可靠,但开销很小。
TCP例子:
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
UDP例子:
----------------------------------------------------------------------------