TCP:Transmission Control Protocol 传输控制协议,可以提供面向连接、可靠的、缓慢传输的、能够保证消息顺序的通信。在正式发送数据前,发送端和接收端必须建立可靠的连接。一个TCP连接必须要经过三次握手才能建立起来。客户端发送一个SYN信息给服务器,该服务器正在监听某个TCP端口。服务器接收该信息并发送一个SYN-ACK消息,客户端收到该消息后再回一个ACK消息,TCP连接就建立成功。TCP提供可靠的数据传输,如果消息在传输过程中出现丢包的情况,那么它将重发。TCP也保证了接收消息的有序性。发送的消息到网络的另一端可能是无序的,TCP协议将会为你排好序。 因为TCP必须创建连接,以保证信息的可靠性和有序性。所以相对来说TCP速度比较慢。TCP提供超时重发。丢弃重复数据,校验数据,流量控制等功能,保证数据从一端传到另一端。
UDP:User Data Protocol 用户数据报协议,可以提供面向非连接的、不可靠的、没有序列保证的、快速传输的的通信。UDP速度比较快。它不与对方建立连接,而是直接就把数据包发送出去。UDP协议不提供任何有序性和序列性的保证。数据包可能以任何可能的顺序到达接收端。UDP适用于一次只传少量数据,对可靠性要求不高的应用环境。
TCP具有比UDP更大的头。TCP头的大小是20个字节,而UDP头大小是8个字节。
TCP有流量控制和拥塞控制,而UDP没有。
TCP适合可靠性要求高并且对传输时间要求不高的应用。UDP更适合的应用程序需要高速传输的应用,比如视频、游戏。在实践中,TCP被使用于金融领域,而UDP是大量使用在游戏和娱乐场所。
基于TCP的协议:HTTP HTTPS Telnet FTP SMTP
基于UDP的协议:DHCP DNS SNMP TFTP BOOTP NFS