330 likes | 500 Views
NETWORK CODING INTRO AND MODULE DESIGN THINKING. Presenter: Yi-Quan Chen. OUTLINE. What is Network coding? Main Reference of the Module Design Thinking Module Design Flowchart & Thinking. WHAT IS NETWORK CODING?. emerged in 2000 Without Network Coding
E N D
NETWORK CODING INTRO AND MODULE DESIGN THINKING CN group, CCU, Chia-Yi, Taiwan Presenter: Yi-Quan Chen
OUTLINE • What is Network coding? • Main Reference of the Module Design Thinking • Module Design Flowchart & Thinking CN group, CCU, Chia-Yi, Taiwan
WHAT IS NETWORK CODING? • emerged in 2000 • Without Network Coding • Independent information are kept separate • Intermediate nodes only forward it • With Network Coding • Intermediate processesthe incoming independent information flows CN group, CCU, Chia-Yi, Taiwan
Benefits • Throughput • Wireless resources • Security CN group, CCU, Chia-Yi, Taiwan
Benefits(1) • Throughput • Y uses all resources Z uses all resources CN group, CCU, Chia-Yi, Taiwan
Benefits(2) • Wireless resources CN group, CCU, Chia-Yi, Taiwan
Benefits(2) • Wireless resources • Energy efficiency • Delay • Wireless bandwidth CN group, CCU, Chia-Yi, Taiwan 7
Benefits(3) • Security • Assume that adversary can wiretap a single path CN group, CCU, Chia-Yi, Taiwan Someone can intercept one of them Can’t decode with single symbols 8
Challenges • Complexity • Security • Integration with existing infrastructure CN group, CCU, Chia-Yi, Taiwan 9
Challenges(1) • Complexity • In wireless example • Node B : 1. additional memory requirements 2. has to perform operations • The same with node A and C. • Important question • Assessing • Tradeoffs CN group, CCU, Chia-Yi, Taiwan 10
Challenges(2 & 3) • Security • Banking transactions • Integration with existing infrastructure • Without dramatic changes • How to integrate in current network protocols? CN group, CCU, Chia-Yi, Taiwan 11
Main Reference of the Module Design Thinking • “XORs in The Air: Practical Wireless Network Coding”, S. Katti, H. Rahul, W. Hu, D. Katabi, M. Medard, and J. Crowcroft, SIGCOMM’06, Sep. 11-15, 2006 • “The importance of being opportunistic: Practical network coding for wireless environments”, S. Katti, D. Katabi, W. Hu, H. S. Rahul, and M. M´edard., 2005. • “Network Coding Fundamentals”,Christina Fragouli and Emina Soljanin, 2007 CN group, CCU, Chia-Yi, Taiwan
COPE Introduction COPE inserts a coding shim between the IP and MAC layers. To detect coding opportunities and exploits them to forward multiple packets in a single transmission COPE leads to larger bandwidth savings Is based on two key principles: Dispose of the p2p abstraction and embraces the broadcast nature of the wireless channel Employs network coding CN group, CCU, Chia-Yi, Taiwan
COPE overview Incorporate three main techniques: Opportunistic Listening Opportunistic Coding Learning Neighbor State CN group, CCU, Chia-Yi, Taiwan
Opportunistic Listening Sets the nodes in promiscuous mode Store the overheard packets for a limited period T Each node broadcast reception report to tell its neighbors which packets it has stored A node that has no data packets to transmit periodically sends the reception reports in special control packets CN group, CCU, Chia-Yi, Taiwan
Opportunistic Coding The key question is what packets to code together to maximize throughput. It should aim to maximum the number of native packets delivered in a single transmission, while ensuring that each intended nexthop has enough information to decode its native packet CN group, CCU, Chia-Yi, Taiwan
Opportunistic Coding CN group, CCU, Chia-Yi, Taiwan
Learning Neighbor State Reception report may get lost in collisions The node may has already made a suboptimal coding decision Guess ! COPE estimates the probability that a particular neighbor has a packet as the delivery probability of the link If guess wrong, the relevant native packet is retransmitted, potentially encoded with a new set of native packets CN group, CCU, Chia-Yi, Taiwan
Making it work Packet Coding Algorithm Packet Decoding Pseudo-broadcast Hop-by-Hop ACKs and retransmissions Preventing TCP packet reordering CN group, CCU, Chia-Yi, Taiwan
Packet Coding Algorithm Each node has a FIFO queue of packets to be forwarded, which called the output queue. For each neighbor, the node maintains two per-neighbor virtual queues, one for small packet, and the other for large packets The node keeps a hash table, packet info, that is keyed on packet-id, the table indicates the probability of each neighbor having that packet CN group, CCU, Chia-Yi, Taiwan
Packet Decode Each node maintains a packet pool, in which it keeps a copy of each native packet it has received or sent out. The packets are stored in a hash table keyed on packet id Is garbage collected every few second CN group, CCU, Chia-Yi, Taiwan
Pseudo-Broadcast Piggybacks on 802.11 unicast and benefits from its reliability and backoff mechanism Promiscuous mode The link-layer destination field is set to the MAC address of one of the intended recipients XOR-header listing all nexthops of the packet Does not completely solve the reliability problem CN group, CCU, Chia-Yi, Taiwan
Hop-by-Hop ACKs and Retransmissions The sender gets syn-ACK only from the link-layer destination of the packet COPE may optimistically guess that a nexthop has enough information to decode an XOR-ed packet, when it actually does not. The sender expect the nexthops of an XOR-ed packet to decode it, and ack it in Ta Nexthop receives an encoded packet decodes it and schedule an acl event CN group, CCU, Chia-Yi, Taiwan
THE COPE DESIGN IMPLEMENTATION FLOWCHART Packet Deque & Check whether can Code ? XOR Coding Edit the Mac CN group, CCU, Chia-Yi, Taiwan CN group, CCU, Chia-Yi, Taiwan Add Information to Coding Header 24
The Queue In NS2 CN group, CCU, Chia-Yi, Taiwan CN group, CCU, Chia-Yi, Taiwan 25
THE PACKET IN QUEUE CLASS OF NS2 5 4 3 2 1 Packet Queue PacketQueue Class in NS2 CN group, CCU, Chia-Yi, Taiwan CN group, CCU, Chia-Yi, Taiwan 5 4 3 2 1 I made a copy of each packet 26
THE HEADER CONTENT OF COPE CN group, CCU, Chia-Yi, Taiwan CN group, CCU, Chia-Yi, Taiwan 27
THE PACKET STRUCTURE OF NS2 CN group, CCU, Chia-Yi, Taiwan CN group, CCU, Chia-Yi, Taiwan 28 Insert COPE Header Coding Header body
THE TRAFFIC FLOW IMAGINATION UNDER NETWORK CODING I have the Coding Chance RTS CTS CTS RTS CTS RTS RTS CTS Flow A Packet A Promiscuous Packet A ⊕B Packet A ⊕B Packet B CN group, CCU, Chia-Yi, Taiwan CN group, CCU, Chia-Yi, Taiwan Flow B 29
WHAT I HAVE DONE ? • 1. 封包在node中的資訊,對我比較重要的如:next_hop, Prev_hop, 以及時 間…等,取出。2. 寫完queue.h內,有關packetqueue的註解,並在priqueue.cc內,把封包的資訊dump出來,看看是否能達到我要找的東西。3. 在queue.h內,加入了封包進入queue後,封包備份儲存的動作,在此不考慮帶有routing資訊、mac資訊及ack的封包。封包可以儲存在自己的queue中。 • 預計加入可以定期清除的機制。 CN group, CCU, Chia-Yi, Taiwan
4. 目前構想的封包enque及deque程序: • enque的部分:封包enque後,check是否是xor的封包。if (xored...)then (check the coding header to find 自己是否是在destination端欄位中。是的話,decode it。否則就只是單純轉送。)copy decode後的pure packet,並刪除重複的部分。deque的部分:要deque前,先用head_封包,與備份的封包做check,確保兩個封包的prev_hop與next_hop不同,(這樣代表封包來自不同方向)if (prev_hop相同)then (head_不變,next_向後移一位,再做check。)else if (next_hop 是否為自己)如果不是,then coding it。 CN group, CCU, Chia-Yi, Taiwan
WHAT I HAVE DONE - 2 • 加入了單層的Header。 • 1. 寫了兩支cope.cc cope.h,用來新增COPE header這個物件,並成功列印出hdr_cope class下的資料,資料也有填進去,source欄位填的OK。但是目前比較疑惑的是,要如何去實現PAPER中的pkt_map與ack_map的部 分。2. 尚未測試類似MPLS中的push Header的功能是否可以正確動作,必須另外寫幾個函式,來做到這些事情。3. ns2中的TCP,做的事情跟實際中的TCP不太一樣,one-way TCP在回ACK的時候,就是純的ACK,沒有辦法使用piggyback的方式,把要送的資料也回填回去給剛剛送資料來的source。不知道這個部分會不會影響到往後的實現。4. 目前有修改過的原始程式碼如下:ns-packet.tcl queue.h priqueue.cc cope.h cope.cc packet.h5. 找到一份大陸人寫的講述有關packet class的文件,裡面有詳細的講出說在各層中,哪個函式會填入各層對應的資料,我想,填資料的部分,應該可以SURVEY看看這份文件。 CN group, CCU, Chia-Yi, Taiwan
Question ? CN group, CCU, Chia-Yi, Taiwan