opnet之自行设计csma/ca
来源:互联网 发布:远程软件哪个好用mac 编辑:程序博客网 时间:2024/05/20 23:58
自行设计的csma/ca
init
初始化:
- 初始化TV
- 读入仿真属性和对象属性到SV
SRC_RX
if(pcs_state == 0)&&(busy == 0)
{
next_event_data = op_intrpt_schedule_self(op_sim_time()+difs,ROB_INIT);
busy == 1; //这个busy应该只属于这个节点所有
rob=-1
}
//这个if语句不执行的话包会在队列中堆积
SENSE
pcs_state = (int)op_stat_local_read(op_intrpt_stat());
if(pcs_state == 1)
{
删除在SRC_RX预设的ROB_INIT自中断
}
//如果sense到信道空闲,也会查看队列中是否有包,有发送
if(pcs_state == 0)&&(busy == 0)&&(队列有包)
{
next_event_data = op_intrpt_schedule_self(op_sim_time()+difs,ROB_INIT);
busy == 1; //这个busy应该只属于这个节点所有
rob=-1
}
ROB
if(rob == -1)
{
rob = aSlotTime*(int)op_dist_uniform(cw_current);
}
next_event_data = op_ intrpt_schedule_self(op_sim_time()+rob,DATA_TX_INIT);
rob = -1;
DATA_TX
删除ROB中在竞争窗口中所设的其他中断
op_pk_sent();
timeout = 传输时间+传播时间+帧间隔
设置自中断 1.1*timeout+op_sim_time()
DATA_RX
删除DATA_TX中的time_out中断
op_intrpt_schedule_self(op_sim_time()+sifs,ACK_TX_INIT);
ACK_TX
发送ack包
timeout = 传输时间+传播时间+帧间隔
设置自中断 1.1*timeout+op_sim_time()
ACK_RX
删除DATA_RX中预设的time_out中断
busy = 0;
TIME_OUT
if(重发次数小于指定值
{
重发data或者ack包;
}
else{
丢包;
}
tags:opnet
- opnet之自行设计csma/ca
- opnet之自行设计csma/ca/tx
- opnet之自行设计csma/ca/rx
- opnet之自行设计csma
- opnet之csma/ca之bbb_csma_tx
- opnet之csma/ca之aaa_csma_ca_rx
- opnet之queue之自行设计acb_fifo
- opnet之aloha进阶csma
- opnet之作者设计csma
- CSMA/CD 和 CSMA/CA 之原理
- CSMA/CA之INIT入口
- CSMA/CA
- CSMA/CA
- CSMA/CA
- CSMA/CA
- CSMA/CA
- CSMA/CA
- CSMA/CD CSMA/CA
- jboss与spring结合配置数据源
- 利用ContentProvider获得本设备上所有的音/视频文件信息
- 【后台学习】编写后台接口
- jquery 学习笔记3 遍历
- Android 4.4的栈结构变化
- opnet之自行设计csma/ca
- sigmoid函数拟合的亚像素边缘
- VS2010,2012,2013自定义注释[代码段]的另种方法
- 工资管理系统源码下载
- 二叉树演示C代码
- 配置FatFs并批量写入txt文件
- Elixir 将bitstring或list转为整型数
- android基础-界面代码
- java关于发送邮件的一些常见问题分享