原贴地址:https://blog.csdn.net/djl806943371/article/details/88784949

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

实例: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状态,然后关闭

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

  1. Introduction to Computer Networking学习笔记(十五):Queue Model 包交换中的缓冲模型

    本章知识点比较零散,因此一篇文章进行总结,并且不具有连贯性,仅记录自己认为有价值的内容. 将较大的包拆分为小包进行传输,可以减小端对端延迟,原因如下图: 数据传输时,突发大量的数据包会增加延迟,简单周 ...

  2. Verilog学习笔记HDLBits——Finite State Machines(1)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.Finite State Machines 1.Simple FSM 1(asychronous reset) 2 ...

  3. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  4. IOS之学习笔记十五(协议和委托的使用)

    1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...

  5. 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进

    吴恩达<机器学习>学习笔记十四--应用机器学习的建议实现一个机器学习模型的改进 一.任务介绍 二.代码实现 1.准备数据 2.代价函数 3.梯度计算 4.带有正则化的代价函数和梯度计算 5 ...

  6. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  7. 吴恩达《机器学习》学习笔记十——神经网络相关(2)

    吴恩达<机器学习>学习笔记十--神经网络相关(2) 一. 代价函数 二. 反向传播算法 三. 理解反向传播算法 四. 梯度检测 五. 随机初始化 1.全部初始化为0的问题 2.随机初始化的 ...

  8. Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效

    之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...

  9. Mr.J-- jQuery学习笔记(十六)--展开和收起动画折叠菜单的实现

    之前写过动画的隐藏与显示:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 动画隐藏与显示的一个小demo--对联广告:Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告 与动 ...

  10. Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告

    请看之前的:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 话不多说,直接上demo <!DOCTYPE html> <html lang="en"& ...

最新文章

  1. Xp下的程序编译成linux,WinXP下打造自己的linux 0.11简易编译环境(原创)
  2. C++(1) 指针 new 和delete
  3. 什么叫一年有四季......
  4. 计算机导论123出栈顺序,优·计算机导论复习提纲.doc
  5. JS模块化(立即执行函数)
  6. php usort的用法,PHP usort()用法及代码示例
  7. (转)fiddler使用简介--其二
  8. 机器博弈 (三) 虚拟遗憾最小化算法
  9. 联合主键用hibernate注解映射方式主要有三种:
  10. win10系统打开tftp服务器,win10系统开启TFTp的操作方法
  11. 猪八戒网分析报告_米米米米粒口红_新浪博客
  12. Freecad的Python脚本
  13. Android开发实用小工具八——汇率转换工具
  14. python爬取拉勾网职位信息_Python爬虫-拉勾网职位爬取
  15. 英语单词背诵系统(有单词背诵,错词背诵功能)
  16. ADS1256驱动程序
  17. 【HNOI模拟By lyp】Day1
  18. 逻辑越权——垂直、水平越权
  19. nginx $remote_addr 详解
  20. Windows设置静态ip

热门文章

  1. 最近的shell脚本(updating)
  2. android 上下文菜单详解
  3. Windows API一日一练(40)CreateRectRgn和CombineRgn函数
  4. a星算法的优缺点_轻松理解机器学习算法:C4.5算法
  5. 【React 】基于Antd Design的Switch开关选择器控件封装
  6. Linux系统Bash(Shell)基础知识(4)
  7. Angular 4.x Template-Driven Forms
  8. thinkPHP使用中遇到的问题交流==
  9. [转载] New Concept English 1——Lesson 12 Whose is this…?This is my/your/her…
  10. Gradle 配置 BuildConfig详解