MMSP: An Alternative Transport Protocol For Multiple Co-Existing Networks
MMSP: An Alternative Transport Protocol For Multiple Co-Existing Networks
Haoran Song
Master of Science
in
(Computer Science)
abstracting the essential functionalities of TCP and UDP for multiple coex
isting networks. It inherits the good characteristics from TCP while over
comes many drawbacks from it. The most important features of MMSP is
11
Table of Contents
Abstract
Table of Contents U’
List of Tables vi
Acknowledgements .
1 Introduction 1
1.1 Motivations 1
1.2 Thesis Contributions 5
1.3 Thesis Organization 6
“1
Table of Contents
iv
Table of Contents
4 Experimental Evaluation 51
4.1 Experiment One - Functionality and Reliability 52
4.2 Experiment Two - Throughput 53
Bibliography 62
V
List of Tables
vi
List of Figures
vii
List of Figures
viii
Acknowledgements
This thesis would have never been completed without the support of many
visor Dr. Son Vuong who has been a constant source of inspiration for me.
He has always been generous with his time and discussions for this thesis
and reminded me to take time to enjoy the small things in life. I appreciate
I also want to thank Dr. George Tsiknis for reading my thesis and
providing useful feedback.
Thanks to Yvonne Chen, Billy Cheung, and Aaron Hilton for improving
Finally, there are many people in the computer science department who
have made my life easier and more enjoyable over the years. I would hke to
thank all of the members of the NIC lab for their help and for interesting
discussions.
ix
Chapter 1
Introduction
the same level as TCP and UDP protocol and inherits lots of good charac
idea overcomes the instability of the wireless network due to the frequently
changed topology. MMSP let mobile nodes have more flexibility to move
around within larger areas without losing the already established connec
tion as multiple links can coexist to keep the connections alive [1].
1.1 Motivations
mized, feature extended and updated protocol derived from TCP and UDP.
Figure 1.1 presents the layer where the middleware MMSP is designed on
IP stack. TCP is one of the most important protocol suites in use today. It
1
Chapter 1. Introduction
for applications like file transfer and email. It guarantees that unreliable
and passes the consecutive byte stream to upper layer applications [1]. It
significantly simplifies the task of writing top layer protocols such as RTSP,
to TCP, UDP uses datagram as the unit to delivered data. It does not
guarantee reliability or ordering in the way TCP does. Data is not trans
2
Chapter 1. Introduction
Both TCP and UDP have been extensively used in Internet due to their
TCP requires RTSP packets and RTP packets interleaved [18]. But it is not
loss. Most of the time, TCP video streaming only requires RTSP command
the RTP data packets. Having RTP packets all delivered in a connection-
this case, TCP protocol can not totally fit into some mobile devices with
the data. Under these circumstances, TCP incurs unnecessary delay and
more fiexibilities and powerful mechanisms for solving the above discussed
of range.
Recently, as more and more mobile device vendors choose to unite 3G,
WiFi and WiMax into one entity, simply using TCP and UDP becomes un
3
Chapter 1. Introduction
with the same type. For example, in the past two years, cellphones like
Nokia and LG, smart phones like BlackBerry and laptops all have different
GPRS/3G and WiFi have been widely unified and incorporate into a single
device. Although TCP and UDP are still widely accepted as the most de
cent transport layer protocols, their original design can no longer satisfy the
ality [2]. More and more requirements from recent technology tells us that
just using one protocol TCP or UDP is no longer good enough to provide
engineers begin to search for a more generic protocol that not only provides
services for each network media, but also transparently combines different
Unlike TCP and UDP, MMSP presents a more updated and powerful
transport layer protocol to solve the handover problems and source sharing
issues among various networks. This thesis introduces the basic concept
4
Chapter 1. Introduction
backs with respect of some special purpose applications, such as UMA and
TCP and MMSP, to learn what kind of applications are suitable to use
MMSP.
ate our experiment results. During the design portion, we investigate the
those said shortcomings. One novel and great advantage using MMSP is
maintaining multiple streams within one connection even when one of the
largely reduces the unnecessary delay time of the head-of-line block issue
that exists in TCP. Moreover, by using the third party application Iperf, we
could clearly and easily gather different test results from TCP and MMSP
fact that the throughput of MMSP benefits from using multiple streams in
5
Chapter 1. Introduction
most used operating system Windows XP is able to add a third party driver
The whole thesis contains five parts. The remaining thesis is organized as
video streaming. In this chapter, we also introduce the concept of MMSP, its
for using MMSP and provide the design and implementation details. In
out on our MMSP module and analyze the experiment results. The final
6
Chapter 2
Work
Since MMSP is derived from TCP, it is helpful to firstly examine the advan
is one of the core protocols of the Internet protocol suite. TCP provides
reliable, in-order delivery for a stream of bytes. It was firstly formally spec
ified in 1974 and was designed to be flexible enough to handle the physical
used for more than twenty years with little changes [7].
However, the initial TCP design does not cover the special case that a
only able to hold a single stream using one end point. This drawback is very
costly since it causes unnecessary message delay and wastes the transmission
7
Chapter 2. Background and Related Work,
standard, these applications can only set up one TCP connection through
Example
UDP streaming. Streaming using TCP requires both RTSP control packets
and UDP packets interleaved within one TCP stream [11]. Both RTSP and
RTP are encapsulated into the TCP payload, shown in Figure 2.1. Figure
both RTSP control packets and RTP data packets in one TCP stream may
result in unnecessary and serious head-of-line block issue [8]. For example, if
several RTP packets are out of order, lost and wait for being retransmitted,
the delivery of RTSP control packets may be delayed. The delayed RTSP
control packets will lead to inaccurate media control in the application layer
[10].
Figure 2.1: Interleaved RTSP and RTP packets with TCP streaming
Also, since TCP only supports one streaming connection, it enlarges the
dependency on only one access point and restricts the lifespan of the whole
8
Chapter 2. Background and Related Work
ignthlE nia1Epoxt
range networks like WLAN exposes an obvious weakness at this point. The
whole streaming process has to be terminated when the only used access
a good solution for devices that have more than one access points to maintain
using other available paths. For instance, video streaming on a mobile phone
with accesses to both WiFi and EDGE should be still able to continuously
watch the video via EDGE network after WiFi becomes out of range.
those we discussed above, we propose our new type of protocol which can
name it MMSP.
9
Chapter 2. Background and Related Work
Even when one link is offline, data flow is still able to spread out through
the other links. MMSP can transmit data via multiple paths to avoid the
supports both ordered and unordered data delivery. This makes it suitable
more efficient and robust. Table 2.1 presents a comparison of MMSP, TCP
such as reliable transmission and ordered delivery. It still uses the flow
10
Chapter 2. Background and Related Work
and congestion control algorithms similar to TCP, such as slow start, fast
(like data chunks in UDP) rather than bytes. It uses 4-way handshaking to
does not have a half-open or half-close state as TCP. The details of all these
With the increasing demand for wireless personal area networks (WPAN),
Wireless Local Area Networks (WLAN) are being developed to provide high
[5]. WLAN service is cheaper than most GPRS services. However, the per
A multi-streaming host that has more than one IP address can estab
11
Chapter 2. Background and Related Work
separate stream for each assigned IP. The host can effectively control and
aggregate these multiple streams for delivering data. Since TCP only allows
network’s usage when a host has multiple network paths. Figure 2.3 is one
example of hosts that have multiple network interfaces. The client has two
network interfaces: EDGE/3G and WiFi; the server uses another two net
work interfaces: Ethernet and WiFi. If using TCP, the client and server are
only able to use network interface to set up a connection (either the IP1 or
1P2 for the client and ether the 1P3 or 1P4 for the server), but with MMSP
the client and the server are able to have multiple streams coexisted in one
connection. In the example of Figure 2.3, streami uses IP1-1P3 and stream2
Client
encoded into the MMSP packets, all of which are transmitted to the net
in that it avoids the head-of-line blocking problem that happens very often
in TCP. In other words, blocking one stream can not result in blocking other
12
Chapter 2. Background and Related Work
Str-eamO -ci
( c Stam 1
____9_
[ *— StreamN
sion Correction algorithm to control and monitor the whole connection path
selection. When one link becomes unavailable, it redirects the data from
that broken link to other available paths. The top layer applications are not
affected and are not even aware of these underground changes. MMSP is
work applications. Let us take an example that a laptop has both WiFi and
Ethernet interfaces to Internet. When the laptop has a very fixed position,
people prefer to use the high-speed Ethernet network. In MMSP, this stable
Ethernet interface is selected to build a primary path and the wireless one
is used for a secondary path. The sender will continuously monitor whether
any of IP addresses of the destination host are reachable. If the network link
13
Chapter 2. Background and Related Work
of the primary address fails, for example the laptop is moved away from the
original place and gets disconnected form Ethernet, MMSP will maintain
the connection by switching the stream from Ethernet to WiFi. Later, after
using Ethernet.
retransmit data through alternate network paths. This largely avoids the
SSEQ Number stands for Stream Sequence Number. The MMSP user can
MMSP user. This can refer to its usage in TCP. However, as opposed to
TCP, when one stream gets blocked by waiting for the next in-sequence user
The TSEQ is independent from any SSEQ Number assigned at stream level.
The receiver acknowledges all TSEQs arrived, even if there are gaps in the
14
Chapter 2. Background and Related Work
user messages to guarantee the MMSP packet’s size plus the lower layers’
encapsulation fit in the path MTU. Upon being received, fragments are
reassembled into complete messages before being passed to the MMSP con
sumer.
15
Chapter 3
common header and EXT (extension) blocks. Each EXT block contains ei
ther control information or user data. Multiple EXT blocks can be bounded
into one packet, except the SYN, SYN-ACK, RST and SHUTDOWN blocks.
For these special signal-control blocks, they must not be bundled with any
the MMSP packet and IP header shall not be greater than the current path
DATA blocks, an endpoint must locate the EXTC blocks firstly in the MMSP
packet and followed by DATA blocks. See Figure 3.1 for the MMSP packet
format.
16
Chapter 3. Design and Implementation
Block
Block
nation IP and port to identify which connection this packet belongs [15].
17
Chapter 3. Design and Implementation
[15].
the value of this Identification is set to the initial packet received by the
Different from TCP, MMSP introduces the concept of blocks. The Figure
3.2 illustrates the field format for the blocks to be transmitted in the MMSP
packet.
Block Types are encoded such that the highest-order 1 bit indicating the
action that must be taken if the processing endpoint does not recognize the
18
Chapter 3. Design and Implementation
Value Type
0 Payload Data
1 SACK
2 SYN
3 SYN ACK
4 PING (INFO)
5 PONG
6 FIN
7 FIN-ACE
8 FIN-Done
9 RST
10 ERROR
11 PROBE
12 PROBE ACK
block type.
0: Stop processing this MMSP packet and discard it. Also stop process
Block Flags: 8 bits These 8 bits are reserved for usage of different block
types as given by the Block Type. They are set to zero on delivering unless
otherwise specified.
Block Length: 16 bits unsigned integer The field represents the whole
size of the block in bytes including the Block Type, Block Flags, Block
Length, and the Block Data fields. But the total length of the Block can
be greater than the Block Length. The total length of a block (including
19
Chapter 3. Design and Implementation
that the whole MMSP packet is always in 32 bits alignment for processing.
If the length of the whole block does not satisfy the multiple of 4 bytes,
the sender must append the block with all zero bytes until the multiple of
4 bytes occurs. The sender shall never pad with more than 3 bytes. The
Block Data: a variable field This field contains the actual payload to be
transmitted in the Block. Different Block Types may use different formats
of this field.
MMSP blocks are mainly defined by two groups of types: DATA Block and
Control Block.
Reserved: 5 bits These bits are reserved for further use. They should
20
Chapter 3. Design and Implementation
i2bits
( 8 1 16
I liii
Type = 0 Reserved Li B Length
Block Data
e
B bit: 1 bit The B bit means the beginning bit of the fragment. If this
E bit: 1 bit The E bit means the ending bit of the fragment. If this bit
types of fragments.
21
Chapter 3. Design and Implementation
B E Combination Description
0 0 Middle piece of a fragmented message
0 1 Last piece of a fragmented message
1 0 First piece of a fragmented message
1 1 Unfragmented message
Length: 16 bits unsigned integer This field contains the value of the
length of the DATA block in bytes from the beginning of the block to the
end of the data block field, but excluding any padding 0’s. A DATA block
without user data field has Length set to 16 bytes and the last field is Payload
Protocol Specification.
TSEQ: 32 bits unsigned integer This field indicates the TSEQ number
for this DATA block. TSEQ can only range from 0 to 232 -1 and wraps back
multiple blocks, the receiver needs to use TSEQ to reassemble the message.
strictly sequential.
quence number of the following data within the stream identified by the
22
Chapter 3. Design and Implementation
by its upper layer and sent to its peer. The peer uses this specification to
Data: variable length This is the real carried payload data. MMSP
pads this field with all 0 bytes to make the whole Block be multiple of 4
bytes. But this padding shall never be added more than 3 bytes.
DATA blocks. It informs the peer receipt of DATA blocks and missed blocks
flow and congestion control mechanism from TCP [3]. The receiver of the
DATA blocks can control the transmission rate at which the sender is sending
Flags: 8 bits All these 8 bits are set to 0 by the sender and ignored by
the receiver.
Ack TSEQ: 32 bits unsigned integer This field stores the last DATA
block’s TSEQ received in sequence before the first missed one occurs.
23
Chapter 3. Design and Implementation
4 32 Bits
16
Ack TSEQ
• • • ,
g
1
Duplieae I’SEQ
• • •
connection. The receiver can change the value of AWS when it sends SACK
24
Chapter 3. Design and Implementation
indicates the number of duplicate TSEQS the endpoint has received. All
Missed Blocks fields All these consecutive fields are used to contain lost
blocks. The total number of these fields equals to the value stored in the
field of Number of Lost Blocks. Each missed block has a 16-bit start offset
and end offset of this DATA block. The actual TSEQ of these lost blocks is
calculated by:
Note: If blocks are successfully received, their TSEQs must fall in the
following condition:
cates the number of duplicate TSEQs that have been received since last
SACK was sent. Every time a block with the duplicate TSEQ arrived at the
25
Chapter 3. Design and Implementation
list TSEQ 5 once in the outbound SACK. After sending the SACK if it still
received one more TSEQ 5, it would list TSEQ 5 as a duplicate once in the
This Block is used to initiate a MMSP connection between two peers. The
SYN Block is a control block that has format shown in Figure 3.5:
32 Bits
0 6 16 31
SYN
SYN TSEQ
IPv4 Addresses
Control Flag: 8 bits The Control Flag for SYN Block is reserved. All
these 8 bits are set to 0 by the sender and ignored by the receiver.
26
Chapter 3. Design and Implementation
SYN: 32 bits unsigned integer The vaiue of SYN ranges from 0 to 232
from the Sequence Number attacks as in TCP. The SYN tag is also placed
into the Connection Identity field of all the MMSP SYN packets.
connection. The receiver can change the value of AWS when it sends SYN
to create in this connection. The value 0 must not be used in this field.
other end to create in this connection. The value 0 must not be used in this
field.
SYN TSEQ: 32 bits unsigned integer This field defines the initial
TSEQ that the sender will use in the SYN packet. It ranges from 0 to 232
-1.
addresses that the sender of this block supports. The number of IP addresses
in the list must be equivalent to the value stored in the field of Number of
27
Chapter 3. Design and Implementation
Outgoing Streams.
The description for Type, Control Flogs, and Length of SYN-ACK are
28
Chapter 3. Design and Implementation
proposes to create in this connection. The value 0 must not be used in this
field.
the maximum inbound streams that the sender of this SYN-ACK block
allows the other end to create in this connection. The value 0 must not be
in the list must be equivalent to the value stored in the field of Number of
Outgoing Streams.
the SYN receiver using variable-length block format. We name this variable-
Value
29
Chapter 3. Design and Implementation
VEXT Value This filed contains the necessary state information for the
a response. The SYN-ACK packet must carry State INFO including a time
stamp of this INFO being created, a lifespan of State INFO, and all other
sent firstly from the sender to its peer to complete the initialization process,
upon receiving the SYN-ACK from its peer. This Block must precede any
Data Block sent within the connection, but it can be bundled with one or
INFO
30
Chapter 3. Design and Implementation
Flags: 8 bits integer For PING block, this field is set to 0 by the sender
including the block header (4 bytes) and the size of the INFO.
INFO: variable size INFO has a variable size. It contains the same
INFO received in the SYN-ACK block.
acknowledges the sender’s INFO PING block. This block must precede any
Data Block sent within the connection, but it can be bundled with one or
Flags: 8 bits integer For PONG block, this field is set to 0 by the sender
Length: 16 bits unsigned integer PONG block does not contain the
INFO in its header. So the Length field is always set to 4.
31
Chapter 3. Design and Implementation
TSEQ Ack
Flags: 8 bits integer In FIN block, this field is set to 0 by the sender
TSEQ ACK: 32 bits unsigned integer This field contains the TSEQ
number of the last block received in sequence. It is used to acknowledge to
sender’s last block and inform its peer it is ready to shutdown the connection.
This Block is used to acknowledge the receipt of the FIN block at the com
32
Chapter 3. Design and Implementation
Flags: 8 bits integer This field is set to 0 by the sender and ignored by
the receiver.
This block uses the exactly same format as FIN-ACK, but Type is set to 8.
The receiver of a FIN-DONE shall accept a packet only if the CID field of
this packet matches its own CID or its peer’s CID. Otherwise, the receiver
will discard the packet for security purpose [10, 12]. The receiver should
not take any further action when it receives a FIN-DONE block in the FIN
ACK-SENT state.
The RST block is sent to the other end of a connection to abort the con
nection. The RST block contains a header and may contain the reason
SYN and FIN are not permitted to be bundled with RST. If an endpoint
receivers a RST for a connection that does not exist or a wrong format, it
must discard it without resetting the connection. The receiver can decide if
33
Chapter 3. Design and Implementation
326its
4
15 31
Reserved: 8 bits This field is reserved for future usage. It can be used
the cause of certain error condition. Each RST may contain zero, one or
fatal of itself, but it may be used to report a fatal condition. ERROR uses
the exactly same block format as RST, but Type is 10 and the Reserved
field is replaced by Flags. Also, ERROR block contains at least one Error
Cause.
34
Chapter 3. Design and Implementation
bytes. It includes the block header and all the Error Cause fields present.
The first two bytes of Error Cause block is Error Code field. The second two
bytes is Cause Length field. Other following bytes contain Specific Cause
Cause Information.
of this Error block. See Table 3.3 for the definition of each error condition.
35
Chapter 3. Design and Implementation
32 Bits
8 31
Probe is sent aild the destination IP address that this Probe is sent to.
Once an endpoint receives the Probe block, it acknowledges the sender with
this block. The PROBE ACK block must be sent to the source IP address
of the PROBE block’s sender. This block uses the same block format as
PROBE. The parameter field should contain the time when this PROBE
This section describes the transport process within the three main states of
close.
36
Chapter 3. Design and Implementation
and delivery data is different from TCP. Traditional TCP performs a three-
handshake by involving a state INFO to help protect from DoS attacks. The
DoS attack uses the SYN flood to tie up resources on the server machine, so
by having the hacker’s client discard the returning SYN-ACK message from
the server and not send the final ACK. This results in the server retaining
the partial state that was allocated by the initial hacker’s SYN [17].
as described in section 3.2.3. The INFO block is bundled with the SYN
ACK from the server to the client. The server will not allocate a TCB
(transmission control block) until it receives the INFO sent back from the
client. Since the server only derives a TCB for the connection from an
See Figure 3.14 for the 4-way handshaking and Figure 3.15 for its state
1. Firstly, both the server and client are in the CLOSED state. The
37
Chapter 3. Design and Implementation
control block (TCB) that contains all necessary parameters for the
sage provides the server with all the necessary information of the client,
Client Server
Create KB
Start 5Th Timer
SYN Block
) - Receive 5Th
Create INFO
Start INFO Timer
51Aut INFO)) Send SYN-ACK
Receive SYN-ACI(
Stop SYJI Timer
Start INFO Timer
Receive INFO PING
Stop INFO Timer
Send IIIFO-PONG
Receive INFO-POlIO
INFO POliO
—.
Connection Established
Ready to Transmit DATA
3. The server processes the SYN request. If it wishes to accept the con
38
Chapter 3. Design and Implementation
time is set to the current time. The TCB is fnrther packaged up and
deletes all information associated with the temporary TCB and goes
4. After receiving the SYN-ACK block, the client stops SYN Timer.
Then it pings the INFO back to the server within the INFO-PING
block. The client then enters the INFO-PINGED state and starts the
5. When the server receives the INFO from the client, it checks the va
lidity of the INFO. Then server side recreates the TCB from the in
formation contained in the INFO. Only on this time, that server actu
state. Then the server PONGs the INFO back to the client.
39
Chapter 3. Design and Implementation
e F
snd
S
INFO WAIT
rec ING
c N
PNG
cre --
sen
INFO FINGed
PONG
Two types of blocks are transmitted throughout the data transmission pro
cess: DATA block and PROBE block. DATA blocks carry the actual data
between the client and server; PROBE blocks are exchanged between the
nodes to test the connectivity of the endpoints to preserve the validity of the
40
Chapter 3. Design and Implementation
ChentiServer
ACWBIock
Remoclc
3. The data exchange continues until the endpoints initiate the CLOSE
request.
MMSP still defines an end-to-end window based flow and congestion con
trol mechanisms similar to TCP. The receiver uses a 32-bit window size in
SACK to inform the other endpoint an expected sending rate. The sender
that can be sent before they are acknowledged. The SACK is used to ac
knowledge each DATA block that has been received. The receiver adds a
blocks. Sometimes, DATA blocks are lost during the transmission, and then
SACK specifies a sequence of missed blocks and responds back to the sender
for retransmission. But if SACK is also lost, all those unacknowledged data
blocks will still be retransmitted after the transmission timer expired on the
41
Chapter 3. Design and Implementation
sender’s side.
Figure 3.17 and Figure 3.18 show the MMSP Shutdown diagram and its state
machine. MMSP does not support the “half-closed” state presented in TCP,
where one endpoint stays open while the other endpoint closes [15]. MMSP is
not designed to maintain the “half-closed” state since very few applications
require it. MMSP only allows full-closed: when Close is initiated by one
endpoint, the other endpoint must finish sending outstanding packets and
continue the Close forwards. The MMSP connection is fully completed after
both initial Close request and its acknowledgement have been responded by
their respective receivers. The close request can be initiated by any of the
two nodes. Figure 3.18 illustrates an example with the Close request sent
from the server. The process of Close can be described in three steps:
1. The server sends a FIN request to the client and starts the Close timer.
3. Server receives the FIN-ACK and responds by stopping its Close timer
and deleting its TCB. Then server creates a FIN-DONE block and
sends it back to the client. Once the client receives the FIN-DONE,
the client side completes the full close of this MMSP connection.
42
Chapter 3. Design and Implementation
Cx
the SYN block. Therefore, the client only needs to know one IP address
of the server because the all other available IP addresses supported by the
server are delivered within the SYN-ACK block. Currently, MMSP is only
43
Chapter 3. Design and Implementation
Server Client
Sand Fill
Start Close Timer
Recieve Fill
send Flil-ACK
(FIN-ACK
Eiicieve Fill.ACK
Send Flll-D)HE
Stop Close Timer Flil-DOIIE -
cluding those paths that are not used for transmission of data blocks. Each
reachable mark on this path in its data structure. When a PROBE block
only has one path and this main path becomes unreachable, the connection
has to be terminated. If all the paths becomes unreachable, MMSP uses the
last unreachable path to set the out-of-service timer (normally we set this
timer to 5 seconds for experiment). Once the timer on the latest unreachable
of the IP addresses is selected as the primary path. All data blocks are
44
Chapter 3. Design and Implementation
active path is selected. In our design, all addresses are listed in an IP address
has second fastest bandwidth for data retransmission. If the primary path
has the second fastest bandwidth as a new primary path or return a status
update to its user and let the user choose another path as the primary path.
In terms of measurement of the round trip time of each path, Probe and
TCP uses sequence number to detect packet loss and duplication. MMSP
also keeps this functionality by numbering all data blocks with the TSEQ
And this timer is restarted and double its time-up period. This is similar
SACK. Sometimes, if some segments of data blocks arrive with some data
blocks missed in the middle, the responding SACK should report all the lost
blocks. Whenever three consecutive SACKs report the same data block hole,
the receiver of these SACKS shall immediately retransmit the reported data
blocks. We call this Fast Retransmit [3]. Each MMSP endpoint maintains a
data buffer with a specific window size. The flow control of MMSP is similar
to the TCP. The receiver can control the transmission rate by advertising
45
Chapter 3. Design and Implementation
its window size in the SACK block. The sender also maintains a variable to
specify how many outstanding packets shall be sent before they are acknowl
size must be less than or equal to receiver’s window size. The congestion
control of MMSP is derived from TCP congestion control such as slow start
and congestion control for one TCP connection, MMSP has a discrete set
3.4 Implementation
interface provided for the upper layer protocol. This module also controls
the connection setup and termination. It receives the primitives from the
upper layers via message Dispatcher module or the peer via recvBundler. In
the upper layers via message dispatcher or the peer via sendBunlder. This
module also contains the state of a connection. The whole MMSP domain
46
Chapter 3. Design and Implementation
instance usually has more than one stream, the purpose of this module is
the distribution of signals from the upper layer and from the peer via the
socket to the addressed endpoints. Signals from the WinSocket interface are
data from MMSP message Dispatcher. All received MMSP data are disas
47
Chapter 3. Design and Implementation
sembled into blocks. Depending on the block type, the blocks are distributed
respectively.
RecvCtrl: This module creates SACK data structures that are used to
FIowCtrI: This module implements most parts of the flow control mech
anisms.
nism. It stores all data that have not been acknowledged by the peer.
sembling control blocks. When a block is created, the caller gets a block-ID,
with which it can address the block in the other following calls. In order to
handle more than one block at the same time, pointers to blocks are stored
48
Chapter 3. Design and Implementation
ceive a block and want to respond by sending another block. A block should
be deleted after a signal is handled. All the blocks are in host byte order.
Coder: This module is borrowed from the Md5 message digest algorithm.
a secure manner before being encrypted with a secret key under a public
key cryptosystem such as RSA [16]. MMSP uses this module to assign a
49
Chapter 3. Design and Implementation
50
Chapter 4
Experimental Evaluation
consists of two different hosts. Both of these two hosts have three interfaces
link and the other two interfaces are wireless links using 802.11g. This
chapter is formed by two sections. Section one discusses the reliability of
MMSP; Section two introduces the performance tests on MMSP and TCP.
tion can be setup via one path, two paths and even three paths. Then we
manually block one or two of three paths to verify if the MMSP connection
is still maintained. In the last step, we block all available paths and to see
testing tool that can create TCP and UDP data streams and measure the
51
Chapter 4. Experimental Evaluation
our MMSP layer and get throughpnt results under the best-effort condition.
Then we did another performance test with a concern of bad network con
data from the client to the server and corrupted parts of sent-out data for the
error-handling experiment. Then, the test data for both TCP and MMSP
our results.
Reliability
Experiment 1 has two hosts (host A and host B) involved in a local private
network. Each host has two wireless interfaces and one wired interface
assigned to each host. A MMSP application with the client and server mode
was implemented to separately run on host A with the client mode and on
host B with the server mode. The MMSP application was programmed to
use the wired path as the primary path and the other two wireless paths as
different paths. The Table 4.1 presents the testing results against six differ
ent cases. Firstly the client built up three paths with the server within one
52
Chapter 4. Experimental Evaluation
MMSP connection and began to transmit data through the primary path.
chose an idle path to transmit the data. Since MMSP keeps probing the
availability of each link, after the primary link was recovered, MMSP was
informed and switched back to the primary link. We then disconnected the
disconnected, all three links. After timers of both server and client were ex
pired, the MMSP instance on both hosts was deleted and their connection
was closed.
loss ratio, jitter and so forth. Iperf has a client and server mode, either
53
Chapter 4. Experimental Evaluation
tween TCP and MMSP with different configurations of path; the secondary
Iperf server on the host B. See Table 4.2 for each Path configuration. Each
row in this table is a test case. Case 1 and case 2 have only one stream
as their primary path. To test the throughput, the client sent data as fast
as possible to the server via TCP and MMSP respectively. We found that
little slower than TCP. This may be caused by the fact that MMSP is not
than TCP, the added-in complexity may also result in some extra overhead
that TCP does not have. In case 3 and case 4, extra paths are added into
since secondary links can be used to reduce the head-of-line block problem.
However, in the above four tests, adding additional paths into MMSP does
not directly present the advantages of multi-streaming in that data loss and
54
Chapter 4. Experimental Evaluation
retransmission are less than 1%. On the other hand, test case 5 presents
reaches 2lMb/s, improved by 36% against the case 2 of TCP, which is only
18Mb/s.
The second experiment was to test the performance between TCP and
first let both MMSP and TCP use a wired link as their primary paths.
Different from TCP, MMSP has extra 802.llg wireless links as its secondary
wireless link as the primary link, but at this time we used wired links as
the secondary paths for MMSP. In both of these two cases, we let the client
send 100 MB data to the server and corrupted 1MB of every 10MB data
Figure 4.1 presents the throughput between TCP and MMSP with re
spect of the increased number of error packets being delivered. This bench
mark shows that the throughput of TCP and MMSP are decreased while
goes down much faster than MMSP. Since TCP uses one stream only, the
sue. Opposite to TCP, MMSP can use other streams to avoid head-of-line
issue. For example, when 80% of the corrupted data happen, the MMSP’s
TCP. Different from previous one in Figure 4.1, MMSP uses the wireless
55
Chapter 4. Experimental Evaluation
link as the primary path and the wired links as secondary paths. TCP’s
However, because MMSP used the wired links as the retransmission paths,
ondary path. Therefore, throughput is not affected too much by the data
retransmission.
since our path selection algorithm was designed to only select a third path
In other words, the third path keeps idle when the one of the secondary
56
Chapter 4. Experimental Evaluation
25 r
—.-—i
i
1 isP(i wired
20 — link as the
15 - secondary path)
1 10 —ISP(2 wired
links as the
___________
Errors
57
Chapter 5
5.1 Conclusions
devices are able to utilize multiple access points to maintain the Internet
into one MMSP stream, but with more powerful functionality with respect
IP transport stack, we used the Windows platform and its winsocket API. A
new MMSP state machine was designed to handle each transition condition.
We reused and inherited some algorithms from TCP, such as the flow control
and congestion control; we also redesigned the MMSP packet format and
58
Chapter 5. Conclusions and Future Work
to select more than one links for data delivery instead of just using
one link.
with the outer network as long as one link is active. At this point,
short future. For example, users can keep a MMSP connection alive
when walking from a WiMax covered area into a new WiMax area
4. It is more efficient. Since multiple paths are used into one connection,
stack, especially for the mobile devices which often change their access
points.
Our work has the potential to spawn a new body of research where other
five features of MMSP can be investigated. First, our MMSP only supports
59
Chapter 5. Conclusions and Foture Work
IPv4 address format. The need of IPv6 can be studied and can be added to
directly using IP layer in the kernel. Since MMSP is not directly accessing
the IP interface, the interaction between UDP and IP may result in some
Third, our path selection algorithm is designed to choose the next avail
able path for data retransmission from the path queue. It is the simplest way,
but not the smartest way. This algorithm could be redesigned. For exam
the second fastest links as the data retransmission path by monitoring each
path’s capability.
especially for some mobile phones with slow processors and low capacity
of memory. The MMSP can be partially ported to the specific IP stack of
mance.
using multiple streams to simultaneously send data instead of using just one
Sixth, our current MMSP does not contain a minimum cost algorithm
with the concern of path selection. Lacking of this algorithm may lead to
60
Chapter 5. Conclusions and Future Work
unnecessary users’ cost when a costly path is selected as the primary path
while the original primary is dropped. In most cases, 30 or GPRS data are
notify users, ask them to select a cheap data service as the primary path or
61
Bibliography
[2] SGPP and UMA System Enginee’ringy. Mpirical Limited, second edi
tion, 2006.
RFC3554, 2003.
Networks, 1998.
[7] T.F. Herbert. The Linux TCP/IP Stack: Networking for Embedded
62
Bibliography
[8] H.Y. Hsieh and R. Sivakumar. A Transport Layer Approach for Achiev
ogy.
RFCs, 1990.
[14] J. Postel. RFC 768: User Datagram Protocol, 1980. URL http://www.
RFCs, 1992.
63
Bibliography
net/Projects/Iperf.
64