Introduction to Computer Networking学习笔记(十):Finite State Mechines(有限状态机)以TCP连接断开为例
原贴地址: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连接断开为例相关推荐
- Introduction to Computer Networking学习笔记(十五):Queue Model 包交换中的缓冲模型
本章知识点比较零散,因此一篇文章进行总结,并且不具有连贯性,仅记录自己认为有价值的内容. 将较大的包拆分为小包进行传输,可以减小端对端延迟,原因如下图: 数据传输时,突发大量的数据包会增加延迟,简单周 ...
- Verilog学习笔记HDLBits——Finite State Machines(1)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.Finite State Machines 1.Simple FSM 1(asychronous reset) 2 ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- IOS之学习笔记十五(协议和委托的使用)
1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...
- 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进
吴恩达<机器学习>学习笔记十四--应用机器学习的建议实现一个机器学习模型的改进 一.任务介绍 二.代码实现 1.准备数据 2.代价函数 3.梯度计算 4.带有正则化的代价函数和梯度计算 5 ...
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- 吴恩达《机器学习》学习笔记十——神经网络相关(2)
吴恩达<机器学习>学习笔记十--神经网络相关(2) 一. 代价函数 二. 反向传播算法 三. 理解反向传播算法 四. 梯度检测 五. 随机初始化 1.全部初始化为0的问题 2.随机初始化的 ...
- Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效
之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...
- Mr.J-- jQuery学习笔记(十六)--展开和收起动画折叠菜单的实现
之前写过动画的隐藏与显示:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 动画隐藏与显示的一个小demo--对联广告:Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告 与动 ...
- Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
请看之前的:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 话不多说,直接上demo <!DOCTYPE html> <html lang="en"& ...
最新文章
- Xp下的程序编译成linux,WinXP下打造自己的linux 0.11简易编译环境(原创)
- C++(1) 指针 new 和delete
- 什么叫一年有四季......
- 计算机导论123出栈顺序,优·计算机导论复习提纲.doc
- JS模块化(立即执行函数)
- php usort的用法,PHP usort()用法及代码示例
- (转)fiddler使用简介--其二
- 机器博弈 (三) 虚拟遗憾最小化算法
- 联合主键用hibernate注解映射方式主要有三种:
- win10系统打开tftp服务器,win10系统开启TFTp的操作方法
- 猪八戒网分析报告_米米米米粒口红_新浪博客
- Freecad的Python脚本
- Android开发实用小工具八——汇率转换工具
- python爬取拉勾网职位信息_Python爬虫-拉勾网职位爬取
- 英语单词背诵系统(有单词背诵,错词背诵功能)
- ADS1256驱动程序
- 【HNOI模拟By lyp】Day1
- 逻辑越权——垂直、水平越权
- nginx $remote_addr 详解
- Windows设置静态ip
热门文章
- 最近的shell脚本(updating)
- android 上下文菜单详解
- Windows API一日一练(40)CreateRectRgn和CombineRgn函数
- a星算法的优缺点_轻松理解机器学习算法:C4.5算法
- 【React 】基于Antd Design的Switch开关选择器控件封装
- Linux系统Bash(Shell)基础知识(4)
- Angular 4.x Template-Driven Forms
- thinkPHP使用中遇到的问题交流==
- [转载] New Concept English 1——Lesson 12 Whose is this…?This is my/your/her…
- Gradle 配置 BuildConfig详解