简述TCP中三次握手机制解决的是 ?
参考答案:
TCP中的三次握手机制主要解决的是网络连接的建立及可靠性的问题。具体来说,这一机制的作用包括:
- 确认双方的发送和接收能力:通过三次握手,客户端和服务器可以确认彼此都具备发送和接收数据的能力。
- 同步双方的初始序列号:TCP协议通过序列号来标识每一个发送出去的字节以及每一个接收到的字节。初始序列号是在建立连接时由系统随机产生的,通过三次握手,双方可以交换并确认彼此的初始序列号,从而确保后续数据传输的正确性。
- 避免已失效的连接请求报文段突然又传送到了服务端:由于网络的不稳定,客户端发送的连接请求可能会丢失,导致客户端没有收到确认报文,因而再次发送连接请求。此时,如果服务端收到了两次请求,就会建立两个连接。为了防止这种情况,服务端会采用一个半开连接队列来保存这些收到的请求,只有在收到客户端的确认后才会从队列中删除该请求并建立连接。
三次握手的详细过程如下:
- SYN:客户端发送一个SYN包到服务器,并进入SYN_SEND状态,等待服务器确认。
- SYN+ACK:服务器收到SYN包,必须确认客户的SYN(ACK=客户序列号+1),同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
- ACK:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=服务器序号+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手后,客户端与服务器开始传送数据。