美文网首页
En fin | 决定写一篇不水的论文

En fin | 决定写一篇不水的论文

作者: 小脑斧的小兔几 | 来源:发表于2017-08-13 19:48 被阅读0次

Paper is always a pain in recent life. Although embarrassed to admit, but I never took it serious and did anything really meaningful. I just took it as a meaningless task and dealt with it skimpily. I cannot bear my attitude anymore. So let me try my best to write codes, do the simulation and write a paper more than just a piece of shit.


实验框架:AMuSt-ndnSIM: Adaptive Multimedia Streaming Framework for ndnSIM

实验前期准备:

1. 拓扑结构:先用11的、再用25的试试;更多topologies

2. 数据文件——已经有真的了: /home/ndnSIM/ccr_dataset  包括Media Presentation Description (MPD)

/home/multimediaData/SVC/BBB/III (纯文件)

FileServer文件源:假的/真的/假装真的:for大论文


实现:

1. Data packet 加入CacheSuggestion参数

若缓存中有对应请求文件,则执行兴趣响应处理模块R010:比较智能缓存表中相应接口和视频文件的下游最近缓存文件块编号cached与所述兴趣包请求的文件块编号i;若前者大,则将对应的缓存窗口状态调整至兴趣包请求的文件块编号所在区域对应状态;否则不进行特殊操作。之后返回包含所请求的文件块数据包,并将数据包内建议缓存参数设置为1。

如何改写data包:基本上可以在两个地方加,data文件meta-info文件

a. 在header层面添加field,不过ndn-cxx的版本要求比较早;而且需要改动data里面的wire相关函数,风险可能比较大,还要自己重新写unit-test;

b. 在meta-info文件中把这部分作为m_appMetaInfo加入;但是这样的话需要涉及app这东西,还没有什么概念。

最好能用b方式实现,感觉成本比较低。

2. Router里面加入智能缓存表IC

智能缓存表包含的信息有:每个接口对应的各视频媒体文件的缓存窗口状态和下游最近缓存文件块编号。

router里的各种表管理

3. Cache算法

model里面写wave的算法实现

发现在data packet里面有cache相关参数和函数

data.cpp中CachingPolicy参数

4. 不要直接在ndn-cxx中修改文件,可以用打patch的方式,建立自己的wave-ndn


资料:

1. 如何连接到github上

BCC之前连不上的根本原因是没有配置好ssh:生成ssh pair——将ssh加到github账户里

2. 无法commit那些submodule的文件夹

正常的顺序应该是直接用submodule的方式clone,但是我已经clone到了本地,且有版本改动。

解决方案:建立 .gitmodules 文件,按照格式为自己的每一个submodule创立连接,然后正常push就OK了。

3. 改动submodule之后,git repository里的版本变得很奇怪,且链接错误

撤回了上一步操作,然后为ndnSIM自己建立一个repository。

由于是submodule,所以遇到了报错,解答见第二个答案

之后有可能用到更详细的submodule的解读,以及这个

之后如果要改submodule,可以直接参考这个

4. 改变文件权限

因为是root里面建立的文件,如果想要在user界面上访问,还要把权限给到user

4.如何切换到更早的git版本


坑:

1. 实验的时候,要记得检查读取文件的目录——并非都是一致的啊

2. CodeLite无法用waf的方式编译

决定给BCC上的Linux加一个图形界面了,然后发现root是不能使用图形界面的,于是有创建了一个user账号,将所有代码迁移过去,然后用重新 ./waf 了一遍,安装了CodeLite作为IDE,也没有什么原因,就是搜到了几个,觉得这个名字格外喜欢……

3. Eclipse下载安装

Eclipse上的oxygen R版本下载不下来,之前用wget不知道,其实每次都只是下载下来了一个html而已,难怪怎么tar 解压都不行。后来才发现就是不行,现在在下载M7。后来才发现是eclipse的下载问题,等了很久就下载了对的。

但之后有报错,先不管了。

4. 一直无法push的真相——竟然是分支不叫master

error: src refspec master does not match any.

5. 避免每一次都要被问ssh密码

eval $(ssh-agent)

ssh-add

添加ssh

6. 对于一个submodule无法看到push的真相——原来没有自己的branch之前,是没法看到push的

新建了master分支——把所有东西推到master上——在github页面刷新见到之前“失踪”的push

创建自己的branch,才能看到所有push

7. 在按照步骤安装itec-ndn的时候,发现

lib找不到

最终解决方案戳这里


常用命令:

cd /home/ndnSIM/ns-3/

./waf --run=


TODO:

1. 改写 svc-2 那个example文件

2. 可以在包里加东西——这个东西可以在上层被看见——实现一个最粗暴的cache算法(根据这个东西存或不存)——实现wave——跑出数据——做分析。


Log

打算试着从一个example开始,看看如何才能拿到下面的相关数据。

1. 将CacheSuggestion的值拿到;

2. 如果CS=false则不存,CS=true则存;

3. 将IC表放到router里面;

4. 将IC表中的两个值拿到;

5. IC表通过简单逻辑为CS赋值;

6. IC表通过wave逻辑为CS赋值;

7. IC表中的值通过wave逻辑决定值。


改变router表

stack helper里面:

CsSize/CsClass

CS相关

router相关

router相关

参数

onInterest算法

改变data包

onData算法

consumer发送包

producer发送data包里面的cs值=1

生成所需数据的算法

R/Matlab处理数据为图表

相关文章

网友评论

      本文标题:En fin | 决定写一篇不水的论文

      本文链接:https://www.haomeiwen.com/subject/hkjolxtx.html