
NDN学习笔记
文章平均质量分 82
间宫羽咲sama
阴阳使徒于黑棺沉眠,无垢明灯于晦明绽放,在无月的天空下觉醒吧!
展开
-
记录我用whiptail写的几个小交互式脚本(搜索目录下包含指定字符串的文件并用VScode选择想要的打开+执行带命令行选项的代码)
文章目录前言主脚本Interactive.sh搜索包含指定字符串的文件StringGrep.shExecuteNDN.shTo be continued...前言最近在看NDN的代码,把一些常用的功能写成了脚本。突然在想能不能做成交互式的脚本呢?于是百度了下,发现 whiptail 支持这个,并且 Ubuntu 自带这玩意,并且在百度上找到了参考链接——交互式shell脚本对话框----whiptail指令。于是,准备开工。主脚本Interactive.sh代码如下——#!/bin/bash#原创 2021-11-23 16:20:09 · 1229 阅读 · 0 评论 -
ndnSIM学习(十一)——data.cpp和interest.cpp源码分析
文章目录前言data.cpp前言data.cpp 和 interest.cpp 用于处理兴趣包和数据包。data.cpp删掉了部分我认为不重要的东西,比如 class Error 。class Data : public PacketBase, public std::enable_shared_from_this<Data>{public: // 构造一个Name为name的空Data包 explicit Data(const Name& name = Name(原创 2021-11-03 17:56:22 · 710 阅读 · 0 评论 -
ndnSIM学习(十)——apps之ndn-producer.cpp和ndn-consumer.cpp源码分析
文章目录前言ndn-producer.hppndn-consumer.hppndn-consumer-cbr.hpp其他消费者前言在前面的文章ndnSIM学习(四)——examples之ndn-simple.cpp超详细剖析中,我们逐行剖析了 ndn-simple.cpp 这个example的代码逻辑。其中消费者consumer和生产者producer是整个代码运行的重点。在前面的文章ndnSIM学习(九)——从consumer发兴趣包到producer返回data包的全过程中,我们剖析了整个兴趣包的原创 2021-10-27 18:31:31 · 1071 阅读 · 0 评论 -
ndnSIM学习(九)——从consumer发兴趣包到producer返回data包的全过程
文章目录前言生产者发包消费者回包总结前言在上篇文章ndnSIM学习(八)——examples之ndn-simple.cpp每个函数逐行剖析中,我们分析了整个 ndn-simple.cpp 工作的底层原理。其中作为核心的,自然是整个网络的工作过程了:消费者是如何发送出兴趣包的?生产者是如何根据兴趣包返回数据包的?因为这部分内容与上篇文章相对独立,也比较冗长,所以我将这部分内容单独提出来作为了一篇文章。生产者发包上篇文章中,我们知道了:整个ns3软件的仿真流程就是:添加事件->仿真器执行所有事件。原创 2021-10-26 19:00:20 · 1828 阅读 · 2 评论 -
ndnSIM学习(八)——examples之ndn-simple.cpp每个函数逐行剖析
文章目录前言源代码0、先聊聊Simulator1、Config::SetDefaultCommandLine::ParseNodeContainer::CreatePointToPointHelperndn::StackHelperndn::StrategyChoiceHelper::InstallAll前言前面的文章ndnSIM学习(四)——examples之ndn-simple.cpp超详细剖析中,我们剖析了 ndn-simple.cpp 的每一行代码的大致功能。在这篇文章中,我将跳每一行代码的子函原创 2021-10-24 18:49:44 · 1095 阅读 · 1 评论 -
ndnSIM学习(七)——转发处理forwarder.cpp、forwarder.hpp
文章目录前言信号(Signal)类前言相比起之前的代码, forwarder.cpp 是一个大工程,头铁硬碰显然是不合适的。还是庖丁解牛的老例子,针对这个大工程,我们应该找到一个合适的切入点。在我看来,“信号( Signal )这个类就是一个很好的切入点”。信号(Signal)类所谓信号类,其实就是存了一堆函数(指针)。每当调用信号的时候,相当于依次执行这些函数。想象一下,假设现在是夏天,你一回到宿舍就要打开空调、开灯、打开电脑、打开QQ、打开游戏(x);离开宿舍时要电脑、关灯、关空调。那么你的一原创 2021-10-20 19:46:36 · 2314 阅读 · 4 评论 -
ndnSIM学习(六)——内容缓存CS、cs.cpp、cs.hpp
文章目录前言cs.hpp与cs.cppcs.cpp的Cs::insert函数详解总结前言因为我们组要对内容缓存CS部分的代码进行修改,虽然我还是个萌新,对整个NDN框架还没入门,然而还是尝试看了下CS部分的代码。从今往后,不做特殊声明,约定定义: <ns-3-folder> 为 ~/ndnSIM/ns-3 路径定义: <ndnSIM-folder> 为 ~/ndnSIM/ns-3/src/ndnSIM 路径定义: <build-ndnSIM-folder&g原创 2021-10-13 21:47:35 · 1340 阅读 · 0 评论 -
ndnSIM学习(五)——data包和interest包的tlv编码、解码过程以及如何判断包的类型
文章目录前言一些前置知识非负整数编码规则TLV编码data包和interest包的编码规则正片:data包和interest包是如何执行tlv编码、解码过程编码过程解码函数、判断包的类型??前言前几天,我们组打算加一种新的数据包类型,这就需要我们了解data包和interest包的编解码过程,从而仿照这一过程,加入我们的新的包的类型。具体师姐给我的任务要求是:节点收到一个包,一般是根据第一个Type字段判断包的类型,Type=5是兴趣包,Type=6是数据包,然后执行对应的TLV解码和转发操作。请原创 2021-10-10 17:03:05 · 1782 阅读 · 0 评论 -
ndnSIM学习(四)——examples之ndn-simple.cpp超详细剖析
文章目录前言代码分析0.头文件作用详细解析1.配置网络初始参数作用详细解析2.命令行参数解析作用3.创建3个网络节点作用详细解析4.定义网络拓扑结构作用详细解析5.将所有节点添加到ndn Stack里作用详细解析6.设置转发策略作用详细解析7.Consumer设置作用详细解析8.Producer设置作用详细解析9.开始执行仿真作用结语前言由于我还是一名大四学生,也是一名ndnSIM的初学者,在文章中难免会出现许多错误。希望初学者看到本文时不要全盘相信,也欢迎大佬们对我的文章进行斧正!代码分析首先先从原创 2021-10-03 19:20:28 · 2976 阅读 · 4 评论 -
ndnSIM学习(三)——ndnSIM源码阅读计划
文章目录源码阅读计划官方给的文件目录结构目标制定源码阅读计划作为一个ndnSIM的初学者,根据师姐的建议,先看这些内容,用以对整个ndnSIM的结构有着初步的了解(注意:我的目录中的 newndnSIM 对于普通人而言一般是 ndnSIM 目录, xxx.* 代表 xxx.cpp xxx.hpp 等)——~/newndnSIM/ns-3/src/ndnSIM/apps 目录~/newndnSIM/ns-3/src/ndnSIM/apps/ndn-consumer.* (消费者)~/newndnS原创 2021-10-03 15:21:43 · 13499 阅读 · 1 评论 -
ndnSIM学习(二)——配置VScode的跨文件转到定义
文章目录VScode中C++的「转到定义」跨文件「转到定义」VScode中C++的「转到定义」下载了VScode,首先安装了这些东西。有些是顺手安装的,真正重要的其实就只有 C++ Intellisense ,这个插件是用来实现「转到定义」的。安装前的效果安装后的效果跨文件「转到定义」「转到定义」功能的确有了,然而不能跨文件查询,就好像给你了价值9999元的神器宝箱,却没给你钥匙一样操蛋。因此,开始研究如何跨文件「转到定义」吧!参考链接:https://www.cnblogs.com/h原创 2021-10-01 23:39:57 · 2511 阅读 · 0 评论 -
ndnSIM学习(一)——安装ndnSIM踩坑:克隆ndnSIM时git无法访问(连接超时)的解决方案
文章目录前言下载速度过慢git clone过慢甚至无法访问--recursice参数导致子模块无法使用git镜像前言今天装网络仿真软件 ndnSIM ,我用的 Ubuntu20.04 ,装的版本是 ndnSIM2.8 ,把所有踩过的坑说一遍吧。按照官方的教程https://ndnsim.net/current/getting-started.html, Ubuntu20.04 的安装代码应当为sudo apt install build-essential libsqlite3-dev libboo原创 2021-10-01 22:37:12 · 2054 阅读 · 9 评论