Design and Implementation of a Mobile Network
Management Tool for Wireless Site Surveying
Kilan Muhammed Hussein
Submitted to the
Institute of Graduate Studies and Research
in partial fulfillment of the requirements for the degree of
Master of Science
in
Computer Engineering
Eastern Mediterranean University
June 2014
Approval of the Institute of Graduate Studies and Research
Prof. Dr. Elvan Yılmaz Director
I certify that this thesis satisfies the requirements as a thesis for the degree of Master of Science in Computer Engineering.
Prof. Dr.Işık Aybay
Chair, Department of Computer Engineering
We certify that we have read this thesis and that in our opinion it is fully adequate in scope and quality as a thesis for the degree of Master of Science in Computer Engineering.
Assoc. Prof. Dr. Doğu Arifler Supervisor
Examining Committee 1. Prof. Dr. Işık Aybay
2. Assoc. Prof. Dr. Doğu Arifler 3. Asst. Prof. Dr. Ahmet Ünveren
iii
ABSTRACT
“Everywhere Wi-Fi” across the campus of Eastern Mediterranean University (EMU) is a very positive and exciting experience for faculty, staff, students, and visitors. Having instant access to web sites, email, the Internet, and other IT services regardless of location can dramatically change the way of study and learning.
The increasing utilization of networks, especially wireless local area networks (WLANs), for different applications and in aspects of modern life, has resulted in a lot of studies towards the analysis and optimal design of WLANs. Deploying a large-scale, campus-wide Wi-Fi system presents many challenges that affect delivery of internet services. These challenges are managing, monitoring, coverage, capacity and density evaluation and security assessment.
In this study, we focus on the managing and monitoring aspects of the WLANs by designing and developing a software framework “EMUWiFiManager” as a mobile network management application on the Android platform. The application stores and displays basic information about the access points by using Simple Network Management Protocol (SNMP) and displays their locations on Google maps.
With the developed application, we conducted a measurement study and collected data for reporting and visualizing the network utilization of a campus wireless network.
iv
ÖZ
Doğu Akdeniz Üniversitesi'nde kampüs genelinde her yerde Wi-Fi bağlantısı olması, personel, öğrenciler ve ziyaretçiler için çok olumlu bir deneyimdir. Her yerde ve anında web sitelerine, e-posta, internet ve diğer bilgi teknoloji hizmetlerine erişim, çalışmanın ve öğrenmenin biçimini dramatik olarak değiştirebilmektedir.
Ağların, özellikle WLANların, artan kullanımı, farklı uygulamalar ve modern yaşamın özellikleri, WLANların analiz ve optimal tasarımına yönelik çalışmaları arttırmıştır. Büyük ölçekli yerleşke genelinde Wi-Fi sistemi dağıtma ve internet hizmetleri sunma birtakım sorunları ortaya çıkarmaktadır. Bu sorunlar arasında, ağ gözlemi, kapsama alanı, kapasite, yoğunluk değerlendirmesi ve güvenlik yönetimi vardır .
Bu çalışmada WLAN erişim noktalarının yönetim ve gözlemlemesi için “EMUWiFiManager” adında Android platformunda bir ağ yönetim yazılımı tasarlanıp geliştirilmiştir. Uygulama, erişim noktalarıyla ilgili temel bilgileri SNMP kullanarak sorgulayıp saklamakta ve coğrafi yerlerini ise Google Maps’ta göstermektedir.
Ayrıca, geliştirilen yazılımla bir ölçüm çalışması yapılmış ve örnek kampüs kablosuz ağ kullanımı raporlanıp ve görselleştirilmiştir.
Anahtar Kelimeler: Wi-Fi erişim noktaları, mobil ağlar, Android işletim sistemi,
v
To My Loving Mother
To My Loving wife
To My Loving brothers and sisters
vi
ACKNOWLEDGMENT
First of all I would like to thank to our most beloved ALLAH, for supporting me in my master study and in this research particularly.
I express my deepest gratitude and respect to my supervisor Assoc. Prof. Dr. Doğu Arifler for his guidance and support throughout my research.
I am also thankful to all my teachers at EMU for their encouragement and to my colleagues who helped me during my studies.
vii
TABLE OF CONTENTS
ABSTRACT ... iii ÖZ ... iv ACKNOWLEDGMENT ... vi LIST OF TABLES ... x LIST OF FIGURES ... xiLIST OF ABBREVIATIONS ... xiv
1 INTRODUCTION ... 1 1.1 Backround ... 2 1.2 Literature Review ... 2 1.3 Objective ... 4 1.4 Thesis Organization ... 5 2 PROJECT TOOLS ... 6 2.1 Introduction ... 6 2.2 Android Platform ... 6
2.3 Android Platform Architecture ... 7
2.4 Android Application Components ... 9
2.5 Android Versions ... 13
2.6 The Development Environment ... 14
2.7 Android SDK ... 15
2.8 Android Emulator ... 16
2.9 Google Play services ... 18
2.10 Eclipse ... 18
viii
2.12 Extensible Markup Language (XML) ... 19
2.13 SQLite Database ... 20
2.14 Wi-Fi APIs ... 20
2.15 Google Maps Android API ... 20
2.16 Google Locations Services API ... 21
2.17 SNMP ... 21
2.17.1 SNMP Manager ... 22
2.17.2 Managed Network Devices ... 23
2.17.3 SNMP Agents ... 23
2.17.4 Management Information Base and Object ID ... 24
2.17.5 SNMP Communication ... 25
2.17.6 Versions of SNMP ... 26
3 SOFTWARE DESIGN AND IMPLEMENTATION ... 28
3.1 Requirements ... 28
3.2 Design Methodology ... 28
3.2.1 System Architecture ... 28
3.2.2 Flow Diagram ... 29
3.2.3 Data Flow diagram ... 30
3.3 Development Overview And Components ... 32
3.4 Class Diagrams and Activities ... 33
3.4.1 Mainmenu Class Activity ... 33
3.4.2 ScanOfAPs Class Activity ... 35
3.4.3 EMUMap Class Activity ... 37
3.4.4 SiteSearching Class Activity ... 40
ix
3.4.6 SnmpSetting Class Activity ... 42
3.5 Comparison and Verification ... 45
3.6 Application Testing Framework ... 46
4 A CASE STUDY WITH EMUWIFIMANAGER ... 49
4.1 Experiment Results ... 51
4.1.1 Network Utilization ... 51
4.1.2 Throughput ... 58
4.1.3 Number of Active Wireless clients ... 65
4.2 Discussion of Results ... 66
5 CONCLUSION ... 68
REFERENCES ... 70
APPENDICES ... 74
Appendix A: MainMenu Class ... 75
Appendix B: ScanOfAps Class ... 75
Appendix C: EmuMap Class... 84
Appendix D: SiteSearching Class ... 87
Appendix E: ListOfApsInSite Class ... 89
Appendix F: SnmpSetting Class ... 95
x
LIST OF TABLES
Table 2.1. Important Activity lifecycle methods [14] ... 10
Table 2.2. SNMP security aspect [24] ... 27
Table 3.1. Accespoints Database Table Structure ... 31
Table 3.2. The Event percentages Monkey Testing ... 48
Table 4.1. ifOutOctets OID every 5 min date:7/4/2014 11:00AM ... 53
Table 4.2. ifOutOctets OID every 5 min date:7/4/2014 3:00PM ... 54
Table 4.3. ifOutOctets OID every 5 min date:8/4/2014 0:00AM ... 55
Table 4.4. ifOutOctets OID every 5 min date:8/4/2014 2:00PM ... 56
Table 4.5. ifOutOctets OID every 5 min date:9/4/2014 10:00AM ... 57
Table 4.6. ifOutOctets OID every 5 min date:9/4/2014 2:00PM ... 58
Table 4.7. ipOutRequests OID every 5 min date:20/6/2014 10:00AM ... 60
Table 4.8. ipOutRequests OID every 5 min date:20/6/2014 2:00PM ... 61
Table 4.9. udpOutDatagrams OID every 5 min date:20/6/2014 10:00AM ... 63
Table 4.10. udpOutDatagrams OID every 5 min date:20/6/2014 2:00PM ... 64
Table 4.11. cDot11ActiveWirelessClients every 5 min date:20/6/2014 10AM ... 66
xi
LIST OF FIGURES
Figure 2.1. Android software environment [12] ... 7
Figure 2.2. Android architecture [13] ... 8
Figure 2.3. Compilation porcess for Dalvik VM applications [13] ... 9
Figure 2.4. Life cycle of Android activity [14] ... 11
Figure 2.5. Lifecycle of an Android service [13] ... 12
Figure 2.6. Android versions distributions April 1, 2014 [16] ... 14
Figure 2.7. Android SDK Manager ... 16
Figure 2.8. Android Emulator ... 17
Figure 2.9.AVD Manager ... 17
Figure 2.10. SNMP manager and agents [25] ... 23
Figure 2.11. MIB Tree Diagram [24] ... 25
Figure 2.12. TCP/IP communication model and SNMP [24] ... 26
Figure 3.1. System Architecture... 29
Figure 3.2. Flow Diagram ... 30
Figure 3.3. Data Flow Diagram ... 31
Figure 3.4. Project Components Structure in Eclipse ... 32
Figure 3.5. AndroidManifest.xml file ... 33
Figure 3.6. Unified Modeling Language (UML) ... 34
Figure 3.7. Mainmenu Activity ... 35
Figure 3.8. Sequence Diagram of ScanOfAPs activity ... 36
Figure 3.9. ScanOfAPs activity ... 36
xii
Figure 3.11. Noraml map ... 38
Figure 3.12. Satellite map ... 38
Figure 3.13. Hybrid map ... 39
Figure 3.14. ListOfApsInSite activity ... 39
Figure 3.15. Sequence Diagram of SiteSearching activity ... 40
Figure 3.16. SiteSearching activity ... 41
Figure 3.17. EmuMap activity ... 41
Figure 3.18. Sequence Diagram of SnmpSetting activity ... 42
Figure 3.19. SnmpSetting activity ... 43
Figure 3.20. Dialog of MIB files ... 43
Figure 3.21. SnmpTreeMake activity ... 44
Figure 3.22. NetworkUtilization activity ... 44
Figure 3.23. Mib Tree on EMUWiFiManager Android Application ... 45
Figure 3.24. Mib Tree on MibBroser Windos 7 Application ... 46
Figure 3.25. Monkey Testing Results ... 48
Figure 4.1. Connect to AP ... 49
Figure 4.2. Setup SNMP ... 50
Figure 4.3. Mib tree ... 50
Figure 4.4. Mib tree (ifEntry) ... 52
Figure 4.5. Network utilization at date 7/4/2014 11:00AM ... 53
Figure 4.6. Network utilization at date 7/4/2014 3:00PM ... 54
Figure 4.7. Network utilization at date 8/4/2014 10:00AM ... 55
Figure 4.8. Network utilization at date 8/4/2014 2:00PM ... 56
Figure 4.9. Network utilization at date 9/4/2014 10:00AM ... 57
xiii
Figure 4.11. Mib tree (IP) ... 59
Figure 4.12. ipOutRequests OID at date 20/6/2014 and time 10:00AM ... 60
Figure 4.13. ipOutRequests OID at date 20/6/2014 and time 2:00AM ... 61
Figure 4.14. Mib tree (udp) ... 62
Figure 4.15. udpOutDatagrams OID at date 20/6/2014 and time 10:00AM ... 63
Figure 4.16. udpOutDatagrams OID at date 20/6/2014 and time 2:00PM ... 64
xiv
LIST OF ABBREVIATIONS
F ABBREVIATIONS
API Application Program Interface
APS Access Points
AVD Android Virtual Machine
CDT C/C++ Development Tooling
GSM Global System for Mobile
GUI Graphical User Interface
IETF Internet Engineering Task Force J2SE Java 2 Standard Edition
JDT Java Development Tools
LIB Library
MIB Management Information Base
NMS Network Management System
OHA Open Handset Alliance
OID Object Identifier
OTA Over The Air
PDT PHP Development Tools
RFC Request for Comments
SDK Software Development Kit
SNMP Simple Network Management Protocol SSID Service set identification
WLAN Wireless Local Area Network
1
Chapter 1
1
INTRODUCTION
Wireless Local Area Networks (WLANs) are the best choice to build networks and with the availability of network solutions, WLANs have grown and this trend is expected to continue in the next years because they are easy to install and allow mobility for users without concerns of being disconnected. The implementations of 802.11n are quickly nearing to the speed of wired networks. Therefore, increased bandwidth has led to the wide adaptation of WLANs in the campus wireless network [1]. In contrast, increasing utilization of networks, especially WLANs, for different applications and in aspects of modern life, has led to more studies and attention towards the analysis and optimal design of WLANs [2].
Distinguishing features of the wireless environment and the distributed nature of the network setup have raised many important challenges in finding the performance limits of different tasks such as communication, control, and computations over WLANs. Also, many design methods concerning the complexity and the robustness of wireless systems should be addressed for a thorough understanding and an efficient operation of wireless networked systems [2]. Moreover, wireless applications of the new technologies have led to a series of new problems of wireless
2
network communications so that monitoring of the wireless network effectively has become significant [3].
This chapter is devoted to the background of project , literature review and lastly, the aim of this work.
1.1 Backround
The advancement of technology has made life easier. The spread of mobile technologies enables us to constantly be in touch with the world. By it, more aspects of our lives are brought together for easy access. For example, a person could be making finishing touches with his presentation for next day, call phone, email, chat, check weather, check portal, book a flight, to mention a few, all in the same place and likely simultaneously [4].
1.2 Literature Review
There are many studies that have been done in the area of network management software. In this section, we briefly mention some of these studies:
C. S. Nimodia and S. S. Asole proposed to provide details about the network state to the administrator of network on email account and android phone, when administrator is away from office or goes out site [5].
Kim, Hyojoon and Feamster, N. focus on three problems in network management: enabling frequent changes to network conditions and state, providing support for network configuration in a high level language, and providing better visibility and control over tasks for performing network diagnosis and troubleshooting. The
3
technologies they describe enable network operators to implement a wide range of network policies in a high-level policy language and easily determine sources of performance problems. In addition to the systems themselves, they describe various prototype deployments in campus and home networks that demonstrate how software defined networking can improve common network management tasks [3].
Yemini, Y. and Konstantinou, A.V. designed a system to replace labor-intensive configuration management with one that is automated and software-intensive. Configuration management is automated by policy scripts that access and manipulate respective network elements via a resource directory server. Resource directory server provides a uniform object-relationship model of network resources and represents consistency in terms of constraints; it supports atomicity and recovery of configuration change transactions, and mechanisms to assure consistency through changes [6].
Enck, W. and Moyer, T. designed a system as a configuration management system that attempts to address failings of current network management systems in a comprehensive and flexible way [7].
Harry Li, developed a system using simple network management protocol (SNMP)
to enhance existing network management systems to
meet wireless network requirements. The proposed new system can provide the following functions: discover mobile devices automatically, establish association among mobile devices and access point, monitor the wireless network performance, control access to wireless network through access point, and notify the changes of wireless network performance [8].
4
Liu, A.X. and Khakpour, A.R. propose a suite of algorithms for quantifying reachability based on network configurations (mainly Access Control Lists (ACLs)) as well as solutions for querying network reachability [9].
1.3 Objective
For universities today, mobility is no longer to make calls only; rather, it is considered an imperative component of their information. Mobile applications provide strong productivity. Such applications also provide more benefits across the rest of the university , such as:
1. Mobile technology has become widely used. 2. Enhanced ability for administer network.
3. Staff, analysts, and others receive information in a much more efficient and timely manner with fewer errors.
4. Top-level management receives information in real time to make better decisions.
The objective of this project was to create a mobile application on Android open source platform to assist network managers in managing their wireless networks. The application stores and display basic information about the access points and display their locations on Google maps.
SNMP protocol which provides a means to analyze the network device logs and provide statistics regarding from the access points (APs ) point-of-view. However, this data is either aggregated or instantaneous information that is dependent upon the SNMP polling interval.
5
The application is used to conduct a measurement study and collected data is used for reporting and visualizing the congestion profile of the campus wireless network.
The advantage of this project is the use of the information of access points to monitor the wireless networks and show distribution and development wireless access points in the Eastern Mediterranean University (EMU).
1.4 Thesis Organization
Chapter 1 presents a literature review, defines the objective and describes the thesis organization. Chapter 2 describes the project tools, Android platform, Android application components, the development environment and the SNMP. Chapter 3 presents the design and implementation, system architecture, flow diagram and class diagram of the management system. Chapter 4 presents a case study with EMUWiFiManager and Chapter 5 concludes the thesis.
6
Chapter 2
2
PROJECT TOOLS
2.1 Introduction
Smart phones are used as a primary platform for information access. A very large community of people use their smart phones as one of their main communication access tools. Users are increasingly carrying their mobile devices with them almost everywhere. Mobile devices fit perfectly into an ideal environment for realizing ubiquitous computing. A main aspect of ubiquitous computing is context-aware applications where the applications collect information about the environment that the user is in and use this information to achieve their goals or improve performance [10].
This chapter describes the main project tools to create Android applications.
2.2 Android Platform
The Google Android software development kit (SDK) was released by The Open Handset Alliance in November 2007. The aim of the Android operating system is bringing more developers in mobile applications. Android is a collection of layers of programs for Android devices, containing a software system, libraries and applications. The SDK contains tools and APIs to build applications on the Android systems by using the Java programming language. Android OS is an open source platform, with adaptable development and debugging environment, which also
7
supports a diversity of scalable user experience, which has graphics systems, multimedia support and a browser. Android enables reprocess of components and an database and reuse wireless communication tools. Android uses a Dalvik virtual machine (DVM) for Android mobile devices. On the other hand, it also supports Video, Camera, GPS, 3D applications, compass, APIs for location and map means. Developers can simply access, manage and process the free Google maps and execute on his mobile systems [11].
2.3 Android Platform Architecture
Android operating system is a stack of software components which is divided into five sections and four main layers as shown below in Figure 2.1 and Figure 2.2 [12].
8
Figure 2.2. Android architecture [13]
Below, we simply describe these layers in more details.
Applications: The first top level layer in the framework, including as example a browser, an SMS application, a calendar, a Google map application, and contacts application. All software is Programmed using the Java language.
Application Framework: Programmers have full access to the same APIs in the application framework layer that are used by the core applications. The application architecture is designed by reusing of components. This mechanism allows every component to be replaced by the programmers. Android Application is a set of systems and services, containing a set of Activities Views to build an application, containing buttons, text views, lists, spinners, editTexts, grids, browser and even a map view which can be put into the application within some lines of code.
9
Libraries: Various components of the Android system use different types of libraries (as in Figure 2.2 above). These libraries are exposed to developers through the Android application.
Android Runtime: These layer containing the Dalvik Virtual Machine. Dalvik runs "dex" files, which are coverted at compile time from standard class and jar files. as shown in Figure 2.3 [13].
Linux Kernel:Android using Linux 2.6 as OS services such as process management, memory management, security, network stack, and driver model and it is a layer between the applications and all the hardware..
Figure 2.3. Compilation porcess for Dalvik VM applications [13]
2.4 Android Application Components
Application components are the essential building blocks of an Android application. These components are loosely coupled by the application manifest file Andro- idManifest.xml that describes each component of the application and how they interact. There are following four main components
10
that can be used within an Android application [13].
Activities: An activity is a screen with a user interface. For example, an email software might have one activity that views a list of sending emails, another activity to send an email, and another activity for showing emails. If an application has more than one activity, then one of them should be marked as the activity that is viewed when the application is launched [13].
The Android system defines a lifecycle for activities via predefined methods. The most important methods are shown in Table 2.1 [14].
Table 2.1. Important Activity lifecycle methods [14]
Method Purpose
onCreate() Called and startup initializations when an activity is created. onResume() Called when activity visible again.
onPause() Called when activity gets into the foreground.. Used to release resources or save application data.
onStop() Called when the activity is not visible to the user.
The life cycle of an activity with its most important methods is displayed in the Figure 2.4. Android has more life cycle methods but not all of these methods are guaranteed to be called. In short , Activity is a user interface that can be seen, mainly for the processing of the application as a whole works [14].
11
Figure 2.4. Life cycle of Android activity [14]
Services: A service is a component that runs in the background to perform long running operations
without direct interaction with the user. For example, a service might run application in the background while the user is in a different application, or it might send or receive data over the network.
A service has lifecycle callback methods that it can implement to monitor changes in the service's state and it can perform work at the appropriate stage. The following diagram (Figure 2.5) on the left shows the lifecycle when the service is created with startService() and on the right shows the lifecycle when the service is created with bindService() [13].
12
Figure 2.5. Lifecycle of an Android service [13]
Broadcast Receivers: Broadcast Receivers simply respond to broadcast messages from other applications or from the system itself. For example, system will send broadcast receiver when new SMS arrives or booting is done, so this is broadcast receiver who will intercept this communication and will initiate appropriate action.
Content Providers:A content provider component allows applications to access data on request. It is typically used to share data with other application. The data may be stored in the file system, the database or somewhere else entirely [13].
Additional Components: There are other components which will be used in the construction of above components. These components are [13]:
13
Fragments:Represents a behavior of user interface that can be placed in an Activity.
Views:UI elements that are drawn on screen including forms, lists buttons etc.
Layouts:View hierarchies that control or arranging the UI format and appearance in an activity.
Intents: Asynchronous messages which allow application components to request functionality from other components.
Resources:External elements, such as user interface strings, colors and bitmaps .
Manifest:Represents configuration file for the Android application.
2.5 Android Versions
The version history of the Android mobile OS began with the release of the Android beta in November 2007. The primary version, Android 1.0, was released in September 2008. Android is in progress development by Google and the Open Handset Alliance (OHA), and has seen a variety of updates to its base OS since its initial version [15].
Since April 2009, Android versions have been developed under a confectionery-themed code name and released consistent with alphabetical order: Cupcake (1.5), Donut (1.6), Eclair (2.0–2.1), Froyo (2.2–2.2.3), Gingerbread (2.3–2.3.7), Honeycomb (3.0–3.2.6), Ice Cream Sandwich (4.0–4.0.4), Jelly Bean (4.1–4.3), and KitKat (4.4). On 3 September 2013, Google announced that one billion activated
14
devices now use the Android OS worldwide. The most recent major Android update was KitKat 4.4, which was released to commercial devices on 22 November 2013, via an over the air (OTA) update as show in Figure 2.6 [16].
Figure 2.6. Android versions distributions April 1, 2014 [17]
2.6 The Development Environment
Android SDK makes use of Java programming language, similar to Java Standard Edition (J2SE), called Java Android Library. This is an advantage to programmers familiar with programming languages originating from the programming language family C. The syntax is the same as Java in terms of operands, selections, iterations, file handling. The specific Android classes and packages use different names that are not similar to Java editions, such as the View Class and the Activity Class. To develop an Android application, programmers need to make sure that the development environment has a Java version 5 or above. Java is OS independent, developer could choose developing environment OS freely [16].
15
2.7 Android SDK
An Android application can be developed using an Android SDK and a compatible software development environment. The Android SDK provides developers with the necessary set of tools and libraries needed to create, test and debug applications on the Android platform [17]. It is available for download on the Android official website (http://developer.android.com/sdk/index.html?hl=sk).
Although the SDK can be used to write Android programs in the command prompt, the most common method is by using an integrated development environment (IDE). The recommended IDE is Eclipse with the Android Development Tools (ADT) plug-in [17].
The Android SDK Manager shows the SDK packages that are available, installed, or which available for update as shown in Figure 2.7 [17].
16
Figure 2.7. Android SDK Manager
2.8 Android Emulator
Android emulator provided by the Android SDK, is a virtual mobile device that runs on the computer and enables the user to test and debug applications without a physical device as shown in Figure 2.8. The features of the emulator is defined and can be edited by the programmer using the Android Virtual Device (AVD) Manager as show in Figure 2.9 , which is a graphical UI used to configure and manage AVDs.
17
Figure 2.8. Android Emulator
18
2.9 Google Play services
Google offers the Google Play service, a marketplace in which programmers can offer their Android applications to Android customers. Customers use the Google Play application which allows them to buy applications from the Google Play service [17].
Google Play services also provides an update service. If a programmer uploads a new version of his application to Google Play, this service notifies users that an update is available and allows them to install the update [17].
Google Play provides access to libraries for Android application programmers. For example, it provides a library to use and display Google Maps and another to synchronize the application state between different Android installations. These services have the advantage that they are available for older Android versions and can be updated by Google without the need for an update of the Android version on the smart phone [17].
2.10 Eclipse
In computer programming, Eclipse is an integrated development environment (IDE). It contains a base workspace and an extensible plug-in system for customizing the environment. Written mostly in Java, Eclipse can be used to develop applications. By means of various plug-ins, Eclipse may also be used to develop applications in other programming languages C, Ada , C++, Fortran, COBOL, Haskell, JavaScript , Perl, Lasso, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Scheme, Groovy, and Erlang. It can also be used to develop packages for the software Mathematica. Development environments include
19
the Eclipse CDT for C/C++, the Eclipse Java development tools (JDT) for Java and Scala, and Eclipse PDT for PHP, among others. The initial codebase was released by IBM . The Eclipse SDK, which includes the Java development tools, is meant for Java programmers. Users can extend its abilities by installing plug-in development toolkits written for the Eclipse Platform and can write and contribute their own plug-in modules [18].
2.11 Java
Java is a class-based computer programming language. It is general-purpose, structured and generic. Android applications are written in the Java Programming language. An Android application is highly based on Java fundamentals. Java incorporates with several powerful features and libraries of many powerful programming languages like C, C++. The reasons for picking Java as a basic programming language for Android application are [19]:
1. It is easy to learn 2. It is independent of OS
3. It is an object oriented programming language
4. Java line code is compiled and run by Virtual Machine
2.12 Extensible Markup Language (XML)
XML is a markup language. It contains some of the very simple, scalable, and flexible text format that is both machine-readable and human-readable. It Defines documents with a standard format that can be read by any XML-compatible application. XML is a commonly used data format on the Internet. XML is easy to compile and manipulate programmatically. Android resources preprocess the XML
20
into the compressed binary format and stores it on the device. Most of the UI layout, screen contents are declared in XML files [20].
2.13 SQLite Database
SQLite is an in-process library that implements a serverless, self-contained, transactional database engine and zero-configuration. It is free to use for any purpose. It is compact and lightweight hence it is easily deployable to any system. It is supported by the many Linux and Windows operating systems and can be ported easily to other systems. The data types supported are TEXT (to hold string values), INTEGER (to hold integer values) and REAL (to hold precision floating-point values). Android provides the SQLite database to allow for data storage in an application. An application in the Android system may have a private database and this can only be accessed and managed within the application code [21].
2.14 Wi-Fi APIs
The Wi-Fi APIs provide classes by which applications can communicate with the hardware wireless stack that provides Wi-Fi network access. Almost all information from the device is available, including the negotiation state, link speed, IP address and more, plus information about other networks that are available. Some other API means include the ability to initiate Wi-Fi, scan, save, add and terminate connections [22].
2.15 Google Maps Android API
Google Maps is a Web-based service that provides information about sites around the world and geographical regions. Besides conventional road maps, Google Maps provides satellite views and aerial of many places.
21
The Google Maps APIs make it possible for Web site administrators to put Google Maps into a custom site such as a community service page.
Google Maps for Mobile provides a location service that utilizes the Global Positioning System (GPS) location of the mobile device along with data from cellular networks and wireless LANs [23].
2.16 Google Locations Services API
Most Android devices allow to determine the current GPS. This can be done via a GPS module, via cell tower triangulation or via wireless LANs [23].
The Google Location Services API, part of Google Play Services, offers a powerful tools, high-level framework such as location provider choice and power management. Location Services also offers new tools such as activity detection that aren't available in the framework API. Programmers who are using the framework API, as well as programmers who are just now adding location-awareness to their applications, should firmly consider using the Location Services API [23].
2.17 SNMP
Simple Network Management Protocol (SNMP) is used in network management systems to monitor network devices for cases that require administrate. SNMP gives management data in the form of variables on the managed systems. These variables may then be queried or set by managing applications. SNMP itself does not define which variables are reachable. Alternatively, SNMP uses an extensible design, where the available information is defined by Management Information Bases (MIBs) that are often owned by individual vendors. MIBs describe the structure of the
22
management data of a device subsystem in a hierarchical namespace containing Object Identifiers (OID). Each OID identifies a variable that can be read or set via SNMP [24].
SNMP was introduced in 1988 to meet the growing need for a standard for managing Internet Protocol (IP) devices. The main core of SNMP is a simple set of operations that provides the ability to query and set the state of some devices to network administrators. Although SNMP is capable of managing a wide variety of network devices such as printers, personal computers, servers, power supplies, etc., it is typically associated with routers and other network devices. Just as with other protocols, SNMP is defined by The Internet Engineering Task Force (IETF) using Request for Comments (RFC) specifications. Currently [24], SNMP is composed of:
1. SNMP Manager 2. SNMP agent.
3. Managed network devices and 4. Database of MIB.
2.17.1 SNMP Manager
SNMP manager or management interacts with SNMP agents that are active in the network devicess. It is a computer to run one or more SNMP manager. The main functions of SNMP Manager are to:
1. Query agents
2. Get requested values from agents 3. Change values of variables in the agents
23
2.17.2 Managed Network Devices
A managed network devices as shown in Figure 2.10 such as routers, switches, access points, servers, workstations, printers requires some form of monitoring and management [25].
Figure 2.10. SNMP manager and agents [25]
2.17.3 SNMP Agents
SNMP agent is a software installed in the network device. It collects the information from the device and give it to the SNMP manager. These agents can be general such as Net-SNMP or vendor specific such as HP insight [25]. The main functions of SNMP agent are:
1. Collects data for its local environment
2. Retrieves and stores data as defined in the MIB. 3. Sends an occurrence to the manager.
SNMP agent perpetuates a management data describing the managed system parameters. It exposes an information database in the form of variables on the
24
managed systems, which describe the system configuration on the agent. These variables can then be queried (and sometimes set) by managing applications [25].
2.17.4 Management Information Base and Object ID
SNMP uses an extensible design, where the available information is defined by management information bases (MIBs). MIBs describe the structure of the management data of a device subsystem; they use a hierarchical namespace containing object identifiers (OID). Each OID is unique and identifies a variable that can be read or set via SNMP [25].
MIBs is divided into two types:
Scalar: defines a single object instance, the result can be only one.
Tabular: objects define multiple related object instances grouped in MIB tables..
Absolute OIDs specify a path to an attribute from the root of the OID tree. Absolute OID names always begin with a dot and must specify every node of the OID tree from the top-most node to the specific managed object. For example, "sysDescr" is .1.3.6.1.2.1.1.1 as shown in Figure 2.11 [25].
25
Figure 2.11. MIB Tree Diagram [24]
2.17.5 SNMP Communication
Figure 2.12 shows the TCP/IP protocol suite, which is the basis for all TCP/IP communication. Any device that wishes to communicate on the Internet (e.g., Windows systems, Unix servers, Cisco routers, etc.) must use this protocol suite. This model is often referred to as a protocol stack since each layer uses the
26
information from the layer directly below it and provides a service to the layer directly above it [24].
Figure 2.12. TCP/IP communication model and SNMP [24]
2.17.6 Versions of SNMP
SNMP has gone through important updates. Nonetheless SNMP v1 and v2c are the most implemented versions of SNMP. SNMP v3 has recently started and it is more secure [24].
27
SNMP version 1:the first version of the protocol, easy to set up – only requires a plaintext community.
SNMP version 2c:This is the update protocol, which includes improvements of SNMP version 1 in the protocol packet types, transport mappings and MIB structure elements.
SNMP version3:The evolution of SNMP version 3 was based on the security issues. SNMPv3 facilitates remote configuration of the SNMP entities.
Nonetheless each version had developed towards rich functionalities;the security aspect on each update was given as additional emphasis. Table 2.2 shows security aspect for each editions [24].
Table 2.2. SNMP security aspect [24]
SNMP Version Security Aspect
v1 Community security
v2c Community security
v2u User security
v2 Party security
28
Chapter 3
3
SOFTWARE DESIGN AND IMPLEMENTATION
This chapter presents the design of the mobile application whose purpose is to meet the objective defined in Chapter 1.
3.1 Requirements
The aim of this project was to create a mobile application to assist network managers for reporting and visualizing the congestion profile of their campus wireless network. So the main requirements are:
1.Storing the information of APs for selected site on mobile. 2.Putting the locations of these APs on Google Maps.
3. Using SNMP to analyze the network device logs.
3.2 Design Methodology
3.2.1 System Architecture
The system architecture has been illustrated in Figure 3.1. An Android device (not necessarily a smartphone, it could be a tablet) with the EMUWiFiManager application already installed communicates with the SNMP of AP that uses a special SNMP API .
29
Figure 3.1. System Architecture
On the other hand, the application uses all available techniques (satellite, cell towers, Wi-Fi) to inquire about the current location and displays it on Google Maps.
3.2.2 Flow Diagram
A flow diagram showing how users can run this project is shown in Figure 3.2 below.
30
Figure 3.2. Flow Diagram
3.2.3 Data Flow diagram
The data flow diagram, is a simple graphical design that shows the flow of information that can be used in the system in terms of the inputs data and the outputs.
The figure below (Figure 3.3) shows the data flow diagram for user module. The data flow starts with adding new site by scanning for available APs to that site and
Select the Wi-Fi APs Start
Stop
Touch the icon of application EMUWiFiManager
Select the GPS and write site name
Show APs on Google Maps
Touch icon wireless on Google map to view APs information for that site
31
retrieving location point, site name, select APs and then adding all these information to SQLite database. User can list sites and delete any AP from site and view this AP on Google Maps and view SNMP tree. Finally, user can exit from application.
Figure 3.3. Data Flow Diagram
By using the SQLite class, we created a database "myDB1" and table "Accesspoints" in this database to store information about APs. The structure of this table is shown in the Table 3.1.
Table 3.1. Accespoints Database Table Structure
Field Type Key
apid INTEGER PRIMARY
Ssid VARCHAR Mac VARCHAR Wep VARCHAR Lat VARCHAR Lng VARCHAR Dep VARCHAR Dept VARCHAR Apdate VARCHAR Snr VARCHAR IP VARCHAR
32
3.3 Development Overview And Components
The mobile application was developed in the Eclipse environment using the Android software development kit. This project (EMUWiFiManager) uses google-play-services_lib which contain all API-related library for Google maps.
The allclassess.emuwifimanager package contains all the interface-related classes. Figure 3.4 below shows the structure of the project in the Eclipse software.
33
The application is configured to a minimum API level of 8 and declares permissions to use the maps, Wi-Fi, internet, storage, location and network functionalities of the Android system. Figure 3.5 below shows the configuration of the AndroidManifest.xml file.
Figure 3.5. AndroidManifest.xml file
3.4 Class Diagrams and Activities
In this part , we will briefly describe the class diagrams overview and its activities in the software implementation in Eclipse and execution on Android. The class and its relationships described by Unified Modeling Language (UML) as shown in Figure 3.6.
3.4.1 Mainmenu Class Activity
Figure 3.7 shows us the GUI activity which provides main options to user to interact with project, and the code of class is included in appendix A.
34
35
Figure 3.7. Mainmenu Activity
3.4.2 ScanOfAPs Class Activity
ScanOfAPs activity is designed to scan and view all APs in the range. Also this activity can enable Wi-Fi on Android device if it is disabled.
As shown in sequence diagram (Figure 3.8), a user starts the scanning process by touching the Wi-Fi button which initiates the ScanOfAPs class.
Finally, the user must enter the site name and select the APs related to this site and then touch on Add APs button to store this AP in the SQLite database of Android device as shown in Figure 3.9 and the code of class is included in Appendix B.
36
Figure 3.8. Sequence Diagram of ScanOfAPs activity
37
3.4.3 EMUMap Class Activity
This activity is designed to view icons of wireless tower markers on Google Maps for the sites selected ot EMU. As shown in sequences diagram (Figure 3.10) we can change the map into three types : normal , hybrid and satellite as shown in Figures 3.11 , 3.12 and 3.13 respectively below. By touching this icon, the ListOfApsInSite activity well display the list of APs in that site as shown in Figure 3.14 and the code of class is included in Appendix C.
38
Figure 3.11. Noraml map
39
Figure 3.13. Hybrid map
40
3.4.4 SiteSearching Class Activity
The SiteSearching activity adds search functionality to the application which can filter the list sites names with a matching string, hence it provides user an easy way to find the information he needs as shown in sequence (Figure 3.15).The SiteSearching activity (Figure 3.16) and the code of class is included in Appendix D.
3.4.5 ListOfApsInSite Class Activity
As we show in Figure 3.14, the ListOfApsInSite activity can return us to EmuMap activity to show the site map with some zooming by clicking on (view on map) button as shown in Figure 3.17.
On the other hand, the ListOfApsInSite activity can going us to SnmpSetting activity by touching the IP address in front of AP and the code of class is included in Appendix E.
41
Figure 3.16. SiteSearching activity
42
3.4.6 SnmpSetting Class Activity
SnmpSetting activity is designed to setting up SNMP protocol .The user (as shown in sequence diagram Figure 3.18) must enter the parameters (mib file name,ip,port, version,community and time out) as shown in Figure 3.19.By touching on MIB file default name, the dialog (Figure 3.20) is shown and we can select another MIB file and the code of class is included in Appendix F.
Figure 3.18. Sequence Diagram of SnmpSetting activity
Furthermore, the SnmpSetting activity can call SnmpTreeMake activity to build tree of MIB file by clicking on (MIB tree) button as shown in Figure 3.21.
Also, the SnmpSetting activity can call NetworkUtilization activity to calculate output utilization of wireless interface of the access point as shown in Figure 3.22.
43
Figure 3.19. SnmpSetting activity
44
Figure 3. 21. SnmpTreeMake activity
45
3.5 Comparison and Verification
We conducted an experiment to verify the implemented project and run EMUWiFiManager on Android device version 4.1.2 with MibBrowser desktop application on Windows 7. We chose the CMPE Library and connected to AP type Cisco AP C1240 with SSID CMPE LIBRARY WIFI. We obtained similar results in two applications as shown in Figure 3.23 and Figure 3.24.
46
Figure 3.24. Mib Tree on MibBroser Windos 7 Application
3.6 Application Testing Framework
The Android application testing framework, an integral part of the development environment, gives an architecture and powerful tools that test every aspect of application.
Automated testing of Android application is important because of the large variety of available devices. As it is not practical to test Android application on all possible device configurations, it is common practice to run Android test on typical device configurations.
Having a practical test coverage for Android application helps us to enhance and maintain the Android application.
47
The user interface application tester Monkey [26], usually called "monkey", is a program that runs on emulator or device and generatesis pseudo-random streams as a command-line tool of keystrokes, touches, and gestures to a device. It returns a report back with errors and is run by Debug Bridge (adb) tool.
The following monkey testing sends 500 random events to the application with the allclasess.emuwifimanager package as shown in Figure 3.25.The final testing report is included in Appendix G.
adb shell monkey -p allclasess.emuwifimanager -v 500
where
adb – tool used to send command from a desktop or laptop computer to emulator or Android device.
shell - translates commands to OS commands. monkey - testing tool.
-p -as allowed-package-name.
v - stands for increment the verbosity level.
500- random number of event to be sent for testing application.
48
Figure 3.25. Monkey Testing Results
Table 3.2. The Event percentages Monkey Testing
Event code Event name Percentage%
0 touch 15 1 motion 10 2 Trackball 2 3 Sys keys 15 4 navigation 0 5 Major nav 25 6 App switch 15 7 flip 2 8 Any event 2 9 Any event 1 10 Any event 13
49
Chapter 4
4
A CASE STUDY WITH EMUWIFIMANAGER
We conducted an experiment to test the performance of the implemented project and run EMUWiFiManager on Android device version 4.1.2. We chose one of the EMU library’s AP type Cisco AP 1200 with ssid EMU Guest (Figure 4.1) and setup SNMP with parameters as shown in Figure 4.2 and then MIB tree in Figure 4.3.
50
Figure 4.2. Setup SNMP
51
4.1 Experiment Results
Our experiments focused on how to calculate network utilization and throughput by using Simple Network Management Protocol (SNMP).
4.1.1 Network Utilization
Network utilization is the amount of traffic on the network compared to the peak amount that the network can support. This is generally specified as a percentage. By using MIB tree and then ifEntry (wireless interface table of AP) and then read values of ifSpeed (bandwidth Mbps) and ifOutOctets (output bytes) as shown in Figure 4.4.
ifSpeed is the maximum speed of wireless interface in that AP (54Mbps).
ifOutOctets are counts of the number of bytes output by the interface.
Utilization is calculated by the formula:
Network utilization % = (data bits * 100) / (bandwidth Mbps * interval in sec)
and then:
Output utilization= ( ) ( )
where
∆ifOutOctets is the difference between two reading of the ifOutOctets object, which represents outbound octets of network traffic.
52
Figure 4.4. Mib tree (ifEntry)
Here, we measured by reading from ifOutOctets (interface wireless output) OID every 5 min .
The first measurement was on 7/4/2014 from 11:00 AM to 11:40 AM and is given in Table 4.1 and presented in Figure 4.5.The measurement from 3:00 PM to 3:40 PM is given in Table 4.2 and presented in Figure 4.6.
The second measurement was on 8/4/2014 from 10:00 AM to 10:40 AM and is given in Table 4.3 and presented in Figure 4.7. The measurement from 2:00 PM to 2:40 PM is given in Table 4.4 and presented in Figure 4.8.
53
The third measurement was on 9/4/2014 from 10:00 AM to 10:40 AM and is given in Table 4.5 and presented in Figure 4.9.The measurement from 2:00 PM to 2:40 PM is given in Table 4.6 and presented in Figure 4.10.
The measurement outcomes show that the network utilization of this AP ( Cisco AP 1200 with ssid EMU Guest ) is low becuse not all students are using this AP in EMU library.
Table 4.1. ifOutOctets OID every 5 min date:7/4/2014 11:00AM
Date 7/4/2014
time
11:00 AMfirst reading (Bytes) next reading (Bytes) time Output utilization%
374632114 555732231 11:00 8.943215654
657338837 879348821 11:10 10.963456
997900877 1188500654 11:20 9.412334667
1188500654 1291788200 11:30 5.100619556
1350100321 1467991089 11:40 5.821766321
Figure 4.5. Network utilization at date 7/4/2014 11:00AM 0 2 4 6 8 10 12 11:00 11:10 11:20 11:30 11:40 Ne tw o rk U tiliza tio n % Time
54
Table 4.2. ifOutOctets OID every 5 min date:7/4/2014 3:00PM
Date 7/4/2014
time
3:00 PMfirst reading (Bytes) next reading (Bytes) time Output utilization%
4280076999 4380099925 3:00 4.939403753
4390099122 4498765430 3:10 5.366237432
4607314111 4707431749 3:20 4.944080889
4807463155 4899500999 3:30 4.545078716
4999555405 5087908321 3:40 4.363106963
Figure 4.6. Network utilization at date 7/4/2014 3:00PM
0 1 2 3 4 5 6 03:00 03:10 03:20 03:30 03:40 Netw o rk Utilizatio n % Time
55
Table 4.3. ifOutOctets OID every 5 min date:8/4/2014 0:00AM
Date 8/4/2014
time
10:00 AMfirst reading (Bytes) next reading (Bytes) time Output utilization%
7270481898 7399481221 10:00 6.370336938
7528480544 7650870534 10:10 6.043950123
7788290567 7911300435 10:20 6.074561383
8043690425 8190300666 10:30 7.240011901
8400780786 8577911899 10:40 8.747215457
Figure 4.7. Network utilization at date 8/4/2014 10:00AM 0 1 2 3 4 5 6 7 8 9 10:00 10:10 10:20 10:30 10:40 Netw o rk Utilizatio n % Time
56
Table 4.4. ifOutOctets OID every 5 min date:8/4/2014 2:00PM
date 8/4/2014
time
2:00 PMfirst reading (Bytes) next reading (Bytes) time Output utilization%
11225711699 11366644345 2:00 6.95963684
11607576991 11740511000 2:10 6.56464242
11893445009 11991006753 2:20 4.817863901
12088568497 12110787191 2:30 1.097219457
12133005885 12156321117 2:40 1.151369481
Figure 4.8. Network utilization at date 8/4/2014 2:00PM 0 1 2 3 4 5 6 7 02:00 02:10 02:20 02:30 02:40 Ne tw o rk Util iza tio n % Time
57
Table 4.5. ifOutOctets OID every 5 min date:9/4/2014 10:00AM
Date 9/4/2014
time
10:00 AMfirst reading (Bytes) next reading (Bytes) time Output utilization%
189150558 311240988 10:00 6.029157037
433355418 571455399 10:10 6.819752148
709599380 859423001 10:20 7.398697333
1009456785 1210588632 10:30 9.932436889
1500720479 1699427917 10:40 9.812712988
Figure 4.9. Network utilization at date 9/4/2014 10:00AM 0 2 4 6 8 10 10:00 10:10 10:20 10:30 10:40 Netw o rk Utilizatio n % Time
58
Table 4.6. ifOutOctets OID every 5 min date:9/4/2014 2:00PM
date 9/4/2014
time
2:00 PMfirst reading (Bytes) next reading (Bytes) time Output utilization%
4530832077 4644391102 2:00 5.607853086
4757950127 4855876372 2:10 4.835863951
4953802617 5067711300 2:20 5.625120148
5181719983 5290726010 2:30 5.383013679
5400732037 5511901088 2:40 5.489829679
Figure 4.10. Output network utilization at date 9/4/2014 and time 2:00PM
4.1.2 Throughput
Network throughput is the rate of successful message delivery over a communication channel. The throughput is usually measured in bits per time unit, and sometimes in data packets per time unit or data packets per time slot.
From the MIB, we read values of ipOutRequests OID (packets count) (Figure 4.11). 4,4 4,6 4,8 5 5,2 5,4 5,6 5,8 02:00 02:10 02:20 02:30 02:40 Netw o rk Utilizatio n % Time
59
Figure 4.11. Mib tree (IP)
The measurements were taken on 20/6/2014 from 10:00 AM to 10:40 AM and are given in Table 4.7 and presented in Figure 4.12.The measurements from 2:00 PM to 2:40 PM are given in Table 4.8 and presented in Figure 4.13.
60
Table 4.7. ipOutRequests OID every 5 min date:20/6/2014 10:00AM
Date 20/6/2014 IP
time
10:00 AMpackets packets time IP throughput (packets/min)
308478 309586 10:00 277
309952 310990 10:10 259
311792 312712 10:20 230
312942 313992 10:30 262
314400 315358 10:40 239
Figure 4.12. ipOutRequests OID at date 20/6/2014 and time 10:00AM 0 50 100 150 200 250 300 10:00 10:10 10:20 10:30 10:40 IP o utp ut thr o ug h tp ut (p ac k e ts/min ) Time
61
Table 4.8. ipOutRequests OID every 5 min date:20/6/2014 2:00PM
date 20/6/2014
time
2:00 PMpackets packets time
IP throughput (packets/min) 308478 309586 2:00 221 309952 310990 2:10 207 311792 312712 2:20 184 312942 313792 2:30 170 314400 315358 2:40 191
Figure 4.13 ipOutRequests OID at date 20/6/2014 and time 2:00AM 0 50 100 150 200 250 02:00 02:10 02:20 02:30 02:40 IP o utp ut thr o ug h tp ut (pac ke ts /min) Time
62
By using MIB, we read the values of udpOutDatagrams OID (datagram count) (Figure 4.14).
Figure 4.14. Mib tree (udp)
The measurements were taken on 20/6/2014 from 10:00 AM to 10:40 AM and are given in Table 4.9 and presented in Figure 4.15. The measurements from 2:00 PM to 2:40 PM are given in Table 4.10 and presented in Figure 4.16.
63
Table 4.9. udpOutDatagrams OID every 5 min date:20/6/2014 10:00AM
Figure 4.15. udpOutDatagrams OID at date 20/6/2014 and time 10:00AM
0 50 100 150 200 10:00 10:10 10:20 10:30 10:40 U D P o u tpu t thro u ght pu t(d at ag ram /min) Time
64
Table 4.10. udpOutDatagrams OID every 5 min date:20/6/2014 2:00PM
Date 20/6/2014
time
2:00 PMdatagrams datagrams time
UDP Output throughput (datagrams/min) 200184 200831 2:00 129 232378 233109 2:10 146 311686 312114 2:20 85 187646 188081 2:30 87 235698 236209 2:40 102
Figure 4.16. udpOutDatagrams OID at date 20/6/2014 and time 2:00PM 0 20 40 60 80 100 120 140 160 02:00 02:10 02:20 02:30 02:40 U D P o utp ut thr o ug h tp ut( d ata g ra m/m in ) Time
65
4.1.3 Number of Active Wireless clients
By using MIB tree and then cDot11ActiveDevicesEntry, we read values of cDot11ActiveWirelessClients OID (devices count) (Figure 4.17).
Figure 4.17. Mib tree (cDot11ActiveDevicesEntry)
The measurements were taken on 20/6/2014 from 10:00 AM to 10:40 AM and are given in Table 4.11. The measurement from 2:00 PM to 2:40 PM is given in Table 4.12.
66
Table 4.11. cDot11ActiveWirelessClients every 5 min date:20/6/2014 10:00AM
Date 20/6/2014
time
10:00 AMActive Devices (beginning of interval) Active Devices(end of interval) time
12 10 10:00
6 8 10:10
8 8 10:20
10 9 10:30
10 10 10:40
Table 4.12. cDot11ActiveWirelessClients every 5 min date:20/6/2014 2:00PM
date 20/6/2014
time
2:00 PMActive Devices(beginning of interval) Active Devices(end of interval) time
6 5 2:00 6 5 2:10 7 6 2:20 9 9 2:30 8 8 2:40
4.2 Discussion of Results
Prior to the installation of any wireless devices, administrators can review the usage requirements for the area in question to determine the optimum number of wireless access points needed to efficiently support all users in the area simultaneously. The EMUWiFiManager application used to site survey EMU library area revealed useful data for planning of WiFi access points and requirements, if any, for expansion.
Utilization measurements conducted on different times on different days showed us that the access point under consideration was not heavily utilized: The utilization varied between 1% and 11%. These results may imply that the number of access points installed in the library for the number of users is currently sufficient.
67
To verify the utilization measurements, the number of IP packets sent out by the device was also recorded and it was found that the number of packets per minute was indeed low. Furthermore, roughly half or more of these packets were UDP packets. Most of these UDP packets may be associated with DNS queries. To have a more accurate picture of composition of traffic, more sophisticated network monitoring tools may be necessary.
The number of wireless clients attached to the access point varied between 5 and 12. This may indicate that the number of people using WiFi in the library is not that high. To have a more accurate picture, permission to monitor all access points must be obtained and, if possible, users may be surveyed to find out what kind of Internet connection they prefer when they connect to the Internet (WiFi or 3G).
68
Chapter 5
5
CONCLUSION
A main aspect of ubiquitous computing is context-aware applications where the applications collect information about the environment that the user is in and use this information to achieve their goals or improve performance.
The solution presented in this project is useful enough to assist network managers in managing their wireless networks. However, it may appear cumbersome for many network managers to store information about their wireless networks manually into the application.
At the time of writing, there was no standard mobile application to visualize and manage all Wi-Fi access points at EMU that gives the network managers the information of both the locations of the Wi-Fi access points, as well as its congestion profiles. The viable improvement would be get all information and locations of Wi-Fi access points by entering a few of parameters and touching on screens of Android mobile application (EMUWiFiManager).
The most important tools in the construction of this project is to show the access points on Google Maps and then get access point information using the SNMP protocol. Hence, we used many of API libraries that can runs on Android mobile system.
69
To illustrate the benefit of the use of this project, we conducted a number of measurements for network utilization and throughput near the EMU library. Wireless access service can be provided on the basis of anticipated utilization data gathered during initial site surveys conducted by administrators. As the number of users increases, site surveys can be repeated to have an up-to-date information about the network.
For further work, we recommend more focus on SNMP protocol to manage all devices of the network. In addition, further work is needed not only retrieve data but to change parameters for these devices according to its environment.
This application code can be improved in three aspects:
1. Improving the efficiency of threading 2. Optimizing device battery life
3. Minimizing memory use in the UI
It is also desible to port the application to other mobile platforms such as iOS and Windows Phone. Doing so will provide access to this application to a wider range of users.
Finally, possibility of adding extra features to this application should be investigated. In particular, signal strength measurement facility can be integrated to the application.