Introduction to Computer Networking学习笔记(十):Finite State Mechines(有限状态机)以TCP连接断开为例

状态机模型:事件驱动状态转换,转换后采取某些行动(非必须)。

实例:TCP连接

三次握手

server调用listen()由CLOSED状态转为LISTEN状态;

client调用connect()由CLOSED转为SYN SENT状态,并向server发送SYN;

server接收到SYN,状态由LISTEN转为SYN RECEIVED,并向client反馈SYN+ACK;

client收到SYN+ACK,状态由SYN SENT转为ESTABLISHED,并向server发送ACK;

server收到ACK,状态由SYN RECEIVED转为ESTABLISHED;

四次挥手

client发送FIN,状态由ESTABLISHED转为FIN WAIT 1;

server收到FIN,状态由ESTABLISHED转为CLOSE_WAIT,并向server发送ACK;

client收到ACK,状态由FIN WAIT 1转为FIN WAIT 2,;

server发送完全部数据后,状态由CLOSE WAIT转为LAST ACK,并向client发送FIN;

client收到FIN,状态由FIN WAIT 2转为TIME WAIT,并向server发送最后一个ACK;

server收到最后ACK,状态由LAST ACK转为CLOSED;

client经过2MSL后,此期间没有收到server消息则将状态由TIME WAIT转为CLOSED;

注意有一特殊情况,两端几乎同时发送了FIN都进入了FIN WAIT 1状态,之后受到对方发送的FIN信号,则都进入CLOSING状态,然后进入TIME WAIT状态,然后关闭

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值