Presentation is loading. Please wait.

Presentation is loading. Please wait.

Combining TCP with coding in wireless network

Similar presentations


Presentation on theme: "Combining TCP with coding in wireless network"— Presentation transcript:

1 Combining TCP with coding in wireless network
Jinzhu Wang

2 Problem Statement Traditional TCP is inefficient in wireless network
TCP was primarily designed for the wired network with low BER(Bit error rate), where packet loss caused by network congestion In wireless network, a lot of factors leads to unstable air-link, which causes high BER and thus high packet loss weather conditions, urban obstacles, multi-path interferences, limited coverage, mobility of the handset TCP mistakes the link error packet loss as the congestion packet loss and thus reduces the sending rate unnecessarily in wireless network

3 Problem Statement Test Packet loss in wireless network (static test)
WiFi Test1: Public WiFi (location: Colleage campus) Packet loss: % ; Test2: Public WiFi (location: Business Center) Packet loss: 1%; Test3: Private WiFi (location: Home) Packet loss: 0.15%; LTE Test4: CMCC LTE (location: Colleage campus) Packet loss: 0%; Test5 : CMCC LTE (Location: urban obstacles) Packet loss: 0.75%; We have done some tests in the wireless network, including WiFi and LTE. Here are some test results. We can see in Test1 the colleage campus. The packet loss is 0.35%. While in test 2 in location of business center, the packet loss is 1%. On the other hand, in LTE networks, when the singal is good, the packet loss is quite low. While in some urban obstacles, the packet loss increases. (we deploy a server with public ip and use the wireless terminal to ping the public )

4 Using coding to erase packet loss
Sender Receiver User Data P1 P2 P1 P2 Encoding to involve redundacy e.g., using network coding RLNC Decoding Coded Data P1+P2 2P1+3P2 4P1+3P2 P1+P2 4P1+3P2 TCP Send TCP Recv In order to improve TCP throughput in wirelss network, we can use coding in the tcp to erase packet loss. This is a example of coding. In the user layer, we have P1 and P2 to send, and in the coding layer, we combines these two packets by using coding. The coding algorithm is Random Linear Network Coding. Then we generate three packets for redundency and deliver these three packets into TCP stack to send. During the transmission, one of the packets is lost and the other two packets has arrived at the TCP receiver successfully. The receiver make sure that the received two combinations can decode the original packets successfully and thus acks that all three packets have been received successfully. Then sender sends subsequent packets without retransmission, timeout and thus improve the tcp’s throughput. P1+P2 2P1+3P2 4P1+3P2 P1+P2 4P1+3P2 Packet loss 2P1+3P2 ACK all 3 packets has been received successfully

5 Using coding to erase packet loss (systematic codes)
Sender Receiver User Data P1 P2 P1 P2 Encoding to involve redundacy e.g., Using network coding RLNC Decoding Coded Data P1 P2 P1+P2 P1 P1+P2 TCP Send TCP Recv We can also use the systematic code. Therefore, the original and the coded packets are transmitted simutanouly. This situatin is similar to the previous one. P1 P2 P1+P2 P1 P1+P2 Packet loss P2 ACK all 3 packets has been received successfully

6 Coded TCP archtecture Sender side Coding at each Block.
M > N : coding involving redundancy Based on coding algorithm, make sure that any N of M coded packets received at the receiver side can result in decoding successfully This is the architecture of the coded TCP Sender. The user Data is sent from the application layer to the encoding buffer. The encoding buffer consists of coding blocks where each coding block contains the same number of original packets, in this case the number is N. In each coding block, using the coding algorithm to encode and the number of output coded packets is M. we make the M is greater than N in order to involve the redundancy. The coding algorithm should make sure that any N of M coded packets received at the receiver side can result in decoding successfully.

7 Coded TCP archtecture Coding Header
MAC block seqno IP TCP Coding Payload orig number combination number coding coefficients block padding packet padding block seqno: indicates the sequence number of the coding block orig number: the number of original packets in the coding block. combination number: the number of generated combinations (coded packets) in the coding block. Coding coefficients: the coefficients of original packets involved in combination. The coding coefficients are generated by coding algorithm and used by receiver to decode Paddings: the number of padding in the packet/block In order to decode at the receiver side, we need to add a coding header in the TCP payload as shown in the figure. The coding header consists of

8 Coded TCP archtecture Receiver side When packet arriving:
Recod the the number of received coded packets (combinations) in each block. When packet arriving: In each coding block, is the number of received coded packets less than the number of orignal packets ? YES NO ACK that the packet received successfully (same as standard TCP) ACK that all packets in the coding block received successfully Decoding the original packets in the coding block and send to applicaton This is the proecess of the receiver side. The receiver record the number of received coded packets in each block. When packet arrives, the receiver checks in each coding block, is the number of received coded packets less than the number of original packets. If YES, the receiver ACK that the packet received successfully, which is same as the standard TCP. In this case, receiver can not decode packets in this coding block and needs to receive more coded packets. If NO, the the receiver ACK that all packets in the coding block received successfully. In this case, it can decode the original packets successfully. After that, it decode the packets and send to the application.

9 Interworking with standard TCP
Coded TCP transmits the coded packets and cannot interwork with standard In order to interwork, Coded TCP SHOULD be able to choice whether or not enabling coding dynamically. If coding is disabled, coded TCP behaves like the standard TCP One bit in the reserved field of the TCP header is defined to identify whether transport uses the coded TCP or standard TCP Coded TCP Coded TCP Coded TCP TCP SYN (coded TCP) SYN (coded TCP) ACK (coded TCP) ACK In case both sender and receiver use coded TCP: the sender sets coding bit in TCP sync message to identify it supports coded TCP. The receiver sets the coding bit in the TCP sync ack to identify it supports coded TCP. In this case, both sender and receiver know that the peer supports coded TCP and communicate using coded TCP. In the case the sender uses coded TCO and the receiver uses standard TCP: the sender sets the coding bit in the TCP sync message to identify it supports coded TCP. The receiver is the standard TCP and replies the TCP sync ack without setting coding bit. In this case, the sender knows that the peer is the standard TCP and communicate using standard TCP. ACK (coded TCP) ACK coded tcp comunication standard tcp comunication

10 PIC Experiment in lab Simulate packet loss and delay Standard TCP
(Receiver) Coded TCP (Sender) supporting standard TCP and coded TCP simultaneously Simulate packet loss and delay WiFi wired We have tested the coded TCP both in the lab experment and in the real network. We implement the coded TCP based on the Linux kernel 2.6. add coding to the standard TCP stack. The modified Linux kernel supports standard TCP and coded TCP simultaneously We use two same laptops which are adopted as the receiver, one enables the coded TCP and the other enables the standard TCP. We also use the third laptop as the sender, which support standard TCP and coded TCP simutanously. At the same time ,we deploy the Linux Traffic Control software at the sender in order to simulate the packet loss. PIC

11 Experiment in lab Coded TCP TCP Coded TCP:
This is the test result. The coded TCP and standard TCP download a file with 20 Megabyte simuanously. The coding ratio which is defined as the number of coded packets divides the number of origianl packet is 1.2. the simulated delay is 20 millisecond. From the test, we can see when packet loss is 0.08%, the coded TCP and standard TCP achieves similar throughput. when packet loss increases, the standard TCP’s throughput decreases signiaficantly. While the coded TCP remains high throughput. . Coded TCP TCP

12 Experiment in public WiFi
Standard TCP (Receiver) WiFi Wired Internet Coded TCP (Receiver) (Sender) supporting standard TCP and coded TCP simultaneously using FTP to transmit 20M file CMCC Public WIFI at Colleage campus Coded TCP: This is the test result in the public WiFi. The coded TCP and the standard TCP download a file with 20 Megabyte simultanously. The standard tcp needs 372 second to download and the coded tcp only needs 263 seconds Download time (s) TCP 372 Coded TCP 263 In Public WiFi, the coded TCP improves throughput significantly

13 Experiment in LTE Wired Internet using FTP to transmit 20M file
Standard TCP (Receiver) LTE Wired Internet Coded TCP (Receiver) (Sender) supporting standard TCP and coded TCP simultaneously using FTP to transmit 20M file CMCC LTE at Colleage campus Coded TCP: This is the test result in the LTE where is signal is good. We can see the coded tcp and standard tcp achieves similar throughput. Download time (s) TCP 33.8 Coded TCP 31.2

14 Use case: voice over WiFi
Summary Use case: voice over WiFi In the test, we found that when using TCP to transmit voice/vedio, if the packet loss rate is greater than 2%, the quality of the voice/vedio will be degraded significantly Considering that many public WiFi suffer a non-negligible packet loss rate, the quality of voice over WiFi can not be guaranteed. Combing TCP with coding, the packet loss can be erased by coding and thus the quality of voice can be guaranteed in the WiFi. We introduce a use case where coded tcp show its advantage. The use case is voice over WiFi

15 Relationship with TCP congestion control
Currently, coded TCP can not distinguish link error loss from congestion loss, thus the CWND will not be reduced if congestion loss can be recovered through coding. This will impact TCP congestion control On the other hand, In the condition of congestion loss, if coding can not recover the lost packets, coded TCP obeys TCP congestion control. we set the maximal coding ratio as 1.2 (20% redundant coded packets) in the coded TCP prototype. Thus: case 1: if the packet loss is 0%, the coded tcp obeys the TCP congestion control with setting coding ratio as 1. case2: if the packet loss is too high to be recovered by 1.2 coding ratio, the coded TCP obeys the TCP congestion control case 3: if the packet loss is low so the 1.2 coding ratio can recoverr it, the coded TCP does not reduce the CWND. This leads to congestion increases and the 1.2 coding ratio can not recover. After that, the coded TCP obeys the TCP congestion control again. we plan to carefully evaluate whether case 3 can be acceptted in follow up work At last, we discuss about the relationship with TCP congestion control.

16 Thanks


Download ppt "Combining TCP with coding in wireless network"

Similar presentations


Ads by Google