TCP/IP协议的三次握手与四次挥手

TCP

TCP是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用,例如文件传输。TCP可用于可靠传输的原因:

  • 为了确保消息传输的可靠性,TCP为每个分组提供序列号,并且还确保顺序接收、发送到接收方的分组。
  • 接收实体成功接收分组后,发送ACK确认应答。
  • 如果发送方在合理的往返时延内没有收到ACK,则认为数据包丢失,并重新发送响应数据包。

连接过程

  1. 第一次握手:clientserver发送请求报文段,该报文段包含自身的数据通讯初始序号。请求发送后,客户端进入SYN-SENT状态。
  2. 第二次握手:server收到连接请求报文段后,如果同意连接,则会发送一个应答,该应答中也会包含自身的数据通讯初始序号,发送完成后便进入SYN-RECEIVED状态。
  3. 第三次握手:client收到连接同意的应答后,还要向服务端发送一个确认报文。客户端发送完确认报文后进入ESTABLISHED状态,服务端收到这个应答后也进入ESTABLISHED状态,成功建立连接。

三次握手可以确保clientserver的收发功能正常,可以进行报文收发工作。

断开连接过程:

  1. 第一次挥手:若A认为数据发送完成,则向B发送连接释放请求。
  2. 第二次挥手:B收到连接释放请求后,告诉应用层要释放TCP连接,并发送ACK包,A进入CLOSE_WAIT状态。此时A到B的连接已经释放,意味着不再接收A发的数据。但是B仍然可以发送数据给A。
  3. 第三次挥手:B如果还有没发完的数据会继续发送,发送完毕后会向A发送连接释放请求,B进入LAST-ACK状态。
  4. 第四次挥手:A收到释放请求后,向B发送确认应答,此时A进入TIME-WAIT状态,并保持2MSL时间,如果时间段内没有B的重发请求的话,就进入CLOSED状态。当B收到确认应答后,也进入CLOSED状态。
posted @ 2023-03-02 21:31  月落随山隐  阅读(68)  评论(0)    收藏  举报