TCP与UDP协议的区别

首先TCP和UDP协议都是运行在运输层的协议。

UDP协议:用户数据包协议

1、UDP协议是无连接的。也就说在数据发送之前并不需要建立连接(当然,在发送数据结束的时候也就不存在链接的释放),因此减少了开销和数据发送之前的时延。

2、UDP使用尽最大努力的交付,但是不保证可靠性的交付,因此主机不需要维持复杂的链接状态表。

3、UDP是面向报文。发送方的UDP对于应用程序进程交下来的报文,即不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交付给UDP多长的报文,UDP就照样发送,即一次发送一个报文。同时,在接收方,对于IP层交上来的UDP用户数据报,在去除首部后就原封不动的交付给应用层的应用进程了。也就说,UDP一次交付一个完整的报文。因此报文的大小必须合适,负责会降低数据的传输效率。如果报文太长,在IP层需要对报文分片,就会降低IP层的效率。反之,若报文太短,UDP把它交给IP层后,会使得IP数据报的首部相对过长,同样会降低IP层的效率。

4、UDP没有拥塞控制

Linux程序设计之套接字:UDP

TCP协议:传输控制协议

1、TCP协议是面向连接的运输层协议。在使用TCP协议之前,必须先建立TCP连接。

2、每个TCP连接只能有两个端点

3、可靠性交付,由于IP层只提供无比特差错的传输。

4、全双工通信。

5、面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。

TCP的FIN/RST Cookie 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17513.html