谈谈你对 TCP 三次握手和四次挥手的理解-LMLPHP

TCP三次握手:

1、客户端发送syn包到服务器,等待服务器确认接收。

2、服务器确认接收syn包并确认客户的syn,并发送回来一个syn+ack的包给客户端。

3、客户端确认接收服务器的syn+ack包,并向服务器发送确认包ack,二者相互建立联系后,完成tcp三次握手。

四次握手就是中间多了一层:等待服务器再一次响应回复相关数据的过程

三次握手之所以是三次是保证client和server均让对方知道自己的接收和发送能力没问题而保证的最小次数。

第一次client => server 只能server判断出client具备发送能力

第二次 server => client client就可以判断出server具备发送和接受能力。此时client还需让server知道自己接收能力没问题于是就有了第三次
第三次 client => server 双方均保证了自己的接收和发送能力没有问题

其中,为了保证后续的握手是为了应答上一个握手,每次握手都会带一个标识 seq,后续的ACK都会对这个seq进行加一来进行确认。

附上大神文章:https://juejin.im/post/5c078058f265da611c26c235

https://blog.csdn.net/u010429424/article/details/77340422

05-19 22:46