TCP与UDP

2018-09-06  本文已影响0人  Samuel_Tom

TCP和UDP的区别

TCP是面向连接的通信服务
UDP是面向无连接的通信服务

TCP提供可靠的数据传输
UDP是不可靠的数据传输,可能会丢包

TCP传输速度慢
UDP传输速度快

TCP是面向字节流的
UDP是面向报文的

TCP的报头长度至少20字节
UDP报头长度只有8字节

TCP一对一
UDP可以一对一,一对多

传输方式的不同

UDP是面向报文的
应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。

TCP是面向字节流的:
虽然应用层和TCP的交互也是一次一个数据块,但是TCP并不会总是一次发送一个数据块;TCP有一个缓冲区,当应用层传送的数据块太长的话,TCP会把它划分短一点再传送;如果应用层一次直发送一个字节的话,TCP也会累积到足够多的字节后在再发送。

连接方式的不同

UDP是面向无连接的
UDP传输数据时并不建立连接,而是通过简单地抓取应用程序的数据,然后尽可能快的把数据包扔到网络上,属于不可靠的连接。

TCP是面向连接的
TCP需要经过三次握手建立连接、四次挥手断开连接,是可靠的连接。

补充

为什么UDP比TCP快?
1. TCP需要三次握手
2. TCP有拥塞控制,控制流量等机制

为什么TCP比UDP可靠?
1. TCP是面向有连接的,建立连接之后才发送数据;而UDP则不管对方存不存在都会发送数据。
2. TCP有确认机制,接收端每收到一个正确包都会回应给发送端。超时或者数据包不完整的话发送端会重传。UDP没有。因此可能丢包。

什么时候使用TCP?
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。

什么时候应该使用UDP?
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。

上一篇 下一篇

猜你喜欢

热点阅读