1、UDP
用户数据报协议(User Datagram Protocol)。UDP是一种无连接协议,因为UDP客户与服务器不存在长期的关系,例如一个UDP客户创建一个套接字并发送一个数据报给一个服务器,然后立即用同一个套接字发送另一个数据报给另一个服务器。同样,一个UDP服务器可以用同一个UDP套接字从若干不同的客户端一连串接收多个数据报。
UDP不是可靠的,不能保证最终到达它们的目的地,不保证各个数据报的先后顺序跨网络保持不变,也不能保证每个数据报只到达一次。
UDP即可以使用IPV4,也可以使用IPV6。
2、TCP
传输控制协议(Transmission Control Protocol)。TCP是一种面向连接的协议,提供客户与服务器的连接。
第二,TCP提供可靠性。当使用TCP向另一端发送数据时,它要求对端返回一个确认。如果没有收到确认,TCP自动重传数据并等待更长时间。在数次重传失败后,TCP才放弃。
第三,TCP通过给所发送数据的每一个字节关联一个序列号进行排序。UDP提供不可靠的数据报传送,不提供确认、序列号、超时重传等机制。
第四,TCP提供流量控制,而UDP不提供流量控制。TCP总是告诉对端它能接收多少字节的数据,这称为通告窗口。该窗口在任何时间都指出接收缓冲区中的可用空间,从而确保发送端发送的数据不会溢出接收缓冲区。
第五,TCP的连接是全双工的。UDP也可用是全双工的。
UDP与TCP的主要区别在于UDP不一定提供可靠的数据传输。实事上,该协议不能保证数据准确无误地到达目的地。UDP在许多方面非常有效,如UDP具有对系统资源要求较少、具有较好地实时性、网络开销小地优点。当某个程序的目标是尽快地传输尽可能多地信息时(其中任意给定数据地重要性相对较低),可使用UDP。