python中的三次握手以及四次挥手

 

三次握手
1.客户端对服务端说:我的序号是x,我要向你请求连接;(第一次握手,发送SYN包,然后进入SYN-SEND状态)
2.服务端听到之后对客户端说:我的序号是y,期待你下一句序号是x+1的话(意思就是收到了序号为x的话,即ack=x+1),同意建立连接。(第二次握手,发送ACK-SYN包,然后进入SYN-RCVD状态)
3.客户端听到服务端说同意建立连接之后,对客户端说:与确认你同意与我连接(ack=y+1,ACK=1,seq=x+1)。(第三次握手,客户端已进入ESTABLISHED状态)
4.服务端听到客户端的确认之后,也进入ESTABLISHED状态。

 

描述四次挥手就是:
1.客户端与服务端交谈结束之后,客户端要结束此次会话,对服务端说:我要关闭连接了(seq=u,FIN=1)。(第一次挥手,客户端进入FIN-WAIT-1)
2.服务端收到客户端的消息后说:确认,你要关闭连接了。(seq=v,ack=u+1,ACK=1)(第二次挥手,服务端进入CLOSE-WAIT)
3.客户端收到服务端的确认后,等了一段时间,因为服务端可能还有话要对他说。(此时客户端进入FIN-WAIT-2)
4.服务端说完了他要说的话(只是可能还有话说)之后,对客户端说,我要关闭连接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次挥手)
5.客户端收到服务端要结束连接的消息后说:已收到你要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,然后客户端进入CLOSED)
6.服务端收到客户端的确认后,也进入CLOSED。

posted on 2018-07-26 15:29  liudemeng  阅读(476)  评论(0编辑  收藏  举报