ndnSIM实战:流订阅

修改目的/效果

网络中每一个兴趣包到达producer后,producer连续返回多个数据包,且数量可根据手动设定。

修改思路

总体上来说共分三步。
1、对interest的修改,使它包含请求多少个数据包的信息并能正确编解码。
2、修改中间节点的pit表与转发策略等,如在转发一个数据包后不删除对应的pit条目等。
3、修改customer和producer的application。

除此之外还有具体的example实例中的一些修改等,和网络中转发算法无关。

需要修改的文件

1、tlv.hpp
      interest.hpp
      interest.cpp
2、pit-entry.hpp
      pit-entry.cpp
      forwarder.cpp
3、ndn-consumer.hpp
      ndn-consumer.cpp

代码

tlv.hpp

将第11位设置成了expect

interest.hpp

增加了私有成员m_expect,表示期待请求多少个兴趣包。
增加了三个公有函数,hasExpect(),getExpect(),setExpect()

interest.cpp

实现了hpp文件中加入的函数
编码wireEncode(),解码decode02() 中加入了expect,注意编解码顺序是相反的
wireDecode()中加入了对expect的检查

pit-entry.hpp

增加了私有成员m_CountForExpect
增加了公有函数operateCountForExpect(),用于计数

pit-entry.cpp

构造函数中初始化m_CountForExpect
实现了hpp文件中加入的函数

forwarder.cpp

onIncomingData()中,加入了判断数据包是否全部传到,全到了才视作pit entry satisfied

ndn-consumer.hpp

增加了私有成员m_interestExpect

ndn-consumer.cpp

OnData()中增加了一处输出信息

根据引用\[3\]中的官方教程,安装ndnSIM在Ubuntu 20.04上需要执行以下步骤: 1. 打开终端,执行以下命令安装必要的依赖项: ``` sudo apt install build-essential libsqlite3-dev libboost-all-dev libssl-dev git python3-setuptools castxml sudo apt install gir1.2-goocanvas-2.0 gir1.2-gtk-3.0 libgirepository1.0-dev python3-dev python3-gi python3-gi-cairo python3-pip python3-pygraphviz python3-pygccxml ``` 2. 安装kiwi,执行以下命令: ``` sudo pip3 install kiwi ``` 3. 创建一个名为ndnSIM的文件夹,并进入该文件夹: ``` mkdir ndnSIM cd ndnSIM ``` 4. 克隆ns-3-dev、pybindgen和ndnSIM的仓库: ``` git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3 git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM ``` 5. 进入ns-3文件夹,并执行以下命令进行配置和编译: ``` cd ns-3 ./waf configure --enable-examples ./waf ``` 这样,你就可以在Ubuntu 20.04上成功安装ndnSIM了。请注意,这些步骤是根据官方教程提供的信息编写的,确保你的系统满足所有的依赖项,并按照步骤进行操作。 #### 引用[.reference_title] - *1* [在Ubuntu安装ndnSIM](https://blog.csdn.net/qq_44001007/article/details/107575203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ndnSIM学习(一)——安装ndnSIM踩坑:克隆ndnSIM时git无法访问(连接超时)的解决方案](https://blog.csdn.net/MamiyaHasaki/article/details/120578299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值