1、区别
TCP Transfer Control Protocol 是一种面向连接的、可靠的、传输层通信协议。
特点: 好比是打电话:面向连接的,点对点的通信,高可靠的,效率比较低,占用的系统资源比较多。
UDP User Datagram Protocol 是一种无连接的, 不可靠的、传输层通信协议。
特点:好比是广播:不需要连接,发送方不管接收方有没有准备好,直接发消息;可以进行广播发送的;传输不可靠,有可能丢失消息;效率比较高;协议就会比较简单,占用的系统资源就比较少。
TCP建立连接三次握手,断开连接四次挥手。
2、TCP为什么是三次握手,而不是两次?
减少资源的浪费。
3、TCP三次握手、四次挥手
- 三次握手(TCP连接建立):
SYN: 客户端发送一个SYN(同步序列编号)报文到服务器,并进入SYN_SENT状态,等待服务器确认。
SYN+ACK: 服务器接收到SYN报文,回复一个SYN+ACK报文,进入SYN_RECEIVED状态。
ACK: 客户端收到SYN+ACK报文后,发送一个ACK报文,一旦服务器接收到这个ACK报文,连接建立成功,双方进入ESTABLISHED状态。 - 四次挥手(TCP连接终止):
FIN: 当通信结束时,客户端发送一个FIN(结束)报文,用来关闭客户端到服务器的数据传送。
ACK: 服务器收到这个FIN报文,发送一个ACK报文,确认序号为收到的序号加1。客户端进入FIN_WAIT_2状态。
FIN: 如果服务器也准备关闭连接,发送一个FIN报文给客户端。
ACK: 客户端收到这个FIN报文后,发送一个ACK报文作为回应,然后进入TIME_WAIT状态。经过一段时间后,确保服务器接收到ACK报文,客户端关闭连接。