Navarro Handset Based 2008
Navarro Handset Based 2008
ABSTRACT 1. INTRODUCTION
This paper presents the results of the development of a handset Nowadays mobile users continuously change their points of
based automatic network reselection software system, which attachment to the networks as they move through wireless
allows keeping end-to-end connections through semi-transparent environments. In heterogeneous wireless network environments
handoff on WiFi/GSM-GPRS networks. this situation presents some problems when talking about
mobility, and for the solution of them, it is important to consider
A description of the developed system’s software architecture is
the issues that this entails, like choosing the best available
given, as well as of the components implemented for it, their
network according to parameters such as efficiency, reliability
functionalities and flow of control, all of which allow the
and cost, as well as to other aspects, such as authentication and
permanent discovery of available networks for the mobile
security.
device, their evaluation, selection and switching to the network
which offers the best ratings in its performance and operational Our proposal aims to solve these problems by developing a
profile, taking into account the preferences previously system that allows mobile devices to perform semitransparent
configured by the user. The system was developed in Java and handover between WiFi/GSM-GPRS networks, in different
C# for different operating systems (WinXP, WinMobile and operating systems while trying to keep optimal conditions of
Linux), and its interoperability has been tested in them. Some of network performance.
the test scenarios are described and final comments about the
The first attempt was the development of a module which
tests results are given.
consisted of a WiFi/GPRS Monitor, which allows the detection
of all available Access Points or GPRS networks in a zone, and
Categories and Subject Descriptors a network switcher, which provides the service for changing the
C.2.1 [Computer-Communication Networks]: Network
Architecture and Design—Wireless communication. point of attachment amongst the discovered networks. The
software system also has an optimizer that applies a policy-
C.2.0 [Computer-Communication Networks]: General— Data based algorithm for automatic re-selection of the most adequate
communications. network, based on pre-configured mobile user preferences.
K.8.1 [Personal Computing]: Application Packages—Data The analysis, architecture and design of the system was based on
communications. the conceptualization presented by Dorfman [1] and Bass [2],
using the UML notation for execution and deployment diagrams
General Terms [3].
Algorithms, Experimentation, Performance An initial phase of research and design was made, based on the
analysis of the advantages and disadvantages of the OSI
Keywords reference model, and its derived implementation technologies.
Network re-selection, vertical handoff, wireless networks, user The rest of the paper is organized as follows. In section 2 some
mobility. related works are presented. The considerations about context
and system architecture are outlined in section 3. Section 4
identifies the main requirements for the system architecture.
Sections 5 and 6 describe the system architecture and some of its
implementation details. Then test scenario and results are
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are presented and analyzed in section 7, which is followed by the
not made or distributed for profit or commercial advantage and that conclusions and future work in sections 8 and 9.
copies bear this notice and the full citation on the first page. To copy
otherwise, or republish, to post on servers or to redistribute to lists, 2. RELATED WORKS
requires prior specific permission and/or a fee. Some of the most known vertical handoff solutions based on
MobiWac’08, October 30-31, 2008, Vancouver, BC, Canada. different layers of the OSI Model are presented in Figure 1.
Copyright 2008 ACM 978-1-60558-055-5/08/10...$5.00.
69
interworking. However, they recommended the second
approach, which consists of two key components: an additional
network element called IOTA (Integration of Two Access
Technologies) access gateway, deployed in the WLAN network,
and a special client software for mobile devices. This kind of
solution has some disadvantages because it is not so flexible and
increases the network complexity as well as the cost for network
service providers.
After reviewing different previous research projects, we decided
to work on the application layer, mainly due to the following
reasons:
• Implementation is more simple and faster because it is
Figure 1. Vertical Handoff Solutions based on the OSI Model not necessary to recompile host kernels nor to install
additional software such as servers or agents.
GAN (Generic Access Network) is a 3GPP technical • Applications on this level are easily adaptable to
specification [5] [6] (commercially named UMA - Unlicensed changes on wireless network standards. It is possible
Mobile Access) which enables the convergence between 3GPP to use them on different scenarios and they can use
and WLAN networks. GAN uses a tightly-coupled or integrated commercial products which operate in lower levels.
architecture, which requires GAN controllers in the network
access. From the point of view of the OSI Model, the GAN
model spans layers 2 to 4 (user plane) and layers 5 to 7 (control 3. Considerations about Context and System
plane).
Architecture
Another recent proposal is MIH [7] (Media-Independent In order to achieve the main objective of the project, which is to
Handover), which is an IEEE standard effort for vertical handoff maintain uninterrupted communication sessions on a mobile
between IEEE 802 and non-IEEE 802 networks. MIH has three device while keeping its connectivity through different types of
components: MIES (Media-Independent Event Service), MICS access and transport networks in a semi-transparent way, two
(Media-Independent Command Service) and MIIS (Media- aspects can be identified: (1) Automatic switching from a
Independent Information Service). These components interact network to another when appropriate conditions are met; and (2)
among themselves by sending alarms related to the mobility over maintain the communication sessions at the application level.
nodes.
The first aspect can be seen, from the applications and
Mobile IP, in two versions, Mobile IPv4 [8] and Mobile IPv6 functional and structural point of view, as the network access
[9], are vertical handoff solutions more widely used. A number and transport independence, whereas the second one can be seen
of network architectures proposals (3GPP and 3GPP2) have as communication session independence. This second aspect
selected Mobile IPv6 as their mobility signaling protocol. was not worked in depth in this project, as it was beyond of its
However, this approach requires significant changes in the scope and, in fact, needs more development time. With the
network architecture, for which service providers are still not above considerations, the problem was divided in two phases,
willing to implement it. each one corresponding to each of the mentioned aspects.
SCTP (Stream Control Transmission Protocol) [10] is an IETF The criteria for the architectural design are based on the
proposed standard protocol for the transport layer. Like TCP, following considerations and decisions:
SCTP is reliable but offers new features such as multi-streaming
and multi-homing. The SCTP with the ADDIP extension is • Network Assisted HO, Mobile Assisted HO or Mobile
called mobile SCTP (mSCTP), and it provides a seamless Controlled HO: we select Mobile Controlled because
handoff for mobile hosts that are roaming between IP networks. we cannot access available commercial networks and
for that reason was not possible to implement network
A recent trend in this field is the IETF proposed Policy-based side elements.
strategies, which has been adopted by IEEE P 1900 group and is
currently in discussion in 3GPP[11]. • Tight Coupling or Loose Coupling: we choose Loose
Coupling, for the lack of access to operator’s
SIP (Session Initiation Protocol) [12] was initially developed by network’s exposed above
IETF as an application layer multimedia signaling protocol, but
• Hard Handoff, Soft Handoff or Softer Handoff: we
it has the potential capabilities for Internet mobility. SIP
choose hard handoff, because the Windows Mobile
theoretically supports mobility using the REINVITE message
device does not have enough computing power to
for maintaining the session active during handoff process.
manage both connections simultaneously. We are not
Some solutions for 3G and WLAN network integration were quite sure if it was a hardware restriction or an
implemented in experimental environments. Buddikot M. et al. operating system limitation.
proposed a solution that introduces two architectural choices for
In the following sections, the identified requirements for the
WLAN/3G networks [13]. The first one is tightly-coupled
system architecture are presented, followed by the description of
interworking and the second one is loosely-coupled
the architecture designed to satisfy them.
70
4. Requirements for the System Architecture codifications and combinations of different lengths for the
The identified primary requirements for the project were defined passphrase.
as follows: • The system must manage the different types of network
• Detect all available networks in all active network authentication systems and their corresponding parameters,
interfaces in the mobile device, with their corresponding associated with the network profiles, for each network the
levels of performance. user has access rights, in such a way that the switching
from a network to another can be executed completely
• Evaluate the detected networks and select the one amongst without user intervention.
them which offers the best performance conditions, based
on their individual levels of performance and scoring them • In a network switching, the final connection will be
according to the user predefined preferences. effective over the target network once all the initialization
processes have been completed, including the
• The network evaluation must consider the stability of the so authentication process.
selected network.
• The system must have an administrative user interface.
• The system could be configured for the user to decide if the
system automatically selects the best available network or if 5. System Architecture and Component
it must ask the user every time to select the network. In the
first case, the system can be configured to make the
Description
The architecture diagram describing the whole system is shown
network discovery every certain time, for example every 10
in Figure 2. This UML deployment diagram shows the static
seconds to every 3 minutes, depending on the user mobility
structure of components and the dynamic relationships between
variation.
them, with the most relevant interfaces for each component.
• The system must register and modify user profiles and In the following sections each component is briefly described.
preferences; the variables are related to the weights of the
network characteristics which are used to evaluate them. 5.1 Hardware/Software interface
Such characteristics are, for example, bandwidth, cost of For all of the interactions between the software system and the
connection per time unit and battery power consumption. hardware resources such as network adapters and drivers,
• Execute the switching between networks, to the selected measurement of physical attributes of available networks,
network, when appropriate conditions are met. network switching, etc., the OperatingSystemAgent component
was designed.
• The system must authenticate with the target network and
support different authentication schemes and their This component groups together all the low-level functionalities,
variations, as for example in the WiFi case: different char providing a common point of interaction with the hardware and
localizing the operating system dependencies, in terms of
71
platform-dependent drivers and libraries function calls, in a network initialization is done, this component should re-route
single component. This is crucial for the maintainability and the traffic flow through the new connection.
portability of the software system. This packet re-routing and session reestablishment was explored
by using the SIP protocol and SIP public domain
5.2 Networks discovery implementations like OpenSER [16] and OpenIMS [17].
This functionality is implemented in the monitor component.
However, the full implementation of SIP mobility is subject of
From the functional point of view, as it is illustrated in the
further work, because the exploratory work allowed us to
architecture deployment diagram, this is perhaps the most
conclude that currently available implementations of SIP and
important component of the system and therefore some details of
related RFCs does not include mobility explicitly, and this
its implementation will be described in more depth in section 6.
implies a considerable additional development work, both in
This component is responsible for the networks detection on all client application and in the server.
network interfaces available in the mobile equipment, and of
gathering the levels of performance of the discovered networks 5.5 Authentication
attributes. Because there is no external identifiable trigger event The authentication functionality was implemented in the
to start the networks discovery process, the monitor was Authenticator component, which is responsible also for the
designed to be implemented as an independent thread that management of user’s authentication data (user profiles) and of
periodically polls for available networks, according to the user network security information (network profiles) and
mobility level. For this, the system has a parameter which can be configuration information.
defined by the user. The switching to the target network requires several steps, and
involves the corresponding network authentication parameters.
5.3 Network Re-selection and decision Once the authentication process is finished, the authenticator
The selection and decision process is implemented throughout
must inform the NetworkSwitch function if validation was
two different components: Optimizer and Selector. The first one
successful or not. It is important to mention that some networks
is responsible for discovered networks evaluation; and for
have an intrinsic authentication process, not dependent of the
comparing them and suggesting the best one among them. The
authenticator component.
second component is responsible for the control of the process
that begins when the monitor notifies it about available networks 5.6 System Administration and other aspects
just discovered, and then it requests the NetworkSwitcher to The system administration was implemented in the CliUAdmin
execute the switch to the network suggested by the Optimizer, if component, which is responsible for the general configuration
the appropriate conditions are met. Some details about the parameters of the whole system, such as user mobility level,
implementation of this functionality will be given in section 6. operating system, and general tasks such as registering and
In order to achieve this task, the Optimizer receives from the modifying user preferences, relative weights for the evaluation
Selector a set of available networks and evaluates them of different networks, amongst others.
considering bandwidth, battery power consumption, monetary Several other system parameters are managed in their
cost and user mobility level. These parameters have relative corresponding components. For instance, the parameter
weights associated to a cost function of relative scale [14][15] MobilityOptimizer belongs to Optimizer and is independent
which are set up by the user trough an administrative GUI. from available networks, while the parameters
Additional elements like dwell-timer and hysteresis [14][15] are Optimizer.paramWb, Optimizer.param.Wc and
used for avoiding situations such as ping-pong effects in Optimizer.paramWp are particular for each configured network.
network connections, meaning that there could be oscillations In such a way, when the user modifies its preferences, the
and instability in the networks. Optimizer must ask for corresponding values for each available
network.
5.4 Network switching and packet re-routing
As it was previously mentioned, the network re-selection This component is also responsible for starting the Monitor and
process can be partitioned by considering two aspects: (1) Authentication components
automatic network switching and (2) session reestablishment in
a semi-transparent way. Put in a simple way, such aspects could 6. Implementation Details
be reflected in network switching and packet re-routing 6.1 Network Discovery
functionalities. But in order to fulfill the second aspect, non In this section, we will describe some implementation details of
trivial problems have to be solved. the monitor component, presenting the different approaches
The network switching functionality was implemented in the considered for its development in the Windows XP platform.
NetworkSwitching component, which receives from the Selector Similar approaches were used for Windows Mobile and Linux
component a request to make a switch to the network that was platforms.
evaluated as the best available one. The NetworkSwitching As was stated previously, this component is responsible for the
component starts the switching process to the new network networks detection on all network interfaces available in the
without affecting the active connections (multihoming). Before mobile equipment, so its functionality is divided in two parts:
the execution of the network switch, the component also makes firstly, the logic of the periodic process of network discovery,
an authentication request (if necessary) to the Authenticator and secondly, the network discovery as such, i.e. its description,
component. Once the authentication is confirmed and the attributes and technical characteristics, this latter depending
72
heavily on the OperatingSystemAgent. For their implementation adapters, and from that device, the user can select one Access
several approaches were considered, as follow. Point, for example, from the ones that are available, to make the
network connection.
6.1.1 Java Sockets and WMI
In this approach, a sockets-based application on the Java The combination of libraries used in this option provided all of
programming language was developed, extending the Tadashi the information and handling required for the functionality
Okoshi’s MobileSocket API [4], handling data and control assigned to this component.
channels of communication and considering four control
channel states: closed, explicitly suspended, implicitly
6.2 Networks Evaluation and Selection
The process of evaluation and selection is achieved by using a
suspended and established. Although this implementation
vertical handoff algorithm (VHA) based on policy [24][27],
allowed continuity in the connection and mobility in the
which utilizes a cost function of relative scale [14][31], as
application level, besides handling consistency aspects, its main
proposed in (1).
problem was its lack of transparency in its use, i.e. the mobility
it implemented only benefited applications developed in Java,
by changing in the source code the java.net.Socket class by the
MobileSocket extended class. (1)
In this approach, it was also considered the use of the The decision to implement this type of cost function is based on
Win32_NetworkAdapterConfiguration [20] parameter of the the qualities that it offers, since it allows to add new parameters
WMI API [21], to obtain information about the available in a very simple way.
network adapters. This forced the consideration of the Windows This is done by evaluating the impact that has the parameter on
platform metrics, which turned the solution not viable, as far as the network performance, and its contribution is controlled by
there is no standard associated with metrics and routing tables in using the logarithm in normal form or evaluated on the inverse
the Windows operating system family, and the API provides of the parameter, having as effect that the values of cost of the
only limited information about networks. networks are determined in agreement to these criteria.
6.1.2 Win32 Drivers and NDIS Protocol The parameters used for the evaluation of the networks
This option considered the direct use of the Windows associated with the cost function are the consumption power,
“Ws2_32.dll” library [22], having a stronger interaction with the connection cost, bandwidth and user mobility (level). The cost
operating system, by using fragments of C# unhandled code, function is added with a parameter related to the degree of user
which made it possible to obtain more information about the mobility, in the following way:
network adapters. • In the case of average or high mobility of the user, the cost
However, this scheme only worked in one direction, allowing to function is:
gather information about network adapters, but not being able to
manage that information and modifying it back in the network
adapters; it was then necessary to work at the device driver level, (2)
which was done through the NDIS [23]protocol driver. The
problem with this implementation was the lack of control over • In the case of low user mobility, the function will be
the packet handling, making it necessary to develop packet executed in its original form, as in (1).
disassembling/reassembling functions, besides intercepting
them.
73
6.2.1 Stabilility of the Handoff Decision • A: represents the evaluation of VHA considering all
In order to avoid unnecessary or erroneous switching in the elements of stability in the algorithm (hysteresis, average
network selection, elements of stability are used, with the value of the cost function, and dwell-timer).
following criteria [14][31]: • B: represents the evaluation performed by the algorithm
• Dwell-Timer: its function is to check that the conditions of considering only the hysteresis and dwell-timer as elements
the candidate network remain stable for enough time; for of stability.
this purpose a lapse of time is defined to wait for checking • C: represents the evaluation performed by the algorithm
if the conditions of the chosen network remain the same. If considering only the elements of stability dwell-timer and
the conditions do not change, the network is selected and average value of the cost function.
the switch to it is done; on the contrary, the current network
is not changed. The lapse of time for checking the stability • D: for this test the algorithms use no stability elements.
of the network is related to the mobility parameter.
• Hysteresis margin: its function is to add a small value to the
cost of the current network that allows it to have a margin
of comparison in its evaluation, when compared with the
evaluation of the other available networks. For this
purpose, the additional value that was added to the cost
function is determined by the quality of the transmission
power of the Access Points (AP).
74
9. FUTURE WORK
For improving the proposed VHA, it could be tested in a
simulated environment (software simulation) that allows
generating more complex testing scenarios, in order to do the
adjustments that are necessary to guarantee the efficiency in the
wireless network re-selection. Also it is necessary to make a
comparison to other vertical handoff algorithms, which can be
done in simulated environments.
Finally, the software system, which was developed as a proof-of-
concept, could evolve into a driver, part of the operating system,
or even burn in firmware, to obtain better response times.
10. ACKNOWLEDGMENTS
We are very thankful to the telecommunications research
consortium I2ComM (www.i2comm.org), for having allowed us
to develop this proposal, within the framework of the project
"Development of a universal system for clients with mobile
Figure 5. Time delay of network re-selection devices allowing portability between networks Wi-Fi/GSM-
GPRS/CDMA2000/Wi-MAX".
There are three main reasons for the time delay of network re- This project was funded in part by “Instituto Colombiano para
selection process on the PDA: the first one is the time response el Desarrollo de la Ciencia y la Tecnologia Colciencias”
of Win Mobile operating system, which presented some (www.colciencias.gov.co), which is a Colombian Institute for
instability when the software system prototype was running; the Supporting Research and Innovation.
second one is the less computing power of the PDA. And the
third one is the time for the authentication process, which takes 11. REFERENCES
more time (twice as much than on the Laptop) when the [1] Dorfman Merlin. “Requirements Engineering” in “Software
software prototype is running on a PDA. The tests carried out Requirements Engineering”, 2nd ed. pp. 7-22. The Institute
using the Laptop and a cell phone as a GPRS modem showed of Electrical and Electronics Engineers, USA, 1997.
that authentication process is executed faster under the cell [2] Bass Len, Clements Paul, Kazman Rick. Software
phone operating system so the time response is better. Architecture in Practice. Addison Wesley, 1998.
The first issue needs more research work and it was not [3] The International Organization for Standardization.
considered in the scope of this project. The other two issues are ISO/IEC 19501:2005 Information technology -- Open
more general, especially the processing power that is a big Distributed Processing -- Unified Modeling Language
challenge to chip manufacturers. (UML) Version 1.4.2. ISO, 2005.
8. CONCLUSIONS [4] Okoshi T, Tobe Y and Tokuda H, “MobileSocket: Library
In this paper we described a handset based automatic network based Continuous Operation Support for Java
re-selection software system, which allows keeping end-to-end Applications,” 1999.
connections over WiFi/GSM-GPRS networks in a semi- [5] 3GPP, “Generic Access to the A/Gb interfaces”, TS 43.318,
transparent way. January 2005.
To achieve this objective, a rationale was chosen and a set of [6] 3GPP, “Generic Access to the A/Gb interfaces. Mobile
requirements were established. Based on this, a system Generic Access Interface Layer 3 Specification”, TS
architecture was designed. Its specification was presented in 44.318, January 2005.
UML’s deployment type of diagram. This specification was
implemented in Java and C#, in the Windows XP, Windows [7] IEEE 802.21/D5.00, “Draft IEEE Standard for Local and
Mobile and GNU/Linux platforms. Metropolitan Area Networks: Media Independent
Handover Services”, April 2007.
The stability elements (dwell- timer and hysteresis margin) used
were an effective way for reducing unnecessary network [8] IETF, “IP Mobility Support for IPv4”, RFC 3344, August
switching due to instability of network behavior. 2002.
As a final comment, it is important to mention that the [9] IETF, “Mobility Support in IPv6”, RFC 3775 , June 2004.
deployment of the system in the mobile devices had some [10] IETF, “Stream Control Transmission Protocol”, RFC 4960,
problems with the development platform and virtual machines, September 2007.
especially the Microsoft’s ones, exposing the high dependency [11] Horrich, Sana; Ben-Jamaa, Sana and Houzé, Paul. Policy
that there still exists in the development of software applications Based RRM for Network Terminal Decision Sharing. In:
for this kind of devices. These dependencies present important IEEE Vehicular Technology Magazine, vol.2 No.3, sep.
issues which must be evaluated, especially because they can 2007, pp.35-40.
cause serious waste of time in the development of a project.
75
[12] Schulzrinne H. et al, “Application-layer mobility using [21] WMI - Windows Management Instrumentation [Online]
SIP”, Service Portability and Virtual Customer URL:http://www.microsoft.com/whdc/system/pnppwr/wmi/
Environments, 2000 IEEE, Page(s): 29 – 36. December default.mspx>
2000. [22] DLL-files.com [Online] URL:< http://www.dll-
[13] Buddikot M., Chandranmenon G., Han A., Lee Y.W., files.com/dllindex/dll-files.shtml?ws2_32 >
Miller S., Salgarelli L., “Integration of 802.11 and Third- [23] NDIS Protocol Driver (NDIS 5.1) [Online] URL: <
Generation Wireless Data Networks”, INFOCOM 2003. http://msdn2.microsoft.com/en-us/library/ms801145.aspx >
Twenty-Second Annual Joint Conference of the IEEE
Computer and Communications Societies, Volume: 1, On [24] [R.Yavatkar, D. Pendarakis and R. Guerin, A, 2000
page(s): 503- 512 vol.1, 2003. Framework for Policy-based Admission Control, RFC
2753.
[14] Nyberg G. “SEMO: A Policy-based Prototype for
Handover in Heterogeneus Networks”, Master Thesis in [25] Wireless Research Api (WRAPI) [Online] URL: <
Computer Science, Umea University (Sweden), 01-2006. http://sysnet.ucsd.edu/pawn/wrapi/ >
[15] Duda Adrian, Cormac J. Sreenan. “Challenges for Quality [26] Java IPHelper API [Online] URL:
of Service in Next Generation Mobile Networks”. <http://media.csee.ltu.se/~johank/iphelper/ >
Department of Computer Science University College Cork [27] Murray Ken, Mathur Rajiv & Pesch Dirk, “Intelligent
(UCC), Ireland. Access and Mobility Management in Heterogeneous
[16] The OpenSER Team. Openser, the Open Source SIP Wireless Networks using Policy”, 2003, P 1-6.
Server. http://www.openser.org/ [28] Srinivasa, Sudhir and JAFAR, Syed Ali. “The Througput
[17] Fraunhofer FOKUS. OpenIMS Playground. Potential of Cognitive Radio: A Theoretical Perspective”.
http://www.fokus.fraunhofer.de/bereichsseiten/testbeds/ims En: IEEE Communications Magazine, Vol. 45, No.5, may
_playground/index.php?lang=en 2007, pp.73-79.
[18] Kristianson J and Parnes P, “Application-layer Mobility [29] NDIS User-Mode I/O Driver [Online] URL: <
support for Streaming Real-time Media,” Lule°a University http://msdn2.microsoft.com/en-us/library/ms892537.aspx >
of Technology, Lule°a, Sweeden, 2004. [30] Robotics4.net – ManagedWiFi [Online] URL: <
[19] Kristianson J, “Simulation Study of SRM”, Master thesis, http://www.robotics4.net/Software/ManagedWiFi.aspx >
Marratech, 2001. [31] H. J. Wang, R. H. Katz, and J. Giese, “Policy-enabled
[20] Win32_NetworkAdapterConfiguration [Online] URL: < Handoffs Across Heterogeneous Wireless Networks”,
http://msdn2.microsoft.com/en-us/library/aa394217.aspx > Proceedings of the Second IEEE Workshop on Mobile
Computer Systems and Applications, 1998, p. 1-10.
76