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

咨询公司网站模板搭建网页平台

咨询公司网站模板,搭建网页平台,wordpress 怎么添加即时联系窗口,上海市建设三类人员报名网站文章目录 一、概述二、链路模型和包格式创建三、进程模型1.src 进程模型2.sink 进程模型 四、节点模型五、网络模型六、仿真结果 一、概述 本例程是在 OPNET Modeler 中对停等协议的建模和仿真,其中停等协议的操作过程如下: (1)发…

文章目录

  • 一、概述
  • 二、链路模型和包格式创建
  • 三、进程模型
    • 1.src 进程模型
    • 2.sink 进程模型
  • 四、节点模型
  • 五、网络模型
  • 六、仿真结果


一、概述

本例程是在 OPNET Modeler 中对停等协议的建模和仿真,其中停等协议的操作过程如下:
(1)发送方每次仅将当前信息帧作为备份保留在缓冲存储器中;
(2)当发送方开始发送信息帧时,赋予该信息帧一个帧序号,随即启动计时器;
(3)当接收方收到无差错的信息帧后,即向发送方返回一个与该帧序号相同序号的ACK确认帧;
(4)当接收方检测到一个含有差错的信息帧时,便舍弃该帧;
(5)若发送方在规定时间内收到ACK确认帧,即将计时器清零,需而开始下一帧的发送;
(6)若发送方在规定时间内未收到ACK确认帧,则应重发存于缓冲器中的待确认信息帧。


二、链路模型和包格式创建

创建点对点双工链路模型,其设置如下图所示。
在这里插入图片描述
ACK 反馈包的包格式设置如下图所示。
在这里插入图片描述


三、进程模型

1.src 进程模型

停等协议模块的进程模型状态转移如下表所示。

当前状态转移条件执行函数下一状态
initPOWER_UPidle
idleFRAME_ARRIVALsend_frame()ACKWait
idleLINK_FAILLinkdown
idledefaultidle
ACKWaitFRAME_ARRIVALqueue_frame()ACKWait
ACKWaitACK_ARRIVAL && !QUEUE_EMPTYproc_ack();send_next_frame()ACKWait
ACKWaitTIME_OUTresend_frame()ACKWait
ACKWaitLINK_FAILACK_Wait_Linkdown
ACKWaitACK_ARRIVAL && QUEUE_EMPTYproc_ack()idle
LinkdownLINK_UP && QUEUE_EMPTYidle
LinkdownLINK_UP && !QUEUE_EMPTYsend_next_frame()ACKWait
LinkdownFRAME_ARRIVALqueue_frame()Linkdown
ACK_Wait_LinkdownLINK_UPproc_flag()ACKWait
ACK_Wait_LinkdownFRAME_ARRIVALqueue_frame()ACK_Wait_Linkdown
ACK_Wait_LinkdownTIME_OUTflag = 1;ACK_Wait_LinkDown

stop_wait_queue 模块的进程模型如下图所示。
在这里插入图片描述
状态变量设置如下图所示。
在这里插入图片描述
头块代码如下。

#define GEN_IN_STRM 0
#define RCV_IN_STRM 1
#define POWER_UP (op_intrpt_type() == OPC_INTRPT_BEGSIM)
#define FRAME_ARRIVAL (op_intrpt_type() == OPC_INTRPT_STRM && op_intrpt_strm() == GEN_IN_STRM)
#define LINK_FAIL (op_intrpt_type() == OPC_INTRPT_FAIL)
#define TIME_OUT (op_intrpt_type() == OPC_INTRPT_SELF)
#define ACK_ARRIVAL (op_intrpt_type() == OPC_INTRPT_STRM && op_intrpt_strm() == RCV_IN_STRM)
#define QUEUE_EMPTY (op_subq_empty(0) == OPC_TRUE)
#define LINK_UP (op_intrpt_type() == OPC_INTRPT_RECOVER)

函数块代码。

void send(Packet * pkptr)
{FIN(send(Packet * pkptr));copy_pk = op_pk_copy(pkptr); op_pk_send(pkptr,0);ack_event = op_intrpt_schedule_self(op_sim_time()+5.0,0); FOUT;
}void send_frame()
{FIN(send_frame());send(op_pk_get(op_intrpt_strm())); FOUT;
}void queue_frame()
{FIN(queue_frame());op_subq_pk_insert(0,op_pk_get(op_intrpt_strm()),OPC_QPOS_TAIL); FOUT;
}void resend_frame()
{FIN(resend_frame());send(copy_pk); FOUT;
}void proc_ack()
{FIN(proc_ack());op_ev_cancel(ack_event);op_pk_destroy(copy_pk);FOUT;
}void send_next_frame()
{FIN(send_next_frame());send(op_subq_pk_remove(0,OPC_QPOS_HEAD)); FOUT;
}void proc_flag()
{FIN(proc_flag());if(flag == 1)resend_frame();flag = 0;FOUT;
}

2.sink 进程模型

sink 模块的进程模型如下图所示。
在这里插入图片描述
状态变量设置如下图所示。
在这里插入图片描述
头块代码。

#define PK_RECEIVE (op_intrpt_type()==OPC_INTRPT_STRM)

init 状态的进入执行代码。

RBT_handle = op_stat_reg("Received Bit Throughput (bits/sec)",OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
ETE_Delay_handle = op_stat_reg("End to end Delay (sec)",OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
ack_count_handle = op_stat_reg("Number of ACK Packets",OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
op_ima_obj_attr_get(op_id_self(),"Ack Sending Delay(seconds)",&ack_delay);
received_bit = 0;
ack_count = 0;

函数块代码。

void receive_process()
{int index;Packet* pkptr;Packet* ack_ptr;double ete_delay;double creation_time;double sim_time;FIN(receive_process());index = op_intrpt_strm();pkptr = op_pk_get(index);creation_time = op_pk_creation_time_get(pkptr);sim_time = op_sim_time();ete_delay = sim_time - creation_time;op_stat_write(ETE_Delay_handle,ete_delay);received_bit += op_pk_total_size_get(pkptr);op_stat_write(RBT_handle,received_bit/sim_time);op_pk_destroy(pkptr);ack_ptr = op_pk_create_fmt("ack_pkt"); ack_count++;op_stat_write(ack_count_handle,ack_count);op_pk_send_delayed(ack_ptr,0,ack_delay);FOUT;
}

全局属性设置如下图。
在这里插入图片描述
全局统计量设置如下图。
在这里插入图片描述


四、节点模型

src 的节点模型如下图所示。
在这里插入图片描述
gen 模块的属性设置。
在这里插入图片描述
stop_wait_queue 模块的属性设置。
在这里插入图片描述
sink 的节点模型如下图所示。
在这里插入图片描述
sink 模块的属性设置。
在这里插入图片描述


五、网络模型

网络模型如下图所示。
在这里插入图片描述
除了前面创建的两个节点和链路对象外,还有一个设置链路故障的对象。
链路模型的属性设置。
在这里插入图片描述
Failure Recovery 的属性设置如下图所示。
在这里插入图片描述
设置其在180s时链路故障,480s时链路恢复,再到600s时链路故障,720s时链路再恢复。


六、仿真结果

在网络模型中设置 src 节点的发包间隔为1s,sink 节点的 ACK 回复延迟 8s,仿真持续时间为1000s,运行仿真。
端到端延时的结果如下图所示。
在这里插入图片描述
设置绘图为离散形式,显示如下。
在这里插入图片描述
可以看到,在链路没有故障时,延时是增长的,有故障时,延时就没有了。
接收到 ACK 包的数量如下图所示。
在这里插入图片描述
链路没有故障时,ACK 包的数量单调递增,链路故障时就没有 ACK 包到达了,此时包的数量保持不变,链路恢复后,ACK 包的数量接着增加。
吞吐量如下图所示。
在这里插入图片描述
吞吐量和链路的故障与否仍然有关,在链路产生故障时,吞吐量明显下降。
下行链路利用率如下图所示。
在这里插入图片描述
上行链路利用率如下图所示。
在这里插入图片描述
产生包的速率是比收到 ACK 包的速率大的,因此,下行链路利用率要比上行链路利用率高出不少。
src 节点的包动画如下。
请添加图片描述
sink 节点的包动画如下。
请添加图片描述
stop_wait_queue 模块的进程模型动画如下。
请添加图片描述
sink 模块的进程模型动画如下。
请添加图片描述


以上就是 OPNET Modeler 例程——停等协议的建模和仿真的全部内容了。

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

相关文章:

  • 企业网站建设趋势wordpress中文备份
  • html网站模板资源哪个网站可以做兼职
  • 电子商务网站怎么做素材包手机站点
  • 佛山网站建设公司哪家最好商标图案自动生成
  • 凤阳县建设局网站苏州建设交通高等职业技术学院
  • 潍坊做网站张家口昨晚兰州发生了什么事
  • 百度云如何做网站建设一个淘宝客网站
  • ps做网站编排中文域名 怎么做网站
  • 网站服务器速度慢视频制作软件下载安装
  • 如何做网站推广赚钱音乐网页制作素材
  • 云南网站建设是什么做ppt找图片网站
  • 辽阳做网站织梦网站图片移动
  • 合肥设计网站公司关于域名用于非网站用途
  • 网站的栏目有什么名字注册城乡规划师考试时间2023
  • 哪里做网站的免费软件在线下载
  • cad二次开发网站做网站一个月20g流量够吗
  • 玉树州wap网站建设公司南京产品网站建设收费
  • 美发网站源码长沙装饰公司
  • 网站怎么做微信送红包活动群晖手动安装wordpress
  • 南宁住房建设部网站软装设计师培训
  • 临沂做网站建设公司个人注册公司需要什么
  • 如何利用网站策划做好网站建设抖音代运营收费20万
  • 网站编程设计方向网站上搜索的动图怎么做壁纸
  • 西宁做手机网站的公司wordpress pdo mysql扩展
  • 行业前10的网站建设公司正规的报价单格式
  • 广州可信网站认证服务器移动端快速建站的方法
  • 福州网站建设吧西青集团网站建设
  • 网站微信登录怎么做的友情链接是什么
  • 做网站设计都需要什么软件wordpress文章摘要缩略图
  • 浙江网站制作无锡建设工程项目代码申请网站