ns3 myfirst.cc 两个节点点对点通信
首先在ns3.25/examples/tutorial/下找到 first.cc文件,将他拷贝到到scratch目录下。
然后为了方便将代码打出来
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ #include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/internet-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/applications-module.h" using namespace ns3; NS_LOG_COMPONENT_DEFINE ("FirstScriptExample"); int
main (int argc, char *argv[])
{
Time::SetResolution (Time::NS);
LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO); NodeContainer nodes;
nodes.Create (); PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms")); NetDeviceContainer devices;
devices = pointToPoint.Install (nodes); InternetStackHelper stack;
stack.Install (nodes); Ipv4AddressHelper address;
address.SetBase ("10.1.1.0", "255.255.255.0"); Ipv4InterfaceContainer interfaces = address.Assign (devices); UdpEchoServerHelper echoServer (); ApplicationContainer serverApps = echoServer.Install (nodes.Get ());
serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0)); UdpEchoClientHelper echoClient (interfaces.GetAddress (), );
echoClient.SetAttribute ("MaxPackets", UintegerValue ());
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue ()); ApplicationContainer clientApps = echoClient.Install (nodes.Get ());
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0)); Simulator::Run ();
Simulator::Destroy ();
return ;
}
首先研究头文件
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/internet-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/applications-module.h"
这些头文件都被存放在build目录下的一个ns3的目录下,我们可以根据自己所需要的功能引用相应的头文件进来
using namespace ns3;
ns3的命名空间,这样我们就可以不用再写 ns3::xxx ,否则会编译错误。
NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");
日志组件,这句话一看上去有点蒙,实际上的功能就是 生成一个名字为“FirstScriptExample"的日志组件。
Time::SetResolution (Time::NS);
设置时间单位为纳秒,虽然我不是很明白为什么要设置时间单位为纳秒??这个是百度得到的 存在疑点
LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);
是两个日志组件生效,并且日志级别设置为INFO,这个两个日志是内建在Echo Client和Echo Sever的应用中。等下会有用到。
NodeContainer nodes;
nodes.Create (2);
这句话差不多就是 声明一个节点容器 nodes,然后在李勇Create(2)生成两个节点。
PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));
这个PointToPointHelper类负责来设置网络设备和信道属性。
其中把网络设备中“DateRate"数据速率设置为5Mbps,信道属性的延迟设置为2ms. 这个等下会在后面的生成结果,以及自己所学网络知识解释一下他用在什么地方。
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
前面已经完成了用NodeContainer来创建节点,用PointToPointHelper来做关于创建、配置、安装的工作。现在他们两个之间执需要连接起来。需要一个NetDevices对象列表,可以通过NetDeviceContainer来存放他们,就像使用第一个NodeContainer对象来存放自身所创建的节点一样。
PointToPointHelper的Install()方法一个NodeContainer对象作为一个参数,以一个NetDevice Container为返回对象。
对于NodeContainer的每一个节点,因为这里建立的是点对点的信道,所以明确的2个节点。一个PointToPointChannel对象被创建,2个PointToPointNetDevices和他连接。
所以最终就得到了,两个节点,每个节点安装了点到点网络设备,这两个网络设备之间安装了点到点的信道,2个设备会被配置在一个有2ms传输时延的信道上以5Mbps的速率传送数据。
InternetStackHelper stack;
stack.Install (nodes);
InternetStackHelper会为NodeContainer的每一个Node安装一个网络协议。
Ipv4AddressHelper address;
address.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4AddressHelper为节点上的设备设置IP地址。通过SetBase方法告诉它从10.1.1.0开始以子网掩码为255.255.255.0分配地址,地址分配默认是从1开始单调增长。
Ipv4InterfaceContainer interfaces = address.Assign (devices);
这个代码完成了地址配置, ns3中使用Ipv4Interface对象将一个IP地址同一个设备关联起来。而Ipv4InterfaceContainer提供了这样的功能,作为Ipv4Interface对象的容器。
到这里已经完成了一个 安装了了协议栈,配置了IP地址类的点到点的网络。 现在就是要用它做数据通信。
UdpEchoServerHelper echoServer (9); ApplicationContainer serverApps = echoServer.Install (nodes.Get (1));
serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0));
声明了一个UdpEchoServerHelper 像其他Help类一样这个也不是应用本身,而是一个用来创建真正应用的对象,其中端口为9号端口。
并在刚刚NodeContainer里面的2号节点 这里0为1号节点,1为2号节点。装入服务器应用,同样的这个的返回是一个Application对象,需要一个ApplicationContainer作为容器来存储
应用对象需要一个时间参数 ,开始以及停止 ,这里两行使得echo服务应用在1s时开始,在10s的时候停止。
UdpEchoClientHelper echoClient (interfaces.GetAddress (1), 9);
echoClient.SetAttribute ("MaxPackets", UintegerValue (2));
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));
同样的客户端应用,首先给客户端的 UdpEchoClientHelper类 传入要客户端要发送数据到的IP地址,以及端口号,这里设置的是服务器的设备IP地址,以及刚刚设置接受9号端口。
MaxPackets为在模拟期间能发送的最多的分组个数
Interval 为两个分组的要等待多少时间
PacketSize 为每个分组承载多少数据。 这里的参数1024是字节,不是位!!!
ApplicationContainer clientApps = echoClient.Install (nodes.Get (0));
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0));
然后再用同样的方法,把一号节点作为客户端,把客户端应用装在一号节点上,
应用开始服务为2s,结束服务为10s
至于为什么是2s开始,我也是有点蒙,查了有关资料,说是要等服务器生效1s后才开始作为服务比较合理。也可以通过改变上面参数为1,这是客户端就变成了1s的时候开始服务,就是1s时候开始发送数据。
Simulator::Run ();
Simulator::Destroy ();
启动模拟器,Simulator::Run(),系统会开始遍历预设事件的列表并执行。
执行完毕用,就调用Simulator::Destory()来销毁刚刚所创建的一系列东西。
在eclipse下执行
aaarticlea/png;base64,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" alt="" />
运行结果
这是发送一个包,即客户端发送一个1024字节的分组到服务器,而这里客户端的端口我觉得应该是随机设定的,因为从头到尾就没有碰到过49153端口。
而为什么是 2.00369s才收到 我做了一个运算 即在2s的基础上 2s+1024*8/(5*10^6)(发送时延)s+0.002s(传输时延)=2.0036384s 与20.00369s还有一定差距,可差距已经很小,所以个人觉得把那部分时延可以视为处理时延(这里不存在排队时延).
ns3 myfirst.cc 两个节点点对点通信的更多相关文章
- httpd 服务的两个节点的HA
实验目的是:实现两个节点的http和nfs服务的HA集群. 实现条件:准备两个节点.node1,node2作为HA1,HA2提供集群服务.在node1和node2分别按照httpd服务.挂载nfs服务 ...
- lintcode:交换链表当中两个节点
题目 给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点.保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做. 注意事项 你需要交换两个节点而不是改变节点的权值 ...
- SQL Server Alwayson配置两个节点加共享文件夹仲裁见证
标签:MSSQL/节点和共享文件夹多数 概述 之前讲过多数节点的仲裁配置,多数节点一般3个节点以上的奇数个节点:常见的是使用3个节点节点多了也是浪费因为Alwayson的只读路由只能利用到一个只读副本 ...
- leetcode 235 236 二叉树两个节点的最近公共祖先
描述: 给定二叉树两个节点,求其最近公共祖先.最近即所有公共祖先中深度最深的. ps:自身也算自身的祖先. 235题解决: 这是二叉搜索树,有序的,左边小右边大. TreeNode* lowestCo ...
- lintcode-511-交换链表当中两个节点
511-交换链表当中两个节点 给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点.保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做. 注意事项 你需要交换两个 ...
- 剑指Offer(第二版)面试案例:树中两个节点的最低公共祖先节点
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/74612786冷血之心的博客) 剑指Offer(第二版)面试案例:树 ...
- 剑指offer-第七章面试案例2(树中两个节点的公共祖先节点)
import java.util.LinkedList; import java.util.Queue; import java.util.Stack; //树中两个节点的最低公共祖先 //第一种情况 ...
- 搭建两个节点的大数据集群-1.hdfs集群
0.规划 两个节点: ip 部署的程序 备注 192.168.56.2/bigdata.lzf namenode,datanode,NodeManager,hive,presto,mysql, ...
- Merkle 树——空间换时间,分而治之的hash表,通过根节点是由它的两个子节点内容的哈希值组成来校验数据完整性,定位篡改的数据位置
Merkle 树 图 1.5.6.1 - Merkle 树示例 默克尔树(又叫哈希树)是一种二叉树,由一个根节点.一组中间节点和一组叶节点组成.最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的 ...
随机推荐
- [luogu2469] 星际竞速
题面 巨佬一眼就能看出这是最小路径覆盖, 我这个蒟蒻还是太弱了... 我们可以知道跳跃值为点权w[i], 两点之间距离为边权ww 对于每个点, 在最小路径覆盖问题中, 假设每个点都是一条路 ...
- ubuntu16.04忘记密码解决方案
主要解决通过sudo apt-get install安装mysql时输入密码时输错导致安装成功后,无法登陆MySQL. 之前遇到这种问题时,我个人比较喜欢通过卸载并重新安装解决,后来觉得这个虽然可以解 ...
- pyspider爬取数据存入es--2.测试数据库连通性
写一个简单案例测试能否将数据写入es #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2017-10-27 08:35:57 ...
- VC基于单文档OpenGL框架
本文是在VC6.0的环境下,运用MFC实现的OpenGL最基本框架,需要简单了解MFC编程(会在VC6.0里创建MFC单文档应用程序就行),甚至不必了解OpenGL的知识.以下是具体的步骤. 1.创建 ...
- [转]学习C#:Attribute与Property
一.什么是Attribute 先看下面的三段代码: 1.自定义Attribute类:VersionAttribute [AttributeUsage(AttributeTargets.Class)] ...
- POJ3468(线段树区间求和+区间查询)
https://vjudge.net/contest/66989#problem/C You have N integers, A1, A2, ... , AN. You need to deal w ...
- 何谓BLDC电机?BLDC电机是如何旋转的?
何谓BLDC电机?BLDC电机是如何旋转的?
- tomcat-在eclispe中配置远程调试
在eclispe中新建web应用,名字叫webtest.里面只有一个HelloServlet.Web.xml配置如下. 修改tomcat的启动脚本startup.bat.复制startup.bat为s ...
- ASP.NET Core MVC中的IActionFilter.OnActionExecuting方法,可以获取Controller的Action方法参数值
用过ASP.NET Core MVC中IActionFilter拦截器的开发人员,都知道这是一个非常强大的MVC拦截器.最近才发现IActionFilter的OnActionExecuting方法,甚 ...
- linux 《vmware下克隆的centos无法配置固定ip》
1.用vmware克隆一个centos 2.进入centos,打开命令行输入ifconfig,运行后发现没有eth0 3.运行网卡启动命令ifconfig eth0 up,再运行ifconfig wa ...