230 likes | 400 Views
Network Coding Testbed. Jeremy Bergan, Ben Green, Alex Lee. Presentation Overview. Background Information Project Overview Framework Design Plan & Schedule Prototyping Implementation Testing. Problem. Network Coding is a scheme that has potentially larger
E N D
Network Coding Testbed Jeremy Bergan, Ben Green, Alex Lee
Presentation Overview • Background Information • Project Overview • Framework Design • Plan & Schedule • Prototyping • Implementation • Testing
Problem • Network Coding is a scheme that has potentially larger • throughput than current wired or wireless networks. Solution • Built a network coding testbed to implement network • coding protocols and topologies. • Implement Analog Network Coding (ANC). • Utilize the Universal Software Radio Peripheral (USRP) to • send and receive the physical packet. • Implement a testing and logging layer to track testbed • performance.
Network Coding • Intelligently combining packets at intermediate nodes to increase network throughput Network Coding Overview
ANC: Decoding Interfered Signals • Node1 and Node2 simultaneously transmit • Signals interfere at intermediate node • Intermediate node amplifies and forwards combined signal • Node1 can decode Node2's message based on knowledge of the message it sent previously SachinKatti, ShyamnathGollakota, Dina Kattabi, Embracing wireless interference: Analog Network Coding, in ACM SIGCOMM Computer Communication Review v.37, n.4, pp 397 – 408, October 2007
Requirements • Implement a testing framework for wireless networks • Implement a Network coding scheme with equal or better throughput than traditional networks • Implement ANC MAC • Practical application to arbitrary network topologies • Use of Universal Software Radio Peripheral (USRP) • Use of GNU Radio signal processing libraries • Modular design
Deliverables • Network Coding Testbed • Implement different wireless topologies & protocols • Complete Documentation • Commented Code • Build Instructions • Repository Access Resource Requirements • 3 USRPs • RFX2400 Transceiver Daughterboard • 3 Computers • Linux Operating System • GNU Radio Installed
Functional Decomposition • Prototype in Matlab • Test in Matlab Design Process
System Design Host: Generates and interprets data Network: Packetizes and determines data route MAC: Arbitrates channel access. Coordinates transmission among nodes Physical: Modulation/Demodulation Testing and Logging: Tools used in testing of system
Analog Network Coding Implementation • Physical Layer • MSK modulation • ANC algorithm for decoding interfered signals • MAC Layer • Modified CSMA/CA • Allows for simultaneous interfering transmissions if they will be able to be correctly decoded • Network Layer • Predetermined routing • Similar packet format as 802.11 • Host Layer • Random data • Predetermined patterns of data
Implement ANC system in Matlab • Simulation in a controlled environment • Tested Matlab simulation • Split Matlab simulation to be implemented in GNU Radio • Write & compile GNU Radio blocks • Use Python to test each block • Test entire framework over air Testing Procedure
Matlab ANC Simulation • Simulate a transmission and reception of interfered signal • Decode unknown signal using ANC algorithm • Advantages: • Debugging system • Data Visualization • System organization
Matlab ANC: Transmission • Generate two signals with random data bits • Generate a pilot sequence • MSK Modulation • Random overlap between two signals
Matlab ANC: Sampling • Use pilot sequence to find start of individual signals • Sample at optimal time for demodulation
Matlab ANC: Channel Measurements • Variance over a sliding window • Indicator of interference • Amplitude of individual signals • Measured at un-interfered sections
Matlab ANC: Decoding • Use amplitude of signals to calculate possible phase pairs • Use known phase difference to determine unknown phase difference
GNU Radio Implementation • Determine how to port code from Matlab to C++ • Split code into blocks that deal with streams of data
GNU Radio Blocks • Energy Detector • Uses magnitude of signal to determine beginning and ending of signal. • Sync Block • Uses pilot sequence to find start of individual signals • Packetizes each signal along with offset information • Decoding Block • Runs ANC algorithm
GNU Radio Block Testing • Non – Trivial • Must have entire block before testing • Involves two languages Python and C++ • SWIG makes C++ usable in Python • Lacking documentation • Once compiled use Python to test C++ code • Link C++ blocks together using Python • Generate data for blocks using Python • Use Python modules to generate packets and other inputs
Complete initial design • Add Modulation Schemes to Physical Layer • MQAM • MPSK • Network Layer • Implement TCP/IP • Testing Layer • Inter-node Coordination • Single Computer Simulation • Component Benchmarking • Other Network Coding Schemes Future Additions to Testbed
Plan time requirements better • Gained experience outside of normal area of study • Start prototyping early in first semester Lessons Learned Conclusion • Designed network testbed that implements ANC • Simulated ANC system in Matlab • Implementation in GNU Radio • Wrote GNU Radio blocks • Compiled and started testing