Transcript Document
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