
ns3网络仿真
逆袭的小羊
这个作者很懒,什么都没留下…
展开
-
NS3中跟踪发送速率或接收速率
NS3中跟踪发送速率或接收速率原创 2023-03-02 11:01:53 · 893 阅读 · 1 评论 -
NS3运行Reno,BBR,CUBIC等拥塞控制算法
从ns-3.33版本开始,NS3支持CUBIC。从ns-3.34版本开始,支持BBR v1。呜呜呜,感谢前人!!!我用的是ns-3.34, 代码直接改自ns-3.34/examples/tcp/tcp-linux-reno.cc, 呃。也不用改,直接拷贝到scratch文件夹下运行就行…不过运行的只有reno,可以稍微,稍微改一丢丢:可以运行:NewReno,Reno,BBR, CUBIC,Veno等拥塞控制算法// Network topology//// n0 --------原创 2022-05-25 15:22:50 · 4033 阅读 · 8 评论 -
NS3 csma网络莫名丢包
这两天在做NS3仿真的时候,发现了一个莫名的问题,我的实验环境大概是这样的//实验拓扑:// n2 --------------- --------------- n4// | point to point |// csma n0 =========== n1 csma//原创 2022-05-03 16:09:15 · 1145 阅读 · 5 评论 -
NS3统计丢包数
ns3可以根据数据包的序列号自己统计丢包,统计方法如下:发送端//添加头文件#include "ns3/packet-loss-counter.h"//在生成数据包时,添加包头 SeqTsHeader seqTs; seqTs.SetSeq (m_sent); Ptr<Packet> p = Create<Packet> (m_size-(8+4)); // 8+4 : the size of the seqTs header p->AddHeader原创 2022-04-25 20:55:55 · 2295 阅读 · 0 评论 -
NS3数据包时延计算-数据包头
如果要在接收端得到数据包的传输时延,那么就需要在接收端得到数据包的发送时间和数据包到达时间,后者非常简单,直接在收到包的时候Simulator::Now ().GetSeconds ()即可,而怎样得到数据包的发送时间呢。有三种方法:创建跟踪源并使用回调来获取每个数据包的创建/发送时间和发送/接收时间。 然后你可以计算延迟使用标签来标记数据包的创建/发送时间,并在收到时读取此标签并计算延迟使用包头(或仅包头中的字段)包含创建/发送的时间,并在收到包头时读取该包头第二种方法见:NS3数据包时原创 2022-04-25 20:10:51 · 1892 阅读 · 1 评论 -
NS3数据包时延计算-插入时间戳Tag
如果要在接收端得到数据包的传输时延,那么就需要在接收端得到数据包的发送时间和数据包到达时间,后者非常简单,直接在收到包的时候Simulator::Now ().GetSeconds ()即可,而怎样得到数据包的发送时间呢。有三种方法:创建跟踪源并使用回调来获取每个数据包的创建/发送时间和发送/接收时间。 然后你可以计算延迟使用标签来标记数据包的创建/发送时间,并在收到时读取此标签并计算延迟使用标头(或仅标头中的字段)包含创建/发送的时间,并在收到标头时读取该标头这里介绍第二种方法,第二种方原创 2022-04-21 13:28:18 · 2483 阅读 · 2 评论 -
NS3中数据包添加有效负载
目的:将自己想发送的内容放到packet中,使其发送到客户端显示。说白点就是让数据包夹带私货,可以输出时延、丢包率等信息。你要是问为什么不使用日志系统,呃,问就是不会…发送端:在生成数据包函数中添加或修改:std::ostringstream msg; msg << "I love you!" << '\0';uint16_t packetSize = msg.str().length()+1;Ptr<Packet> packet = Create<原创 2021-07-20 21:37:48 · 884 阅读 · 4 评论