Presentation on theme: "Combining TCP with coding in wireless network"— Presentation transcript:
1Combining TCP with coding in wireless network Jinzhu Wang
2Problem 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 congestionIn wireless network, a lot of factors leads to unstable air-link, which causes high BER and thus high packet lossweather conditions, urban obstacles, multi-path interferences, limited coverage, mobility of the handsetTCP mistakes the link error packet loss as the congestion packet loss and thus reduces the sending rate unnecessarily in wireless network
3Problem Statement Test Packet loss in wireless network (static test) WiFiTest1: 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%;LTETest4: 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 )
4Using coding to erase packet loss SenderReceiverUser DataP1P2P1P2Encoding to involve redundacye.g., using network coding RLNCDecodingCoded DataP1+P22P1+3P24P1+3P2P1+P24P1+3P2TCP SendTCP RecvIn 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+P22P1+3P24P1+3P2P1+P24P1+3P2Packet loss2P1+3P2ACK all 3 packets has been received successfully
5Using coding to erase packet loss (systematic codes) SenderReceiverUser DataP1P2P1P2Encoding to involve redundacye.g., Using network coding RLNCDecodingCoded DataP1P2P1+P2P1P1+P2TCP SendTCP RecvWe can also use the systematic code.Therefore, the original and the coded packets are transmitted simutanouly.This situatin is similar to the previous one.P1P2P1+P2P1P1+P2Packet lossP2ACK all 3 packets has been received successfully
6Coded TCP archtecture Sender side Coding at each Block. M > N : coding involving redundancyBased on coding algorithm, make sure that any N of M coded packets received at the receiver side can result in decoding successfullyThis 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.
7Coded TCP archtecture Coding Header MACblock seqnoIPTCPCodingPayloadorig numbercombination numbercoding coefficientsblock paddingpacket paddingblock seqno: indicates the sequence number of the coding blockorig 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 decodePaddings: the number of padding in the packet/blockIn 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
8Coded 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 ?YESNOACK that the packet received successfully (same as standard TCP)ACK that all packets in the coding block received successfullyDecoding the original packets in the coding block and send to applicatonThis 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.
9Interworking with standard TCP Coded TCP transmits the coded packets and cannot interwork with standardIn 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 TCPOne bit in the reserved field of the TCP header is defined to identify whether transport uses the coded TCP or standard TCPCoded TCPCoded TCPCoded TCPTCPSYN (coded TCP)SYN (coded TCP)ACK (coded TCP)ACKIn 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 andcommunicate using standard TCP.ACK (coded TCP)ACKcoded tcp comunicationstandard tcp comunication
10PIC Experiment in lab Simulate packet loss and delay Standard TCP (Receiver)Coded TCP(Sender) supporting standard TCP and coded TCP simultaneouslySimulate packet loss and delayWiFiwiredWe 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 simultaneouslyWe 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
11Experiment 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 TCPTCP
12Experiment in public WiFi Standard TCP(Receiver)WiFiWired InternetCoded TCP(Receiver)(Sender) supporting standard TCP and coded TCP simultaneouslyusing FTP to transmit 20M fileCMCC Public WIFI at Colleage campusCoded 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 secondsDownload time (s)TCP372Coded TCP263In Public WiFi, the coded TCP improves throughput significantly
13Experiment in LTE Wired Internet using FTP to transmit 20M file Standard TCP(Receiver)LTEWired InternetCoded TCP(Receiver)(Sender) supporting standard TCP and coded TCP simultaneouslyusing FTP to transmit 20M fileCMCC LTE at Colleage campusCoded 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)TCP33.8Coded TCP31.2
14Use case: voice over WiFi SummaryUse case: voice over WiFiIn 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 significantlyConsidering 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
15Relationship 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 controlOn 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 controlcase 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 workAt last, we discuss about the relationship with TCP congestion control.