tcp/udp 区别

来源:互联网 发布:天恒php时时彩源码 编辑:程序博客网 时间:2024/06/07 01:43

区别

1.tcp面向连接与udp不面向连接。

2.tcp是可靠传输,udp是不可靠传输。tcp可以保住数据的正确交付,udp丢包后就不在处理,tcp保住顺序性,udp不保住。

3.对系统资源的要求(TCP较多,UDP少),tcp需要维持连接状态所以需要的资源更多。(所以tcp的可靠也是需要成本的,需要在内核中维持它的状态)

4.tcp是基于字节流的,udp是基于数据报的。

5 udp把应用交付的报文即不拆分也不合并,加上包头就交给了网络层。而tcp可能会对相应的数据进行拆分。

6 udp速度更快,tcp因为有确认机制,所以路径越远效率越低。

7 tcp 有拥塞控制,保证了尽可能的不丢包。

场景

udp 一般用于实时通讯,就是电话或视频的时候就会用udp。因为tcp 每发送一条数据都会有一次确认,如果丢包了的话,对端或一直等直到对端把数据包发过来,如果超时甚至可能发送重置报文段,把连接关闭,造成通话或视频中断。而udp 是无连接的,所以即使udp丢包,只是画面或声音的缺失,不影响使用,所以我们使用udp做实时通讯。

tcp 一般应用浏览器,因为http交互数据时连接中断和等待重传是可以接受的并且连接交互数据必须保证数据的可靠,所以一般浏览器用的都是tcp协议。