当前位置: 首页 > news >正文

网站制作完成后为了麻阳住房和城乡建设局网站

网站制作完成后为了,麻阳住房和城乡建设局网站,石龙网站建设,大学生产品设计作品本文目录一、测试用命令二、iperf3状态机中各个状态解析三、iperf3状态机迁移分析K-初始化测试对象(NA--->初始化状态):A-服务器端测试对象开始运行(初始化状态--->IPERF_START状态):B-建立控制连接(初始化状态-…

本文目录

  • 一、测试用命令
  • 二、iperf3状态机中各个状态解析
  • 三、iperf3状态机迁移分析
    • K-初始化测试对象(NA--->初始化状态):
    • A-服务器端测试对象开始运行(初始化状态--->IPERF_START状态):
    • B-建立控制连接(初始化状态--->IPERF_START状态)::
    • C-完成服务端与客户端的配置参数交换:

这里描述的是iperf3进行单向TCP正向流测试时的状态机转换过程,以及转换过程中的代码调用关系。通过前面的iperf3代码主要架构分析之main函数主要流程我们已经知道iperf3虽然是C语言编写的,但它是以面向对象的方式实现的,所以本文中讲述的状态机是以每个测试对象(即为每次测试实例的运行过程创建一个测试对象,从测试开始到测试进行到测试结束输入测试报告管理测试实例的整个生命周期)为单位的。每个测试对象都拥有独立的状态机。所以这里同时也引也客户端和服务端都有自己的独立的状态机,客户端的状态会通过ctrl_socket同步到服务端,引发服务端状态变化。因为客户端状态切换

一、测试用命令

在正常的测试过程中,使用如下图描述的命令启动iperf3进行单向TCP正向流测试:

服务端

iperf3 -s

客户端
总共发送8K数据,每次发送1K

iperf3 -c 127.0.0.1 -n 8K -l 1K

二、iperf3状态机中各个状态解析

有限状态机编程通常是由当前状态,事件+条件,动作,状态迁移(或称为目标状态)的五元组组成的。所以下面我们也会用这五元组来描述状态。如图所示,iperf3在正常情况下(客户端启动测试后,就一直跑到测试完成,中途不中断测试)有10个状态。状态迁移方向如如箭头所示,状态迁移发生的”事件+条件“由箭头上的字母标识,会在下一章中详细解析。
在这里插入图片描述

  • 初始化状态
    服务端开始运行,创建测试对象后,测试对象就直接进入这个状态,这是一个中间状态,测试对象不会一停留在这个状态下。
  • IPERF_START状态
    测试对象创建好后,会开始创建监听端口,并进入监听状态,然后进入到IPERF_START状态下。
  • PARAM_EXCHANGE状态
    在这个状态下,通过控制链接完成客户端和服务端的参数交换,即服务端收取客户端发过过的配置参数。
  • CREATE_STREAM状态
    未完待续
  • TEST_START状态
    未完待续
  • TEST_RUNNING状态
    未完待续
  • TEST_END状态
    未完待续
  • EXCHANGE_RESULT状态
    未完待续
  • DISPLAY_RESULT状态
    未完待续
  • IPERF_DONE状态
    未完待续

三、iperf3状态机迁移分析

K-初始化测试对象(NA—>初始化状态):

服务端开始运行,创建测试对象后,对象状态会直接初始化初始化状态,函数调用关系如下

debug out: func = main                     ,line =   62, file = main.c
debug out: func = iperf_new_test           ,line = 2732, file = iperf_api.c
debug out: set the state from 0
状态机元组名称状态机元组当前值
当前状态
事件+条件perf3做为服务端被启动运行
动作K-初始化测试对象
下一状态初始化状态

A-服务器端测试对象开始运行(初始化状态—>IPERF_START状态):

服务端开始运行,创建测试对象后,读取配置参数并创建服务端监听端口,状态将从 初始化状态 变成 IPERF_START状态

debug out: func = main                     ,line =   62, file = main.c
debug out: func = iperf_new_test           ,line = 2732, file = iperf_api.c
debug out: set the state from 0
-----------------------------------------------------------------------------------
debug out: func = iperf_defaults           ,line = 2796, file = iperf_api.c
debug out: func = iperf_parse_arguments    ,line = 1125, file = iperf_api.c
debug out: func = run                      ,line =  145, file = main.c
debug out: func = iperf_run_server         ,line =  456, file = iperf_server_api.c
debug out: func = iperf_server_listen      ,line =   72, file = iperf_server_api.c
debug out: func = netannounce              ,line =  263, file = net.c
debug out: func = netannounce              ,line =  354, file = net.c
debug out: create listen socket
debug out: set the state from 0 to 15
-----------------------------------------------------------------------------------
状态机元组名称状态机元组当前值
当前状态初始化状态
事件+条件进入初始化状态后无条件继续运行
动作A-服务器端测试对象开始运行,创建服务端监听端口
下一状态IPERF_START状态

B-建立控制连接(初始化状态—>IPERF_START状态)::

调用select函数,等待并接受客户端发起的控制链接(test->ctrl_sck指向控制链接) 。

......
-----------------------------------------------------------------------------------
debug out: func = iperf_defaults           ,line = 2796, file = iperf_api.c
debug out: func = iperf_parse_arguments    ,line = 1125, file = iperf_api.c
debug out: func = run                      ,line =  145, file = main.c
debug out: func = iperf_run_server         ,line =  456, file = iperf_server_api.c
debug out: func = iperf_server_listen      ,line =   72, file = iperf_server_api.c
debug out: func = netannounce              ,line =  263, file = net.c
debug out: func = netannounce              ,line =  354, file = net.c
debug out: create listen socket
debug out: set the state from 0 to 15
-----------------------------------------------------------------------------------
debug out: func = iperf_run_server         ,line =  498, file = iperf_server_api.c
debug out: func = iperf_run_server         ,line =  587, file = iperf_server_api.c
debug out: func = iperf_accept             ,line =  154, file = iperf_server_api.c
debug out: set the state from 15 to 9
-----------------------------------------------------------------------------------
状态机元组名称状态机元组当前值
当前状态IPERF_START状态
事件+条件收到客户端发起的控制链接连接请求
动作B-建立控制链接
下一状态PARAM_EXCHANGE状态

C-完成服务端与客户端的配置参数交换:

调用iperf_exchange_parameters函数,接收客户端通过控制链接发送的配置参数,完成服务端与客户端的参数交换 。

......
-----------------------------------------------------------------------------------
debug out: func = iperf_run_server         ,line =  498, file = iperf_server_api.c
debug out: func = iperf_run_server         ,line =  587, file = iperf_server_api.c
debug out: func = iperf_accept             ,line =  154, file = iperf_server_api.c
debug out: set the state from 15 to 9
-----------------------------------------------------------------------------------
debug out: func = iperf_exchange_parameters,line = 2067, file = iperf_api.c
debug out: func = get_parameters           ,line = 2246, file = iperf_api.c
debug out: set the state from 9 to 10
状态机元组名称状态机元组当前值
当前状态PARAM_EXCHANGE状态
事件+条件收到客户端发送过来的配置参数
动作C-接收并保存客户端送过来的配置参数,并进行配置
下一状态CREATE_STREAM状态

D:
未完待续
E:
未完待续
F:
未完待续
G:
未完待续
H:
未完待续
I:
未完待续
J:
未完待续

http://www.yayakq.cn/news/585711/

相关文章:

  • 网站的登陆注册页面怎么做网页设计心得300
  • 网站如何建设流程图国内wordpress博客
  • 沥林网站制作关于景区网站规划建设方案书
  • 推广网站的方法有福永论坛网站建设
  • 外贸免费自助建站平台wordpress shopify
  • 海南省城乡住房建设厅网站运营招聘
  • 企业网站托管方案内容响应式网站建设哪家好
  • 重庆专业的网站建设公司哪家好品牌包装设计
  • 申请一个网站大连旅游攻略
  • 如何查询网站建立时间设计网站 站什么网
  • 关于网站建设的大学高端网站开发有哪些
  • 公司怎么注册自己的网站阿里云建站和华为云建站哪个好
  • 网站怎么查看访问量手机在线网页制作
  • 网站建设公司果动c网站设计部
  • 盐城网站优化外贸网站建设 东莞
  • 淘宝客网站的建设麦包包的网站建设
  • 四川省城乡建设厅官方网站o2o网站建设服务
  • 口腔医院网站优化服务商最新国际新闻50条简短
  • 西安网站开发公司地址租用大型服务器多少钱
  • 做网站用什么需要好如何做视频网站的会员代理
  • 简单网站建设设计河南金建建设集团网站
  • 建立网站数据库实验报告wordpress404页面更爱
  • 网站图标psd儿童网站建设
  • 政和县建设局网站公告现在网站建设的技术
  • 微网站价格石碣镇做网站
  • logo设计在线生成免费网站无线网络
  • 清远市seo网站设计联系方式公司建设的网站属于无形资产吗
  • 嘉兴网站优化网上商城是什么软件
  • 网站建设会遇到哪些问题常德市建设工程造价网站
  • 阿里云上怎么做网页网站如何做网站安全扫描