如何在 NS3 中使用 Tcp 变体比较?

2024-01-02

我需要在课堂项目中使用 ns-3 来比较不同类型的 TCP。我是 ns-3 的新手。我不想实施新代码。简而言之,我有两个问题:

  1. 哪个 ns-3 示例最适合我的目的?Tcp-变体-Comparison.cc?
  2. 我怎样才能看到输出。我运行了代码,但没有输出。

您可以使用运行您的示例.waf。导航到您的 ns-3 目录(其中.waf可执行文件位于)并运行:

./waf --run tcp-variants-comparison

这将编译(如果需要)并使用默认参数运行示例。您可以使用更改参数--command-template="%s <args>"。如果你看里面tcp-variants-comparison.cc您可以看到所有可用的参数,例如:

...
cmd.AddValue ("delay", "Access link delay", access_delay);
cmd.AddValue ("tracing", "Flag to enable/disable tracing", tracing);
cmd.AddValue ("tr_name", "Name of output trace file", tr_file_name);
cmd.AddValue ("cwnd_tr_name", "Name of output trace file", cwnd_tr_file_name);
...

这是一个如何存储默认拥塞窗口的示例TCP西木协议进程追踪 file:

./waf --run tcp-variants-comparison --command-template="%s --tracing=1 --cwnd_tr_name=cwndTrace"

然后您可以使用任何您喜欢的工具来显示数据。以下是如何绘制它gnuplot:

$ gnuplot
gnuplot> set terminal png size 640,480
gnuplot> set output "cwnd.png"
gnuplot> plot "cwndTrace" using 1:2 title 'Congestion Window' with linespoints
gnuplot> exit

你还应该看看这个 NS-3 教程 https://www.nsnam.org/docs/tutorial/html/。这是对 NS-3 的很好的介绍,所以请仔细阅读。

因此,要完整回答您的问题,您可以使用此示例进行比较:

cmd.AddValue ("transport_prot", "Transport protocol to use: TcpTahoe, TcpReno, TcpNewReno, TcpWestwood, TcpWestwoodPlus ", transport_prot);

所以用不同的方式运行这个例子transport_prot论证并比较你的痕迹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 NS3 中使用 Tcp 变体比较? 的相关文章

  • 指示远程主机已关闭连接的 NetworkStream.Read 的替代方案?

    关于使用以下命令处理 TCP IP 连接TcpClient类 除了等待之外 还有其他方法可以检查远程主机是否已关闭连接吗 NetworkStream Read返回0的方法 您可以使用IOControlCode KeepAliveValues
  • Indy TCP - 循环读取数据

    TCP 服务器每 8 毫秒连续发送一次数据帧 我想编写一个能够接收这些数据帧的客户端 Indy 9 中是否有任何程序可以知道缓冲区中是否有可用数据 我当前的程序如下 我正在使用线程 procedure TThreadRead Execute
  • 如何在 NS-3/ndnSIM 中模拟过程延迟?

    我想在发送兴趣包之前在消费者节点上添加一些进程延迟 我发现 Simulator Schedule 函数可以实现这个目的 但我不确定如何使用它 因为 ndnSIM 有自己的协议流程 如果我安排一个新事件 可能会导致一些意外的结果 或者是否有其
  • 如何识别用户空间和内核空间之间的特定套接字?

    我在用户空间中有一个库 可以拦截套接字层调用 例如socket connect accept 等等 我只处理 TCP 套接字 在内核空间中 我有一个网络内核模块 它处理所有 TCP 连接 我需要能够在驱动程序中识别哪些套接字被用户空间库拦截
  • Boost ASIO:服务器如何知道客户端是否仍然连接?

    我在用boost asio对于服务器 客户端应用程序 服务器一次只接受一个连接 我想知道服务器验证客户端是否仍然连接的最佳方法是什么 这样做的目的是我希望能够知道客户端是否崩溃 以便我可以重新开始侦听新的连接尝试 在我的应用程序中 我使用以
  • Linux Socket write() 的错误文件描述符 错误的文件描述符 C

    我对 write 2 函数有一个有趣的问题 PrepareResponseForSetCoordinates 函数会导致写入时出现错误的文件描述符错误 这是错误行 perror 写入套接字时出错 总产量 写入套接字时出错 文件描述符错误 我
  • Nodejs TCP连接客户端端口分配

    我使用nodejs在客户端和服务器之间创建了tcp连接 网络模块 https nodejs org api net html 服务器正在侦听已经预定义的端口 并且客户端正在连接到该端口 据我了解客户端的端口是由节点动态分配的 那是对的吗 节
  • Node.js 找不到模块“tcp”

    节点在以下行崩溃 var tcp require tcp 错误文本 node js 201 throw e process nextTick error or error event on first tick Error Cannot f
  • 如何在 MAC OS X 中获得最大 TCP 接收/发送窗口?

    如何在 MAC OS X 中获得最大 TCP 接收 发送窗口 Linux中有两个ctl proc sys net core rmem max 最大 TCP 接收窗口 NET CORE RMEM MAX proc sys net core w
  • tcp_max_syn_backlog 和 somaxconn 有什么区别?

    我一直在阅读一些关于 Linux 上的 TCP 实现的文章 我很困惑 它们之间有什么区别net ipv4 tcp max syn backlog and net core somaxconn和backlog作为参数传递给listen 系统调
  • 查找网络中的所有IP地址

    我正在尝试用 C 来做这个 我需要找到我的网络中所有活动的 IP 地址并将它们显示在列表中 我可以 ping 网络中所有可用的 1 255 IP 地址 但我想让这个过程更快 此代码在大约 1 秒内扫描我的网络 255 个 D 级段 我在 V
  • 在 C# 中通过 TCP 发送 C 结构体

    我正在编写一个程序 通过 TCP 与一台设备的管理界面进行交互 问题是 设备的文档是用C写的 而我写的程序是用C 写的 我的问题是 文档指定 通信基于基于C结构的API缓冲区 再多的谷歌搜索似乎也无法让我找到这个 API 或如何通过 TCP
  • 使用 iPhone 作为热点时 TCP 连接无法正常工作

    我正在开发一个 iOS 应用程序 它通过 TCP 套接字连接到在 Android 上运行的服务器应用程序 为了找到第二个设备的 IP 我使用 UDP 请求并接收服务器的 IP 当我将它们连接到 Wi Fi 网络或使用 Android 设备作
  • 是否可以通过互联网在两个移动设备 (iPhone) 之间连接套接字?

    是否可以通过互联网在两个移动设备 iPhone 之间连接套接字 我正在尝试发现每个设备的IP并直接连接 我知道可以使用 Bonjour 来完成 但这只适用于本地网络 我需要通过互联网在两个设备之间建立高速连接 Thanks 如果你有两个 I
  • 如何模拟 TCP/IP 错误?

    在多层应用程序上 我需要模拟各种 TCP IP 错误来测试一些重新连接代码 有谁知道我可以使用什么工具 基于 Windows 来实现此目的 谢谢 Scapy http secdev org projects scapy 允许您控制数据包的各
  • 在 Python 中通过 TCP 套接字发送文件

    我已经成功地将文件内容 图像 复制到新文件 然而 当我通过 TCP 套接字尝试同样的事情时 我遇到了问题 服务器循环未退出 客户端循环在到达 EOF 时退出 但服务器无法识别 EOF 这是代码 Server import socket Im
  • ZeroMQ可以用来接受传统的套接字请求吗?

    我正在尝试使用 ZeroMQ 重写我们的旧服务器之一 现在我有以下服务器设置 适用于 Zmq 请求 using var context ZmqContext Create using var server context CreateSoc
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include

随机推荐

  • 在哪里可以找到 Oracle JVM 的默认 -Xss(堆栈大小)值?

    有没有人找到过列出默认值的单个 JVM 文档 Xss不同版本的 Oracle JVM 和不同操作系统的值 我已经能够在中找到这张表jrockit 文档 http download oracle com docs cd E13150 01 j
  • 单例组件不能依赖于作用域组件

    在工作的同时Android应用程序使用Dagger2用于定义时的依赖注入Dagger组件我收到此错误 Error 13 1 error This Singleton component cannot depend on scoped com
  • 实现 copy.deepcopy() 克隆函数

    仅用于教育目的 我正在尝试实现一个克隆功能copy deepcopy 经过一些有趣的代码玩弄和谷歌搜索后 我想出了以下函数 def my deepcopy data if isinstance data dict result for ke
  • 为什么里氏代换原理需要论证是逆变的?

    其中一项规则是里氏替换原则 https en wikipedia org wiki Liskov substitution principle施加在派生类中的方法签名是 子类型中方法参数的逆变 如果我理解正确的话 就是说派生类的重写函数应该
  • 如何设置JQGRID ROW背景颜色?

    我想根据条件设置 JQGRID 行 bgcolor 怎么做 我正在使用 php 提前致谢 look at jqGrid 根据单元格值对网格中的整行进行着色 https stackoverflow com questions 2931732
  • 使用 REST API 将测试结果与测试用例链接起来

    我们使用 cypress 为 Web 应用程序实现了 UI 测试 并且它们在 Azure DevOps 中的发布管道上执行 我们需要将 ui 测试和测试结果与测试计划中定义的测试用例链接起来 为了将 ui 测试与测试用例链接起来 我们使用
  • 什么是MySQL排序规则,如何在实践中使用它?

    假设我想用 4 种语言用一些奇怪的语言制作一个搜索引擎 英语 瑞典 希伯来语 阿拉伯 我如何在 MySQL 中设置排序规则 排序规则定义 用于存储字符的字符集 UTF 8 ISO 8859等 排序和呈现规则 如果您想要不同的语言 正如您提到
  • DXF文件块中的polyLines顶点和点之间有什么关系?

    DXF文件块中的折线和点之间有什么关系 如果我提供档差表文件 如何连接它们 另一个问题 缩放点太少 所以效果不好 如下图所示 作为第一种答案 如果缩放点太少 是否需要在两个已知缩放点形成的圆弧上生成新的缩放点 不存在这样的关系 DXF 格式
  • try catch和finally块的执行顺序

    我对 try catch 和 finally 块执行的顺序感到困惑 我还想知道什么时候应该使用try catch块以及应该在try catch块中放入什么 我还想知道 try 块中是否出现了一些异常 那么如果采取了与 try 块相对应的操作
  • 对多个Mysql语句进行分组以获取多个状态的计数[重复]

    这个问题在这里已经有答案了 目前 我正在使用 Mysql 和 CodeIgniter 在特定时间范围内从数据库中获取条目 每个条目在数据库中的状态为 D N Y 现在 为了显示此数据 我对每个状态都有一个不同的语句 我想将其分组为 1 个语
  • 使用 EBX 寄存器进行内存访问的模式是什么?

    我正在学习逆向工程的基础知识 在逆向crackme时 我碰巧在几乎每个函数的开头都看到了这种模式 pushl ebp movl esp ebp pushl ebx because ebx is a callee saved register
  • Google 地图 API v3 颜色自定义

    我正在尝试使用谷歌地图实现如上图所示的地图 我通过在 StyledMapType 对象中将饱和度设置为 100 来制作地图灰度 并使用 Circle 对象在标记周围绘制半径 现在整个地图都是灰度的 因为我无法在圆圈内设置另一个饱和度级别 有
  • 云中安全的协作软件开发环境

    我正在寻找一个安全的协作软件开发环境 例如在云中工作的 Chaperon 它应该防止代码被复制粘贴到环境之外 并且应该采取一切措施来防止 检测和阻止 IP 盗窃 当然 它应该包括用于颠覆跟踪和调试的所有常用 IDE 工具 有什么建议么 这样
  • 运行任何单元格的 Google Colab 都会收到与 JavaScript 相关的错误

    执行任何单元格时收到浏览器白色弹出窗口 Error Could not load the JavaScript files needed to display output This is probably because your Goo
  • 如何监听(“关闭”事件)flutter web 中的文件下载窗口?

    我的代码允许使用打开文件上传窗口universal html InputElement uploadInput universal html FileUploadInputElement 网页颤动并选择必要的文件将它们加载到项目中 如果用户
  • 在舍入为 0 之前,R 呈现的最小数字是多少?

    我正在使用 R 软件 引导 Kolmogorov Smirnov 测试 对非常大的数据集进行一些统计分析 这意味着我的 p 值都非常小 我已经 Bonferroni 纠正了我执行的大量测试 这意味着我的 alpha 值也非常小 以便拒绝原假
  • 是否有与 goog.object.extend 等效的纯函数?

    Per 关闭文档 http docs closure library googlecode com git namespace goog object html 用另一个对象扩展一个对象 这是 就地 操作的 它不会创建新对象 示例 var
  • Node.js 和单页 Web 应用程序

    我正在寻找后端的express js 和客户端的JS 我的应用程序是单页 Web 应用程序 服务器仅提供 JSON 消息 我的问题是关于 Express 的 路由 是否应该使用路由来连接 UI 和服务器端业务逻辑 这将如何与我的单页应用程序
  • 将一维 Numpy 数组作为行添加到 DataFrame

    是否有一个函数可以让您有效地将 NumPy 数组直接附加到 DataFrame 中 变量 df pd DataFrame columns col1 col2 col3 Out 1 Col1 Col2 Col3 arr np empty 3
  • 如何在 NS3 中使用 Tcp 变体比较?

    我需要在课堂项目中使用 ns 3 来比较不同类型的 TCP 我是 ns 3 的新手 我不想实施新代码 简而言之 我有两个问题 哪个 ns 3 示例最适合我的目的 Tcp 变体 Comparison cc 我怎样才能看到输出 我运行了代码 但