Implementation of Epidemic Routing with IP Convergence Layer in ns-3 Dr. Justin P. Rohrer and Lt. Andrew N. Mauldin jprohrer@nps.edu Naval Postgraduate School TaNCAD Lab ( https://tancad.net ) WNS3, June 13, 2018
Abstract Implementation of Epidemic Routing with IP Convergence Layer in ns-3 Paper Abstract [Rohrer and Mauldin, 2018] We present the Epidemic routing protocol implementation in ns-3. It is a full-featured DTN protocol in that it supports the message abstraction and store-and-haul behavior. We compare the performance of our Epidemic routing ns-3 implementation with the existing implementation of Epidemic in the ONE simulator, and discuss the differences. www.nps.edu 2 / 44
Outline Introduction Background Prior Work Implementation Evaluation Validation Conclusion www.nps.edu 3 / 44
Introduction A Word About Us... Justin P. Rohrer: ◮ Assistant Professor, Network Group, Computer Science Department ◮ Teaches: CS3502 (Networks I), CS4538 (Wireless Security), CS4554 (Network Modeling), CS4558 (Traffic Analysis) ◮ Leads: Center for Tactical Networked Communications @NPS ◮ Pi/Co-PI on Disruption Tolerant Networking and Network Measurement Projects ◮ Past contributor to various ns-3 routing and transport models Lt Andrew Mauldin: ◮ USN, Master’s Student, Computer Science ◮ Thesis: Comparative analysis of disruption tolerant network routing simulations in the ONE and ns-3 [Mauldin, 2017]; Graduated Fall 2017 www.nps.edu 4 / 44
TaNCAD Lab @ NPS Naval Postgraduate School (NPS) ◮ Navy’s Research University ◮ Located in Monterey, CA ◮ ≃ 1500 graduate students: Military officers & DoD civilians Center for Tactical Networked Communication Architecture ◮ 3 NPS professors, 2 NPS staff ◮ Sponsors: USN, USMC, NSF, NSA, ONR, DARPA, . . . Focus: ◮ Network Survivability and Resilience ◮ Disruption Tolerant Networks for Tactical Environments www.nps.edu 5 / 44
Introduction Goals for this work ◮ Experiment with new DTN routing primitives ◮ Have been working with the ONE simulator www.nps.edu 6 / 44
Introduction Goals for this work ◮ Experiment with new DTN routing primitives ◮ Have been working with the ONE simulator ◮ Not satisfied with fidelity of results ◮ So we want to work with higher-fidelity simulator like ns-3 ◮ But ns-3 doesn’t currently have any DTN routing protocols ◮ How to start the transition? www.nps.edu 6 / 44
Introduction Goals for this work ◮ Experiment with new DTN routing primitives ◮ Have been working with the ONE simulator ◮ Not satisfied with fidelity of results ◮ So we want to work with higher-fidelity simulator like ns-3 ◮ Epidemic is the simplest DTN protocol ◮ New protocols are benchmarked against Epidemic ◮ Sounds like a good place to start www.nps.edu 6 / 44
Outline Introduction Background Prior Work Implementation Evaluation Validation Conclusion www.nps.edu 7 / 44
Background Epidemic Routing Epidemic [Vahdat and Becker, 2000] ◮ Simplest possible DTN routing protocol ◮ Flooding based ◮ Every message is forwarded to every node in the network ◮ Very high message-replication overhead due to forwarding n copies of each message www.nps.edu 8 / 44
Background Mobile AdHoc Routing (Supported in ns-3) Mobile AdHoc Networks (MANETs) allow nodes to multihop messages through the wireless network to their destinations. Each node acts as both a host and a router, forwarding messages from peers as well as their own messages. ◮ Use a routing protocol to distribute topology information ◮ Distance vector ◮ Link state ◮ Source routing ◮ May be proactive or reactive ◮ Requires end-to-end connectivity ◮ Frequent updates allow the network to tolerate mobility www.nps.edu 9 / 44
Background Mobile AdHoc Routing (Supported in ns-3) Mobile AdHoc Networks (MANETs) allow nodes to multihop messages through the wireless network to their destinations. Each node acts as both a host and a router, forwarding messages from peers as well as their own messages. ◮ Use a routing protocol to distribute topology information ◮ Distance vector ◮ Link state ◮ Source routing ◮ May be proactive or reactive ◮ Requires end-to-end connectivity ◮ Frequent updates allow the network to tolerate mobility ◮ Significant fraction of available bandwidth used for routing messages ◮ Highly dynamic topologies may prevent convergence www.nps.edu 9 / 44
Background Disruption Tolerant Routing (Not currently offered in ns-3) Disruption Tolerant Networks allow nodes to multihop messages while tolerating disruptions in connectivity among its components. Disruption tolerance includes tolerance of environmental challenges, weak and episodic channel connectivity, mobility, long & unpredictable delay, energy and power constraints. ◮ Make local forwarding decisions without globally consistent information ◮ More information = better decisions ◮ Nodes buffer messages until next-hop is available ◮ Requires only hop-by-hop connectivity www.nps.edu 10 / 44
Background DTN Network Stack Bundle Protocol Application Bundle Protocol Application Bundle Protocol Bundle Protocol Bundle Protocol Bundle Protocol Transport Layer 1 Transport 1 Transport 2 Transport 2 Transport 3 Transport Layer 3 Network 1 Network 1 Network 2 Network 2 Network 3 Network 3 Internet 1 Internet 2 Internet 3 Figure: Bundle Protocol Network Stack. Adapted from [Scott and Burleigh, 2007] ◮ DTN’s use large buffers; less concerned with fastpath ◮ More concerned with flexibility/late binding ◮ Use mechanisms such as Store-and-Haul (physically move messages closer to destination) ◮ Often implemented as application-overlay www.nps.edu 11 / 44
Background DTN Simulators ◮ Abstract away network stack (e.g. the ONE) ◮ No propagation/loss model ◮ No MAC contention ◮ No message segmentation ◮ No network headers ◮ No control message overhead ◮ No transport layer ◮ Message is basic communication unit ◮ May be 10s of MB www.nps.edu 12 / 44
Background Network Simulators ◮ In this work we specifically consider two simulators, as we migrate from one to the other ns-3 is a discrete-event simulator with detailed channel, MAC, network, and routing-layer (MANET) models. It is open-source and written in C++. The ONE is a discrete-time simulator designed specifically for DTN protocol simulations. It abstracts away details of propagation, medium access, and network layers and is written in Java. www.nps.edu 13 / 44
Outline Introduction Background Prior Work Implementation Evaluation Validation Conclusion www.nps.edu 14 / 44
Prior Work Epidemic Simulation Models and Limitations in the ONE ◮ Epidemic is part of ONE distribution ◮ Message-based ◮ No control messages in ns-3 ◮ Implemented [Alenazi et al., 2015]; not distributed with ns-3 ◮ No message support ◮ Summary vector limited to 1 packet ◮ Size of message buffer limited to number of packet IDs that fit in summary vector packet www.nps.edu 15 / 44
Outline Introduction Background Prior Work Implementation Evaluation Validation Conclusion www.nps.edu 16 / 44
Implementation Code Structure IPv4 Routing Protocol Packet Classes Packet Queue Class Queue Entry - m_BufferSize - m_packets + Serialize - m_queue - m_header + Deserialize - m_expire + Enqueue + Print - m_messageID + Dequeue Routing Class - Purge + AddPacket - m_BufferSize + Find + GetPackets - m_queueEntryExpireTime - Drop + SetIpv4Header - m_beaconInterval - DropExpiredMessages + GetIpv4Header + + GetExpireTime + Recv<Protocol> FindDisjointMessages + SetExpireTime + RouteInput + GetSize + SetMessageID + RouteOutput + GetMessageID + SendDisjointMessages + GetMessageByteSize + SendBeacons + GetMessagePacketTotal + SendMessageFromQueue + GetCurrentPktCnt + SendACK + GetPacketSize Figure: DTN routing UML Diagram ◮ Derived from IPv4 Routing Protocol ◮ Based on Alenazi et al. code structure www.nps.edu 17 / 44
Implementation Code Structure Cont. Packet Queue ◮ Max size set in Bytes ◮ Manages list of Queue Entries ◮ A Queue Entry contains all packets belonging to one message ◮ Supports advanced buffer management (not used in Epidemic) Routing Protocol ◮ Exchanges message vectors with neighboring routers ◮ Uses Message Queue to generate disjoint message set ◮ Sends disjoint messages to neighbor www.nps.edu 18 / 44
Implementation Message Generation 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 64-bit Message Identification Number 16-bit Last Hop 32-bit Total Number of Packets 32-bit Packet Index Figure: DTN Data Packet Header ◮ New application type ( DTNApplication ) generates messages ◮ Messages are segmented into packets ◮ Each packet contains a DTNHeader identifying the message to which it belongs ◮ Messages are forwarded atomically, i.e. partially received messages are discarded if connection is broken www.nps.edu 19 / 44
Implementation Node Discovery BEACON A B REPLY REPLY_BACK Messages Figure: Epidemic Control Packet Exchange Sequence ◮ Nodes send beacon messages every BeaconInterval [5 s] ◮ Nodes hearing the beacon reply ◮ Originating node chooses one of the replies to reply to and exchanges summary vectors ◮ Both nodes calculate their disjoint message set and exchange www.nps.edu 20 / 44
Outline Introduction Background Prior Work Implementation Evaluation Validation Conclusion www.nps.edu 21 / 44
Recommend
More recommend