├── dc.pcap ├── .DS_Store ├── img ├── .DS_Store ├── pcaq.jpg ├── xml.png └── dc_pic.jpg ├── LICENSE ├── README.md └── dc.cc /dc.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tc-homework/TC_NETWORK_Project-ns3_data_center/HEAD/dc.pcap -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tc-homework/TC_NETWORK_Project-ns3_data_center/HEAD/.DS_Store -------------------------------------------------------------------------------- /img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tc-homework/TC_NETWORK_Project-ns3_data_center/HEAD/img/.DS_Store -------------------------------------------------------------------------------- /img/pcaq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tc-homework/TC_NETWORK_Project-ns3_data_center/HEAD/img/pcaq.jpg -------------------------------------------------------------------------------- /img/xml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tc-homework/TC_NETWORK_Project-ns3_data_center/HEAD/img/xml.png -------------------------------------------------------------------------------- /img/dc_pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tc-homework/TC_NETWORK_Project-ns3_data_center/HEAD/img/dc_pic.jpg -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ns3_data_center 2 | --- 3 | 4 | ## 运行环境 5 | 6 | Ubuntu 18.04 7 | 8 | --- 9 | 10 | ## 使用软件 11 | 12 | Vmware虚拟机 13 | 14 | ns3模拟器 15 | 16 | Wireshark 17 | 18 | --- 19 | 20 | ## 项目简介 21 | 在传统的大型数据中心,网络通常是三层结构。 22 | Cisco称之为:分级的互连网络模型(hierarchical inter-networking model)。 23 | 这个模型包含了以下三层: 24 | Access Layer(接入层):有时也称为Edge Layer。 25 | 接入交换机通常位于机架顶部,所以它们也被称为ToR(Top of Rack)交换机,它们物理连接服务器。 26 | Aggregation Layer(汇聚层):有时候也称为Distribution Layer。 27 | 汇聚交换机连接Access交换机,同时提供其他的服务,例如防火墙,SSL offload,入侵检测,网络分析等。 28 | Core Layer(核心层):核心交换机为进出数据中心的包提供高速的转发。 29 | 为多个汇聚层提供连接性,核心交换机为通常为整个网络提供一个弹性的L3路由网络。 30 | 我们所做的,便是模拟一个数据中心的网络结构. 31 | 32 | --- 33 | 34 | ## 网络拓扑结构图 35 | 36 | ![pic](https://github.com/acdzh/ns3-project/blob/master/img/dc_pic.jpg) 37 | 38 | --- 39 | 40 | ## 文件说明 41 | 42 | dc.cc 是 ns3 源码文件 43 | 44 | dc.pcap 是 dc.cc 生成的抓包文件,使用 Wireshark 分析 45 | 46 | ![pic](https://github.com/acdzh/ns3-project/blob/master/img/pcaq.jpg) 47 | 48 | dc.xml 是 dc.cc 生成的可视化文件,使用 NetAnim 分析 49 | 50 | ![pic](https://github.com/acdzh/ns3-project/blob/master/img/xml.png) 51 | 52 | --- 53 | 54 | ## 实验步骤 55 | 56 | 1.编写程序模拟网络拓扑及网络消息传输状态(多对多) 57 | 2.利用Wireshark和NetAnim对输出的文件进行分析 58 | 3.得出实验小结 59 | ## 实验小结 60 | 61 | 本次实验学习了Ubuntu的基础用法,对于网络链接协议(ssh、NAT等用于连接虚拟机网络的)有了深入了解 62 | 学习了ns3.29的环境配置,使用ns3模拟了一个数据中心的网络结构,对分级的互连网络模型有了具体的了解,熟悉了弹性的L3路由网络结构。 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /dc.cc: -------------------------------------------------------------------------------- 1 | #include "ns3/core-module.h" 2 | #include "ns3/network-module.h" 3 | #include "ns3/csma-module.h" 4 | #include "ns3/internet-module.h" 5 | #include "ns3/applications-module.h" 6 | #include "ns3/ipv4-global-routing-helper.h" 7 | 8 | //#include "ns3/netanim-module.h" //Default does not output xml 9 | 10 | 11 | using namespace ns3; 12 | 13 | NS_LOG_COMPONENT_DEFINE("SecondScriptExample"); 14 | 15 | int 16 | main(int argc, char *argv[]) 17 | { 18 | 19 | uint32_t nCsma = 3; 20 | 21 | //output log 22 | LogComponentEnable("PacketSink", LOG_LEVEL_INFO); 23 | LogComponentEnable("OnOffApplication", LOG_LEVEL_INFO); 24 | 25 | nCsma = nCsma == 0 ? 1 : nCsma; 26 | 27 | 28 | 29 | //Create the bottom 4 small networks 30 | NodeContainer csmaNodes1; 31 | csmaNodes1.Create(3); //create t1 -- (n1, n2) 32 | NodeContainer csmaNodes2; 33 | csmaNodes2.Create(3); //create t2 -- (n3, n4) 34 | NodeContainer csmaNodes3; 35 | csmaNodes3.Create(3); //create t3 -- (n5, n6) 36 | NodeContainer csmaNodes4; 37 | csmaNodes4.Create(3); //creat t4 -- (n7, n8) 38 | 39 | 40 | //Create the lefter network in the upper csma //a1 41 | NodeContainer csmaNodes5; 42 | csmaNodes5.Create(1); 43 | csmaNodes5.Add(csmaNodes1.Get(0)); //link t1->a1 44 | csmaNodes5.Add(csmaNodes2.Get(0)); //link t2->a1 45 | 46 | //Create the righter network in the upper csma //a2 47 | NodeContainer csmaNodes6; 48 | csmaNodes6.Create(1); 49 | csmaNodes6.Add(csmaNodes3.Get(0)); //link t3->a2 50 | csmaNodes6.Add(csmaNodes4.Get(0)); //link t4->a2 51 | 52 | //Create a total csma big network //c1 53 | NodeContainer csmaNodes7; 54 | csmaNodes7.Create(1); 55 | csmaNodes7.Add(csmaNodes5.Get(0)); //link a1->c1 56 | csmaNodes7.Add(csmaNodes6.Get(0)); //link a2->c1 57 | 58 | 59 | 60 | //CSMA1 network topology // topology: t1 -- (n1, n2) 61 | CsmaHelper csma1; 62 | csma1.SetChannelAttribute("DataRate", StringValue("1.0Mbps")); 63 | csma1.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 64 | NetDeviceContainer csmaDevices1; 65 | csmaDevices1 = csma1.Install(csmaNodes1); 66 | 67 | //CSMA2 network topology // topology: t2 -- (n3, n4) 68 | CsmaHelper csma2; 69 | csma2.SetChannelAttribute("DataRate", StringValue("1.0Mbps")); 70 | csma2.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 71 | NetDeviceContainer csmaDevices2; 72 | csmaDevices2 = csma2.Install(csmaNodes2); 73 | 74 | //CSMAA3 network topology // topology: t3 -- (n5, n6) 75 | CsmaHelper csma3; 76 | csma3.SetChannelAttribute("DataRate", StringValue("1.0Mbps")); 77 | csma3.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 78 | NetDeviceContainer csmaDevices3; 79 | csmaDevices3 = csma3.Install(csmaNodes3); 80 | 81 | //CSMA4 network topology // topology: t4 -- (n7, n8) 82 | CsmaHelper csma4; 83 | csma4.SetChannelAttribute("DataRate", StringValue("1.0Mbps")); 84 | csma4.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 85 | NetDeviceContainer csmaDevices4; 86 | csmaDevices4 = csma4.Install(csmaNodes4); 87 | 88 | //CSMA5 network topology // topology: a1 -- (t1, t2) 89 | CsmaHelper csma5; 90 | csma5.SetChannelAttribute("DataRate", StringValue("1.0Mbps")); 91 | csma5.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 92 | NetDeviceContainer csmaDevices5; 93 | csmaDevices5 = csma5.Install(csmaNodes5); 94 | 95 | //CSMA6 network topology // topology: a2 -- (t3, t4) 96 | CsmaHelper csma6; 97 | csma6.SetChannelAttribute("DataRate", StringValue("1.0Mbps")); 98 | csma6.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 99 | NetDeviceContainer csmaDevices6; 100 | csmaDevices6 = csma6.Install(csmaNodes6); 101 | 102 | //CSMA7 network topology // topology: c1 -- (a1, a2) 103 | CsmaHelper csma7; 104 | csma7.SetChannelAttribute("DataRate", StringValue("1.5Mbps")); 105 | csma7.SetChannelAttribute("Delay", TimeValue(NanoSeconds(500))); 106 | NetDeviceContainer csmaDevices7; 107 | csmaDevices7 = csma7.Install(csmaNodes7); 108 | 109 | 110 | 111 | //Installation protocol stack (every node just has one stack) 112 | InternetStackHelper stack; 113 | stack.Install(csmaNodes1); 114 | stack.Install(csmaNodes2); 115 | stack.Install(csmaNodes3); 116 | stack.Install(csmaNodes4); 117 | stack.Install(csmaNodes5.Get(0)); 118 | stack.Install(csmaNodes6.Get(0)); 119 | stack.Install(csmaNodes7.Get(0)); 120 | 121 | 122 | 123 | //Assign addresses on the p2p network 124 | //node0: 10.1.1.1 125 | //node1: 10.1.1.2 126 | Ipv4AddressHelper address; 127 | 128 | 129 | 130 | //Assign addresses on the CSMA1 network: 131 | //t1-low-port ip: 10.0.1.1 132 | //n1 ip: 10.0.1.2; n2 ip: 10.0.1.3 133 | address.SetBase("10.0.1.0", "255.255.255.0"); 134 | Ipv4InterfaceContainer csmaInterfaces1; 135 | csmaInterfaces1 = address.Assign(csmaDevices1); 136 | 137 | //Assign addresses on the CSMA2 network: 138 | //t2-low-port ip: 10.0.2.1 139 | //n3 ip: 10.0.2.2; n4 ip: 10.0.2.3 140 | address.SetBase("10.0.2.0", "255.255.255.0"); 141 | Ipv4InterfaceContainer csmaInterfaces2; 142 | csmaInterfaces2 = address.Assign(csmaDevices2); 143 | 144 | //Assign addresses on the CSMA3 network: 145 | //t3-low-port ip: 10.0.3.1 146 | //n5 ip: 10.0.3.2; n6 ip: 10.0.3.3 147 | address.SetBase("10.0.3.0", "255.255.255.0"); 148 | Ipv4InterfaceContainer csmaInterfaces3; 149 | csmaInterfaces3 = address.Assign(csmaDevices3); 150 | 151 | //Assign addresses on the CSMA4 network: 152 | //t4-low-port ip: 10.0.4.1 153 | //n7 ip: 10.0.4.2; n8 ip: 10.0.4.3 154 | address.SetBase("10.0.4.0", "255.255.255.0"); 155 | Ipv4InterfaceContainer csmaInterfaces4; 156 | csmaInterfaces4 = address.Assign(csmaDevices4); 157 | 158 | //Assign addresses on the CSMA5 network: 159 | //a1-low-port ip: 10.1.1.1 160 | //t1-upper-port ip: 10.1.1.2; t2-upper-port ip: 10.1.1.3 161 | address.SetBase("10.1.1.0", "255.255.255.0"); 162 | Ipv4InterfaceContainer csmaInterfaces5; 163 | csmaInterfaces5 = address.Assign(csmaDevices5); 164 | 165 | //Assign addresses on the CSMA6 network: 166 | //a2-low-port ip: 10.2.1.1 167 | //t3-upper-port ip: 10.2.1.2; t4-upper-port ip: 10.2.1.3 168 | address.SetBase("10.2.1.0", "255.255.255.0"); 169 | Ipv4InterfaceContainer csmaInterfaces6; 170 | csmaInterfaces6 = address.Assign(csmaDevices6); 171 | 172 | //Assign addresses on the CSMA7 network: 173 | //c1 ip: 192.168.1.1 174 | //a1-upper-port ip: 192.168.1.2; a2-upper-port ip: 192.168.1.3 175 | address.SetBase("192.168.1.0", "255.255.255.0"); 176 | Ipv4InterfaceContainer csmaInterfaces7; 177 | csmaInterfaces7 = address.Assign(csmaDevices7); 178 | 179 | 180 | 181 | //host n1 server TcpSocketApp 182 | ApplicationContainer sinkApp1; 183 | PacketSinkHelper packetSinkHelper1("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces1.GetAddress(1), 5000)); 184 | sinkApp1 = packetSinkHelper1.Install(csmaNodes1.Get(1)); 185 | sinkApp1.Start(Seconds(1.0)); 186 | sinkApp1.Stop(Seconds(60.0)); 187 | //host n2 server TcpSocketApp 188 | ApplicationContainer sinkApp2; 189 | PacketSinkHelper packetSinkHelper2("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces1.GetAddress(2), 5000)); 190 | sinkApp2 = packetSinkHelper2.Install(csmaNodes1.Get(2)); 191 | sinkApp2.Start(Seconds(1.0)); 192 | sinkApp2.Stop(Seconds(60.0)); 193 | //host n3 server TcpSocketApp 194 | ApplicationContainer sinkApp3; 195 | PacketSinkHelper packetSinkHelper3("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces2.GetAddress(1), 5000)); 196 | sinkApp3 = packetSinkHelper3.Install(csmaNodes2.Get(1)); 197 | sinkApp3.Start(Seconds(1.0)); 198 | sinkApp3.Stop(Seconds(60.0)); 199 | //host n4 server TcpSocketApp 200 | ApplicationContainer sinkApp4; 201 | PacketSinkHelper packetSinkHelper4("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces2.GetAddress(2), 5000)); 202 | sinkApp4 = packetSinkHelper4.Install(csmaNodes2.Get(2)); 203 | sinkApp4.Start(Seconds(1.0)); 204 | sinkApp4.Stop(Seconds(60.0)); 205 | //host n5 server TcpSocketApp 206 | ApplicationContainer sinkApp5; 207 | PacketSinkHelper packetSinkHelper5("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces3.GetAddress(1), 5000)); 208 | sinkApp5 = packetSinkHelper5.Install(csmaNodes3.Get(1)); 209 | sinkApp5.Start(Seconds(1.0)); 210 | sinkApp5.Stop(Seconds(60.0)); 211 | //host n6 server TcpSocketApp 212 | ApplicationContainer sinkApp6; 213 | PacketSinkHelper packetSinkHelper6("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces3.GetAddress(2), 5000)); 214 | sinkApp6 = packetSinkHelper6.Install(csmaNodes3.Get(2)); 215 | sinkApp6.Start(Seconds(1.0)); 216 | sinkApp6.Stop(Seconds(60.0)); 217 | //host n7 server TcpSocketApp 218 | ApplicationContainer sinkApp7; 219 | PacketSinkHelper packetSinkHelper7("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces4.GetAddress(1), 5000)); 220 | sinkApp7 = packetSinkHelper7.Install(csmaNodes4.Get(1)); 221 | sinkApp7.Start(Seconds(1.0)); 222 | sinkApp7.Stop(Seconds(60.0)); 223 | //host n8 server TcpSocketApp 224 | ApplicationContainer sinkApp8; 225 | PacketSinkHelper packetSinkHelper8("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces4.GetAddress(2), 5000)); 226 | sinkApp8 = packetSinkHelper8.Install(csmaNodes4.Get(2)); 227 | sinkApp8.Start(Seconds(1.0)); 228 | sinkApp8.Stop(Seconds(60.0)); 229 | 230 | 231 | //Simulated the situation in which some hosts send and receive data to and from each other 232 | //Create multiple OnOffApplications on node n1 to generate multiple traffic for receiving packets from other clients. 233 | //On/Off periodically generates traffic, where the On cycle is set to 50 seconds and the Off cycle is set to 0. 234 | //host n1--->n2 235 | ApplicationContainer clientApp1; 236 | OnOffHelper client1("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces1.GetAddress(2), 5000)); 237 | client1.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 238 | client1.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 239 | client1.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 240 | client1.SetAttribute("PacketSize", UintegerValue(2000)); 241 | clientApp1 = client1.Install(csmaNodes1.Get(1)); 242 | clientApp1.Start(Seconds(2)); 243 | clientApp1.Stop(Seconds(3)); 244 | //host n1--->n3 245 | ApplicationContainer clientApp2; 246 | OnOffHelper client2("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces2.GetAddress(1), 5000)); 247 | client2.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 248 | client2.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 249 | client2.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 250 | client2.SetAttribute("PacketSize", UintegerValue(2000)); 251 | clientApp2 = client2.Install(csmaNodes1.Get(1)); 252 | clientApp2.Start(Seconds(2)); 253 | clientApp2.Stop(Seconds(3)); 254 | //host n5--->n6 255 | ApplicationContainer clientApp3; 256 | OnOffHelper client3("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces3.GetAddress(2), 5000)); 257 | client3.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 258 | client3.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 259 | client3.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 260 | client3.SetAttribute("PacketSize", UintegerValue(2000)); 261 | clientApp3 = client3.Install(csmaNodes3.Get(1)); 262 | clientApp3.Start(Seconds(2)); 263 | clientApp3.Stop(Seconds(3)); 264 | //host n5--->n7 265 | ApplicationContainer clientApp4; 266 | OnOffHelper client4("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces4.GetAddress(1), 5000)); 267 | client4.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 268 | client4.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 269 | client4.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 270 | client4.SetAttribute("PacketSize", UintegerValue(2000)); 271 | clientApp4 = client4.Install(csmaNodes3.Get(1)); 272 | clientApp4.Start(Seconds(2)); 273 | clientApp4.Stop(Seconds(3)); 274 | //host n1--->n5 275 | ApplicationContainer clientApp5; 276 | OnOffHelper client5("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces3.GetAddress(1), 5000)); 277 | client5.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 278 | client5.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 279 | client5.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 280 | client5.SetAttribute("PacketSize", UintegerValue(2000)); 281 | clientApp5 = client5.Install(csmaNodes1.Get(1)); 282 | clientApp5.Start(Seconds(2)); 283 | clientApp5.Stop(Seconds(3)); 284 | //host n6--->n2 285 | ApplicationContainer clientApp6; 286 | OnOffHelper client6("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces1.GetAddress(2), 5000)); 287 | client6.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 288 | client6.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 289 | client6.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 290 | client6.SetAttribute("PacketSize", UintegerValue(2000)); 291 | clientApp6 = client6.Install(csmaNodes3.Get(2)); 292 | clientApp6.Start(Seconds(2)); 293 | clientApp6.Stop(Seconds(3)); 294 | //host n3--->n7 295 | ApplicationContainer clientApp7; 296 | OnOffHelper client7("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces4.GetAddress(1), 5000)); 297 | client7.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 298 | client7.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 299 | client7.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 300 | client7.SetAttribute("PacketSize", UintegerValue(2000)); 301 | clientApp7 = client7.Install(csmaNodes2.Get(1)); 302 | clientApp7.Start(Seconds(2)); 303 | clientApp7.Stop(Seconds(3)); 304 | //host n8--->n4 305 | ApplicationContainer clientApp8; 306 | OnOffHelper client8("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces2.GetAddress(2), 5000)); 307 | client8.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 308 | client8.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 309 | client8.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 310 | client8.SetAttribute("PacketSize", UintegerValue(2000)); 311 | clientApp8 = client8.Install(csmaNodes4.Get(2)); 312 | clientApp8.Start(Seconds(2)); 313 | clientApp8.Stop(Seconds(3)); 314 | //host n2--->n8 315 | ApplicationContainer clientApp9; 316 | OnOffHelper client9("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces4.GetAddress(2), 5000)); 317 | client9.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 318 | client9.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 319 | client9.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 320 | client9.SetAttribute("PacketSize", UintegerValue(2000)); 321 | clientApp9 = client9.Install(csmaNodes1.Get(2)); 322 | clientApp9.Start(Seconds(2)); 323 | clientApp9.Stop(Seconds(3)); 324 | //host n5--->n8 325 | ApplicationContainer clientApp10; 326 | OnOffHelper client10("ns3::TcpSocketFactory", InetSocketAddress(csmaInterfaces4.GetAddress(2), 5000)); 327 | client10.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=50]")); 328 | client10.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]")); 329 | client10.SetAttribute("DataRate", DataRateValue(DataRate("1.5Mbps"))); 330 | client10.SetAttribute("PacketSize", UintegerValue(2000)); 331 | clientApp10 = client10.Install(csmaNodes3.Get(1)); 332 | clientApp10.Start(Seconds(2)); 333 | clientApp10.Stop(Seconds(3)); 334 | 335 | 336 | Ipv4GlobalRoutingHelper::PopulateRoutingTables(); 337 | csma1.EnablePcap("dc2", csmaNodes1.Get(1)->GetId(), 0, false);// csmaDevices1.Get (1)); 338 | csma1.EnablePcap("dc2", csmaNodes1.Get(2)->GetId(), 0, false);// csmaDevices1.Get (2)); 339 | csma2.EnablePcap("dc2", csmaNodes2.Get(1)->GetId(), 0, false);// csmaDevices2.Get (1)); 340 | csma2.EnablePcap("dc2", csmaNodes2.Get(2)->GetId(), 0, false);// csmaDevices2.Get (2)); 341 | csma3.EnablePcap("dc2", csmaNodes3.Get(1)->GetId(), 0, false);// csmaDevices3.Get (1)); 342 | csma3.EnablePcap("dc2", csmaNodes3.Get(2)->GetId(), 0, false);// csmaDevices3.Get (2)); 343 | csma4.EnablePcap("dc2", csmaNodes4.Get(1)->GetId(), 0, false);// csmaDevices4.Get (1)); 344 | csma4.EnablePcap("dc2", csmaNodes4.Get(2)->GetId(), 0, false);// csmaDevices4.Get (2)); 345 | 346 | 347 | 348 | //AnimationInterface anim("dc.xml"); //turn off the xml(for NetAnim) output 349 | 350 | 351 | 352 | Simulator::Run(); 353 | Simulator::Destroy(); 354 | return 0; 355 | } 356 | --------------------------------------------------------------------------------