TCP和UDP都是因特网(TCP/IP)为应用层提供的两种运输层协议。简单的来说,TCP、UDP是运输层协议。
这两种协议都是为调用他们的应用程序所服务的,那么两种协议之间存在什么差异呢?
1. 服务
- tcp(传输控制协议)为调用它的应用程序提供了一种可靠的、面向连接的服务
- udp(用户数据报协议)为调用它的应用程序提供了一种不可靠的
、无连接的服务
2. 连接
- tcp是面向连接的也就是说在进行tcp通信之前双方要先进行“三次握手”,除此之外,tcp还要在端系统中维护连接状态,
- 而udp不需要进行“握手”操作就可以直接进行通信,所以说udp是无连接的,实现相对简单,也不需要维护连接状态。
3. 对发送数据的结果?
- tcp连接时全双工的 ,就是说连接双方可以在连接进行报文的收发,它可以保证正确的、按序的把数据交付给接受端
- udp只管发送数据,而不管发送的结果,也就是说他不能保证报文是都能到达接收端,也不能保证正确性以及报文是否按顺序到达接收端。
4. 发送速率
- tcp拥有拥塞控制,在发送端和接收端之间出现网络拥塞的时候,tcp的拥塞机制就会调节发送端的速率。
- udp没有拥塞机制,它的流量是不可调节的,它可以根据需要以任意的速率发送数据,只要应用程序把数据交给udp,udp会立即把数据打包并将其传递给网络层。
5. 开销
每个tcp报文都有20字节的首部开销,而udp只有8字节的开销。