* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Document
Survey
Document related concepts
Transcript
1 Presenter: Yi-Quan Chen CN group, CCU, Chia-Yi, Taiwan NETWORK CODING INTRO AND MODULE DESIGN THINKING OUTLINE What is Network coding? Main Reference of the Module Design Thinking Module Design Flowchart & Thinking CN group, CCU, Chia-Yi, Taiwan 2 WHAT IS NETWORK CODING? emerged in 2000 Without Network Coding Independent information are kept separate Intermediate nodes only forward it CN group, CCU, Chia-Yi, Taiwan With Network Coding Intermediate processes the incoming independent information flows 3 Benefits Throughput Wireless resources Security CN group, CCU, Chia-Yi, Taiwan 4 Benefits(1) Throughput CN group, CCU, Chia-Yi, Taiwan Y uses all resources Z uses all resources 5 Benefits(2) Wireless resources CN group, CCU, Chia-Yi, Taiwan 6 Benefits(2) Wireless resources CN group, CCU, Chia-Yi, Taiwan Energy efficiency Delay Wireless bandwidth 7 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 8 Challenges Complexity Security Integration with existing infrastructure CN group, CCU, Chia-Yi, Taiwan 9 9 Challenges(1) Complexity In wireless example Important question Assessing Tradeoffs CN group, CCU, Chia-Yi, Taiwan Node B : 1. additional memory requirements 2. has to perform operations The same with node A and C. 10 10 Challenges(2 & 3) Security Integration with existing infrastructure Without dramatic changes How to integrate in current network protocols? CN group, CCU, Chia-Yi, Taiwan Banking transactions 11 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. “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 Crowcroft, SIGCOMM’06, Sep. 11-15, 2006 12 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: CN group, CCU, Chia-Yi, Taiwan Dispose of the p2p abstraction and embraces the broadcast nature of the wireless channel Employs network coding 13 COPE overview Incorporate three main techniques: Opportunistic Listening Opportunistic Coding Learning Neighbor State CN group, CCU, Chia-Yi, Taiwan 14 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 15 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 16 Opportunistic Coding CN group, CCU, Chia-Yi, Taiwan 17 Learning Neighbor State CN group, CCU, Chia-Yi, Taiwan 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 18 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 19 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 20 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 21 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 22 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 23 THE COPE DESIGN IMPLEMENTATION FLOWCHART Edit the Mac Add Informati on to Coding Header CN group, Taiwan Chia-Yi, CN Taiwan group,CCU, CCU, Chia-Yi, Packet Deque & Check whether can Code ? XOR Coding 24 24 CN group, Taiwan Chia-Yi, CN Taiwan group,CCU, CCU, Chia-Yi, The Queue In NS2 25 25 THE PACKET IN QUEUE CLASS OF NS2 Packet Queue 4 3 2 1 PacketQueue Class in NS2 5 4 3 2 I made a copy of each packet 1 CN group, Taiwan Chia-Yi, CN Taiwan group,CCU, CCU, Chia-Yi, 5 26 26 THE HEADER CONTENT OF COPE CN group, Taiwan Chia-Yi, CN Taiwan group,CCU, CCU, Chia-Yi, 27 27 THE PACKET STRUCTURE OF NS2 CN group, Taiwan Chia-Yi, CN Taiwan group,CCU, CCU, Chia-Yi, 28 28 Insert COPE Header Coding Header body THE TRAFFIC FLOW IMAGINATION UNDER NETWORK CODING I have the Coding Chance RTS PacketCTS RTS A ⊕B CTS CTS RTS CTS RTS CN group, Taiwan Chia-Yi, CN Taiwan group,CCU, CCU, Chia-Yi, Promiscuous Packet A Packet A ⊕B Packet B 29 29 WHAT I HAVE DONE ? 1. 封包在node中的資訊,對我比較重要的如: next_hop, Prev_hop, 以及時 間…等,取出。 3. 在queue.h內,加入了封包進入queue後,封包備份 儲存的動作,在此不考慮帶有routing資訊、mac資訊 及ack的封包。封包可以儲存在自己的queue中。 CN group, CCU, Chia-Yi, Taiwan 2. 寫完queue.h內,有關packetqueue的註解,並在 priqueue.cc內,把封包的資訊dump出來,看看是否能 達到我要找的東西。 預計加入可以定期清除的機制。 30 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 4. 目前構想的封包enque及deque程序: enque的部分: 封包enque後,check是否是xor的封包。 if (xored...) then (check the coding header to find 自己是否是在destination端 欄位中。是的話,decode it。否則就只是單純轉送。) copy decode後的pure packet,並刪除重複的部分。 31 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.h 5. 找到一份大陸人寫的講述有關packet class的文件,裡面有詳細的講出說在各層中,哪個 函式會填入各層對應的資料,我想,填資料的部分,應該可以SURVEY看看這份文件。 CN group, CCU, Chia-Yi, Taiwan 32 Question ? CN group, CCU, Chia-Yi, Taiwan 33