251

问答题 251 /290

请你讲述一下TCP三次握手,四次挥手,以及为什么用三次握手?

参考答案

参考回答:

三次握手
1.客户端发送syn0给服务器
2.服务器收到syn0,回复syn1,ack(syn0+1)
3.客户端收到syn1,回复ack(syn1+1)
四次挥手(这里以客户端主动断开为例)
1.客户端发送fin
2.服务端收到fin,回复ack,然后服务器去处理其他事
3.服务器事情处理完,回复fin
4.客户端回复ack
为什么用三次握手
本来握手应该和挥手一样都是需要确认两个方向都能联通的,本来模型应该是:
1.客户端发送syn0给服务器
2.服务器收到syn0,回复ack(syn0+1)
3.服务器发送syn1
3.客户端收到syn1,回复ack(syn1+1)
因为tcp是全双工的,上边的四部确认了数据在两个方向上都是可以正确到达的,但是2,3步没有没有上下的联系,可以将其合并,加快握手效率,所有就变成了3步握手。