DOC PREVIEW
MIT 6 033 - A Reliable, Efficient, and Load Balancing Method

This preview shows page 1-2-3-4 out of 11 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

A Reliable, Efficient, and Load Balancing Method for TCP StripingA Reliable, Efficient, and Load Balancing Method for TCPStriping6.033 : Computer Systems Engineering : Design Project 2Jon Spaulding, [email protected] Ranade, [email protected] Low, [email protected]: Lewis Girod (12pm, 11am, 12pm sections respectively) 5/7/0821. IntroductionThe Stripe@Home system differs from a normal network connection in that it is designedto split TCP traffic among several access points (AP's). This TCP-striping technique presents unique problems, some of which are listed below.1. Preserve an end-to-end environment2. Load balance traffic across the AP's to increase throughput3. Make the Stripe@Home system transparent to application/server processes. This includes maintaining TCP properties, such as reliability and packet ordering.4. Performing address translation in such a way that messages always travel to the correct user and application.5. Allow multiple clients running multiple applications while maintaining load balancing, while being able to recover from AP failure.Our solution makes use of underlying TCP abilities to address the problems mentioned above. A schematic of our system can be found in Figure 1 below. Each set of arrows shown below represents a TCP connection. It is apparent from this figure that Stripe@Home uses TCP striping from the client to MIT to send data through multiple AP's simultaneously. This document will begin by presenting the details of how the client-side works, followed by the details of the MIT-side and an analysis of our system.2. Client-Side Design2.1 OverviewWhen a client turns on, the first thing it does is to send a packet to the MIT server announcing that it is alive. When an application makes a TCP connection to the MIT server, a TCP intercept is used on the client machine to intercept traffic. The TCP intercept shim makes TCP connections to the MIT server through each available AP (one of which is noted as the “default connection” or the connection a normal system would utilize). As traffic comes in from the client application, the shim is responsible for placingit into TCP streams to the MIT server in such a way as to maximize throughput. Due to the absence of a single end-to-end TCP connection for this system, the shim must also3provide some overhead procedures to reorder packets as they come in, enable fast retransmission, and ensure that the connection is reliable.To handle these problems, the client side shim maintains an event loop that performs the following functions:1. Use WifiScan() and WifiAssociate() to check for new AP's or discard dead ones.2. Add sockets for new connections3. Close old connections which are no longer being used 4. Probe sockets to see if there is data to be read5. Write data to the socket buffer to be sent off6. At certain intervals, run TestAP() routine as described below to ensure connectionreliability.7. If there is a significant change between measured and expected throughput (as seen via the socket buffer drain rate), then call the SpeedTest() routine.Upon initialization, the event loop is populated with a list of AP's which have a route to the host from the client, and a set of connection speeds for each route, as determined by the Speed Test as described below. When a client wishes to send a packet, a random number is generated, and an AP is selected to send the packet, as per the discussion on load balancing among AP's detailed in section 2.4. If the socket sending to that AP has a full buffer, then the shim selects a different AP to send to. After each write, the shim attempts to read from each socket buffer. We assume here that reading is instantaneous, so reading every socket after a write does not increase overhead significantly. The event loop will also call an interrupt after a set amount of time (which is determined by the buffer size, see the following discussion under load balancing). This interrupt code will perform a speed test to update the speed of each connection, and then return to the main loop with updated speed values for each connection. Finally, the event loop will send out Test packets to each outgoing socket every set number of packets to ensure that the AP connection is still alive.2.2 Initialization to Stripe@HomeIdeally, multiple users will use Stripe@Home simultaneously. The first thing done by a system when entering the Stripe@Home system is to determine which wireless AP's are within range for each client. Once this is done, our design has a user identify itself to the MIT server before it begins to use the system. To do this, the client will send a packet to the MIT server, giving the client's address and the list of AP's which the client can use. The MIT server will log the user's address as well as the AP address and port the data came in on. Each initialization (init) packet will contain the client’s address (which we assume here to be unique). These init packets will build a mapping in the MIT server which link routes to a particular client with specific incoming AP addresses and port numbers. This ensures that the MIT server will send datato a client via an appropriate existing TCP connection.42.3Preservation of TCP PropertiesThe Stripe@Home system exists to take advantage of having unused AP's near a user. By striping traffic using split TCP, the end-to-end reliability of the network is broken. This leaves the issue of packet reordering, which must occur so that packets do not arrive out of order at the client side.To handle reordering, the shim will take each packet as it is received from the MIT server, and put it into an inbound buffer. After the shim adds a packet to this buffer, it checks to see if the next packet to be sent to the client application can be found in the buffer by checking packet sequence numbers from the TCP packet header. If the next packet is found, the shim will pass this packet along to the client application. 2.4 Load BalancingThe Stripe@Home system provides optimal throughput by distributing a client’s outgoingpackets among all of its connected APs. However, not all APs demonstrate the same connection speeds, and a perfectly uniform distribution of packets would only run as quickly as the slowest AP available. To achieve optimal throughput, Stripe@Home clientsprefer to send packets via the fastest APs they can connect to, as these APs will clearly communicate the intended data faster than their counterparts. In order to find


View Full Document

MIT 6 033 - A Reliable, Efficient, and Load Balancing Method

Documents in this Course
TRIPLET

TRIPLET

12 pages

End Layer

End Layer

11 pages

Quiz 1

Quiz 1

4 pages

Threads

Threads

18 pages

Quiz I

Quiz I

15 pages

Atomicity

Atomicity

10 pages

QUIZ I

QUIZ I

7 pages

Load more
Download A Reliable, Efficient, and Load Balancing Method
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view A Reliable, Efficient, and Load Balancing Method and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view A Reliable, Efficient, and Load Balancing Method 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?