TCP

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,在通信之前必须先建立连接。

1. TCP协议保证可靠传输,即发送的数据与接收的数据是一致的。
2. TCP协议是有连接的、面向数据流的协议。有连接是说数据传送前通信双方需要建立连接、通信完毕后需要断开连接,不过这里所提到的连接都是逻辑上的连接。面向数据流的意思是说发送方应用程序发送的数据是什么顺序,接收方应用读取的接收到的数据也是什么顺序。
3. TCP协议提供的是端到端的通信,也就是说一条TCP连接只能提供一对一的通信。不过,一个应用可以同时建立多条TCP连接来实现与多个目标的通信。
4. TCP协议提供拥塞控制功能,会在网络状况良好的情况下适当提高发送/接收速率,反之则适当降低发送/接收速率。

UDP

UDP的全称也叫做用户数据报协议(User Datagram Protocal)

1.UDP不能保证可靠传输,也就更不能保证所发送的数据的到达顺序,它所实现的是尽最大的努力交付。
2.UDP是面向数据报文的、无连接的协议,因此它的开销低并且发送器前的时延小(因为不用建立连接啊),面向报文也使得IP层在传输UDP协议的报文时既不会拆分也不会合并。
3.UDP可以支持一对一、一对多、多对一、多对多的通信。
4.UDP没有拥塞控制功能,它的发送速率不会随着网络出现的拥塞而降低,所以它的实时性较好。