TCP:传输控制协议,他是一种面向连接的传输层协议,能够提供高可靠性的通信。
能够保证数据无误,无丢失,无失序,无重复。
适用情况:
1、适合于对传输质量要求较高,以及传输大量数据的通信。
2、在需要可靠数据传输的场合,通常使用TCP协议
3、MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
UDP:用户数据报协议,提供的是非面向连接的、不可靠的数据流传输。
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。他只是把应用程序传给IP层的数据报发送出去,但是不能保证他们能到达目的地。因此报文可能会丢失、重复以及乱序等。在数据发送前不需要连接,所以可以进行高效率通信,适合于广播/组播式通信中。
第一次握手:客户通过调用connect进行主动打开(active open)。这引起客户TCP发送一个SYN(表示同步)分节(SYN=J),它告诉服务器客户将在连接中发送到数据的初始序列号。并进入SYN_SEND状态,等待服务器的确认。
第二次握手:服务器必须确认客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。服务器以单个字节向客户发送SYN和对客户SYN的ACK(表示确认),此时服务器进入SYN_RECV状态。
第三次握手:客户收到服务器的SYN+ACK。向服务器发送确认分节,此分节发送完毕,客户服务器进入ESTABLISHED状态,完成三次握手。