09_Lim Poh Meng Nicholas

advertisement
SIM UNIVERSITY
SCHOOL OF SCIENCE AND TECHNOLOGY
ROAMING TRAFFIC (DATA) MONITORING
SYSTEM IN THE GSM NETWORK
STUDENT
: LIM POH MENG, NICHOLAS (N0605681)
SUPERVISOR
: MR. NAVA SELVARATNAM
A project report submitted to SIM University
in partial fulfilment of the requirements for the degree of
Bachelor of Engineering (or Bachelor of 2009)
Nov 2009
ABSTRACT
The mobile system has been a major success for the global telecommunication industry in
providing seamless roaming service to mobile subscribers all over the world. At this point
of time, the mobile market is almost at its saturation and therefore it is important for
mobile operators to provide the best network quality to sustain customer loyalty.
The purpose of my project is to design a roaming data system using a software
application called Wireshark. It has the capability to analyse and monitor the roaming
traffic of global system for mobile communication subscribers and solve problems that
occur at early stages.
I have installed Wireshark into my laptop to be used as a simulator. Upon collecting and
categorising the data into different groups, I will be presenting the data in graphical forms
for better comparison on the kind of data that is being transmitted and received.
Through this project, I have gained valuable experience and have learned to appreciate
the way mobile system functions. It has also allowed me to have a better understanding of
what telecommunication is about.
ACKNOWLEDGEMENTS
First and foremost, I will like to express my sincere gratitude to my supervisor Mr. Nava
Selvaratnam, for making this project a fulfilling experience. His invaluable guidance,
advice and encouragement during this crucial period have definitely contributed to the
success of this project. His careful analysis of my initial and final reports, together with
his detailed and perceptive comments, has also play an integral part in completing this
report.
I would also like to thank my wife, Angeline, and my family members for their
understanding on what I have been going through during my past 3 years of studies in
UNISIM. Without their love, affection, motivation and support, the completion of project
would not have been possible.
Finally, I would like to thank my colleagues at iFocus Pte Ltd for supporting me in terms
of covering my duties at work during this critical phase of my educational roadmap.
The experience and knowledge I have gained from this project is invaluable and
enriching, and I would like to dedicate this project to all the above people who this
possible.
LIST OF ABBREVIATIONS
Symbols
Definition
ACK
Acknowledgement
ANSI
American National Standards Institute
BS
Base Station
CCBS
Call to Busy Subscribers
DCP
Destination Point Code
FTP
File Transfer Protocol
GSM
Global System of Mobile Communications
GT
Global Title
GTT
Global Title Translation
GUI
Graphical User Interface
HTTP
Hypertext Transfer Protocol
IN
Intelligence Network
ISP
Internet Service Provider
LCP
Local Number Portability
MAC
Media Access Control
MTP
Message Transfer Part
NSAP
Network Service Access Point
NSP
Network Service Part
OPC
Originating Point Code
OSI
Open System Interconnection
PCS
Personal Communication Services
POP3
Post Office Protocol Version 3
PSTN
Public Switch Telephone Network
RAT
Remote Admin Trojan
RST
Reset
SCCP
Signalling Connection Control Part
SCMG
SCCP Management
Symbols
Definition
SCRC
SCCP Routing Control
SLS
Signalling Link Selection
SMS
Short Messaging System
SMTP
Simple Mail Transfer Program
SMMP
Simple Network Management Protocol
SSN
Subsystem Number
SSP
Service Switching Point
STP
System Time Protocol
SYN
Synchronize
TAP
Test Access Points
TCAP
Transfer Capabilities Application Part
TC
Transaction Capacity
TCP
Transmission Control Protocol
TTL
Time To Live
UDP
User Datagram Protocol
5
TABLE OF CONTENTS
ABSTRACT ...................................................................................................................................................2
ACKNOWLEDGEMENTS ..........................................................................................................................3
LIST OF ABBREVIATIONS .......................................................................................................................4
1
INTRODUCTION ...........................................................................................................................8
1.1
SIGNALLING CONNECTION CONTROL PART ...................................................................................... 8
1.2
GLOBAL SYSTEM FOR MOBILE COMMUNICATIONS (GSM) ............................................................... 9
1.3
OBJECTIVE .......................................................................................................................................11
1.4
SCOPE ..............................................................................................................................................11
2
LITERATURE REVIEW AND PREVIOUS WORK ................................................................ 12
2.1
THE BEGINNING OF GLOBAL SYSTEM FOR MOBILE COMMUNICATION ............................................12
2.1.1
First Generation ................................................................................................................13
2.1.2
Second Generation ............................................................................................................13
2.1.3
Interim Generation ............................................................................................................13
2.1.4
Third Generation ...............................................................................................................13
2.2
SCOPE OF THE GLOBAL SYSTEM FOR MOBILE COMMUNICATIONS STANDARD ................................14
2.3
SIGNALLING CONNECTION CONTROL PART ROUTING AND CONGESTION CONTROL ........................17
2.3.1
Signalling Connection Control Part Routing ....................................................................17
2.3.2
Congestion Control in the Connection-Oriented Class .....................................................18
2.4
RELATED JOURNALS ........................................................................................................................19
2.4.1
J1: Performance Evaluation of GSM handover Traffic in a GPRS/GSM Network ..........19
2.4.2
J2: Analysis of Congestion Control for SCCP Traffic and the Impact on Intelligent
Network Service...................................................................................................................................20
2.4.3
J3: Congestion and Flow Control in Signalling System No. 7-Impacts of Intelligent
Networks and New Services ................................................................................................................20
2.4.4
J4: Dynamic Traffic Grooming in Optical Networks with Wavelength Conversion ........21
2.4.5
J5: IDAMN: an Intrusion Detection Architecture for Mobile Networks ..........................21
2.4.6
J6: Routing and Congestion Control in Common Channel Signalling System No. 7 .......22
3
OVERVIEW OF THE PROJECT............................................................................................... 24
3.1
PROJECT MANAGEMENT ..................................................................................................................24
3.2
GANTT CHART..................................................................................................................................25
3.3
DETAILS OF GANTT CHART ..............................................................................................................26
3.3.1
Getting Started ..................................................................................................................26
3.3.2
Review on Project Flow ....................................................................................................26
6
3.3.3
Development of Software .................................................................................................26
3.3.4
Evaluation and Begin of Thesis Writing ...........................................................................27
3.3.5
Oral and Poster Presentation .............................................................................................27
4
METHODOLOGY ........................................................................................................................ 28
4.1
DESIGN STRATEGY ..........................................................................................................................28
4.2
SOFTWARE COMPARISONS ...............................................................................................................29
4.3
TECHNOLOGY BEING USED ..............................................................................................................30
5
EXPERIMENTAL PROCEDURE .............................................................................................. 32
5.1
CAPTURE OF DATA ..........................................................................................................................32
5.2
ANALYSE OF DATA ..........................................................................................................................34
5.2.1
Packet List Pane ................................................................................................................35
5.2.2
Packet Details Pane ...........................................................................................................35
5.2.3
Packet Byte Pane ..............................................................................................................35
5.3
6
FLOW CHART ...................................................................................................................................36
RESULTS AND DISCUSSIONS .................................................................................................37
6.1
DATA COLLECTED ...........................................................................................................................37
6.1.1
6.2
7
Graphs ...............................................................................................................................38
TEST RESULTS .................................................................................................................................38
LIMITATION AND CONCLUSION .......................................................................................... 41
7.1
LIMITATION .....................................................................................................................................41
7.2
RISK ASSESSMENT ...........................................................................................................................41
7.3
FUTURE DISCUSSION ........................................................................................................................41
7.4
CONCLUSION....................................................................................................................................42
8
CRITICAL REFLECTIONS .......................................................................................................43
9
REFERENCES .............................................................................................................................. 44
9.1
APPENDIXES.....................................................................................................................................45
9.1.1
9.2
Test Results Data from Wireshark ....................................................................................45
SOURCE CODE..................................................................................................................................47
9.2.1
Capture Data .....................................................................................................................47
9.2.2
Start Capture .....................................................................................................................51
9.2.3
Filter Data .........................................................................................................................53
9.2.4
Read Data ..........................................................................................................................54
7
1
INTRODUCTION
1.1 Signalling Connection Control Part
Signalling Connection Control Part (SCCP) is a routing protocol in the SS7 protocol suite in
layer 3. It gives an end to end routing for TCAP messages to the correct database. It is also a
network layer that provides extended routing, flow control, segmentation, connection orientation
and error correction facilities in the Signalling System 7 telecommunication networks.
SCCP allows an STP to perform global title translation (GTT), a procedure whereby the
destination signalling point and subsystem number (SSN) is determined with digits. Global title,
which is in the signalling message, is pertinent to the service requested. The diagram below
shows where SCCP is located in the SS7/C7 protocol suite:
Figure 1a: SS7/C7 Protocol Suite
SCCP provides better capabilities then MTP:
1.
It enhances MTP to meet OSI layer 3.
2.
It is a powerful and flexible routing mechanism.
3.
It enhances transfer capabilities when message is too large to fit into one message signal
unit (MSU).
SCCP also provides connectionless and connection oriented network service above MTP level 3.
SCCP relies on the service of MTP for basic routing and error detection. MTP level 3 provide
point codes to allow messages to be addressed to a particular signalling point. SCCP on the other
hand, gives subsystems at these signalling points. SCCP is also used as the transport layer for the
transfer capabilities application part (TCAP) based services such as the free phone (800/888),
calling card, local number portability (LCP), wireless roaming, personal communication services
(PCS) and complete of calls to busy subscribers (CCBS) in intelligent networks and mobility,
roaming and SMS in cellular systems.
SCCP is widely used in major cellular networks like the Base Station Subsystem Mobile
Application Part (BSSMAP) and Direct Transfer Applicationice Part (DTAP). They are used to
transfer radio related message in Global System for Mobile communication (GSM). In
combination with TCAP, SCCP is used throughout the GSM Network Switching Subsystem
(NSS) to transport Mobile Application Part (MAP) signalling between the core GSM
components to allow subscriber mobility and text messaging (SMS), among other items.
1.2 Global System for Mobile Communications (GSM)
Originally from Groupe Speciale Mobile, GSM is the most popular standard for mobile phones
in the world. Its promoter, the GSM Association, predicts that 80% of the global mobile market
uses the standard. GSM is used by over 3 billion people across more than 212 countries and
territories. Its ubiquity makes international roaming very common between mobile phone
operators, enabling subscribers to use the phones in many parts of the world. GSM differs from
its predecessors in that both signalling and speech channels are digital. It is considered a second
generation mobile phone system. This also meant that data communication was easy to build into
the system.
The ubiquity of the GSM standards has been an advantage to both consumers and network
operators. GSM is also a low cost alternative to video calls and the short messaging system
(SMS), which is now supported on other mobiles standards as well. Another advantage is that the
standard includes one worldwide emergency telephone number, 112. This makes it easier for
9
international travellers to connect to emergency services without having to know the local
emergency number.
A GSM system consists of a fixed installation infrastructure and the mobile subscribers. The
fixed installation GSM network can be subdivided into 3 subsystems. They are:
1.
Base Station Subsystem (BSS)
2.
Network
3.
Switching Subsystem (NSS)
4.
Operation and Support subsystem (OSS)
To provide service to the mobile subscribers, a network operator has to install a complete and
separate network that is able to interface with the Public Switched Telephone Network (PSTN).
The diagram below shows the layout of the GSM network:
Figure 1b: Structure of the GSM network
10
The network seen by the computer is huge and complicated. In order to provide all the services
that are needed, the network is divided into a number of sections:
1. The base station subsystem (the base stations and the controllers).
2. The network and switching subsystem (the part of the network that is almost similar to a
fixed network. It is also known as core network.)
3. The GPRS core network (the optional part that allows packet based internet connections).
4. All of the elements in the system combine to produce many GSM services such as voice
calls and Short Message System (SMS).
1.3 Objective
The objective of my project is to design a roaming data system that is able to analyse and
monitor the roaming traffic of the GSM (Global System for Mobile Communication) subscribers.
1.4 Scope
Specifically, the scope of this project includes the following:
1. To perform literature study into the Layer 3 of the SCCP (Signalling Connection Control
Part) messages of the GSM (Global System for Mobile Communication) roaming
subscribers.
2. To develop software for the system that is able to extract the desire data from the raw
SCCP messages from GSM network.
3. To analyse the extracted SCCP data and categorise them into specific groups.
4. To modify and optimise the monitoring system.
11
2
LITERATURE REVIEW AND PREVIOUS WORK
2.1 The Beginning of Global System for Mobile Communication
In the year of 1887 and 1888, Hertz found out that invisible waves were originated from electric
spark. It was able to transport information through the air. This phenomenon was then further
researched and developed until it was possible to transmit and receive signals over a distance of
several kilometres. Mr. Guglielmo Marconi performed an out of this world demonstration of this
several years later. This experiment was served as a basic of cellular radio and many other
transmission systems.
In the year 1920, radio broadcasting was slowly introduced. Soon after which, Amplitude
Modulation (AM) and Frequency Modulation (FM) transmission came in 1929. During that year,
early FM receivers had good quality reception but unfortunately, the application was limited by
the transmitter size and large amount of power consumed. Even the cellular concept such as the
spread spectrum technique, digital modulation, trunking techniques and other modern radio
technologies were made known, mobile telephone services did not appear to be user friendly
until the early 1960s.
The convenience of these early mobile services was severely limited and their capacity was
extremely limited compared to today’s standards. At last, analog cellular mobile phone systems
with full FM duplex and trunked access appeared in the 1980s. By the end of 1980, it was clear
that the analog cellular system would not be able to meet the continuing demand into the next
century. The solution was to time multiplex the traffic and signalling functions be realised with
digital techniques.
These practical considerations together with political pressure in Europe created the Groupe
Speciale Mobile (GSM) system in the late 1980s. The GSM system included specific features
such as the international roaming and wide variety of auxiliary services. The first official
commercial GSM service was launched in Europe in 1992. On the global scale, the GSM
standard received a very fast recognition. By the end of 1993, several commercials GSM
networks commenced operation outside Europe.
12
2.1.1 First Generation
The Frequency Division Multiple Access (FDMA) technique was used in first generation
systems. These systems used analog modulation techniques as FM modulation. An example of a
first generation cellular system is Advance Mobile Telephone System (AMPS). First generation
systems suffered from limitations such as low service quality, long call setup time, inefficient use
of bandwidth, susceptibility to interface bulky and expensive equipments and only support for
speech.
2.1.2 Second Generation
GSM falls in the category of second generation cellular systems. Second generation cellular
systems apply better digital modulation and advanced call procedure techniques. Code Division
Multiple Access (CDMA) also falls in that category of second generation systems. These
systems provide better service quality than those of the first generation cellular systems and use
bandwidth more efficiently. Second generation cellular systems support data, speech and
facsimile service. In addition, the second generation systems use encryption mechanism to
protect data and speech and use advanced mobility management and support power control.
2.1.3 Interim Generation
As technology improved, it has become very costly for the service providers to replace the whole
infrastructure. Therefore, incremental improvements to existing networks provided an interim
step with significant benefit to users. GPRS provided a data delivery mechanism on the GSM
network with bigger bandwidth. Enhanced data rate for Global Evolution (EDGE) was the
enhancement provided by GPRS with even higher data rates.
2.1.4 Third Generation
The third generation achieves very high data rates for transmission of data and speech. The third
generation system is to integrate all types of services such as speech, data, audio and video
through the mobile handsets. The users of third generation systems are billed according to the
utilization of the channel rather than time in use. Thus, a third generation system provides faster
service than lower billing rates. The collective name of third generation technologies throughout
13
the world is Universal Telecommunication System (UTMS). The figure below shows the
different stages of Wireless technology:
Figure 2a: Different Stages of Wireless Technology
2.2 Scope of the Global System for Mobile Communications Standard
The first generation of analog cellular systems was designed for basic voice service. Data
services for fax or circuit switch data transmission using a voice band modem were classified as
‘overlay’ services that run on top of the voice service. The second generation GSM cellular
system was designed to be an integrated wireless voice data service network that offered several
other services beyond just voice telephone service.
The first type is Teleservices. It provides standard voice communication and the additional
communications between two end users applications according to standard protocol.
The second type is Bearer Services. It provides the user with the ability to transmit data between
user network interfaces.
14
The additional type is Supplementary Services. They are services that enhance or support a teleservice provided by the network.
The planning of GSM system development and deployment called for the implementation of
system services to be carried out in 2 phases. In the first phase, the GSM services offered were
shown in the table: Phase 1 GSM Service. In the second phase of GSM implementation, the
service offerings would be expanded to include those shown in the table: Phase 2 GSM Service.
Types of Services
Service Provided
Additional Details
GSM Teleservices
Telephone
Full rate at 13 kbps voice
Emergency Calls
“112” is GSM wide emergency
Short Message Systems
number
Videotext Access
Point to point (between two
Tele-tax
users) and cell broadcast types
Fax
GSM Bearer Services
Asynchronous Data
300 - 9600 bps (transparent/non
Synchronous Data
transparent)
Synchronous Packet Data
2400 – 9600 bps (transparent)
Others
Supplementary Services
Call Forwarding
All calls when the subscriber is
Call Barring
not available
Outgoing call with
specifications
Figure 2b: Phase 1 GSM Services
15
Types of Services
Service Provided
Additional Details
GSM Teleservices
Half-Rate Speech Coder
Optional implementation
Enhanced Full Rate
Supplementary Services
Calling Line Identification
Presentation or restriction
Connected Line Identification
of displaying the caller’s
Call Waiting
ID
Call Hold
Presentation or restriction
Multiparty Communication
of displaying the caller ID
Closed User Loop
incoming
Advice of Change
current conversation
Operator Call Barring
Put current call on hold to
call
during
answer another call
Up to five outgoing calls
can be included in one
conversation
Restriction
of
certain
features from individual
subscribers by operator
Figure 2c: Phase 2 GSM Services
16
2.3 Signalling Connection Control Part Routing and Congestion Control
The SCCP enhances the functionality of the MTP by providing connection oriented services. An
example is the logical signalling connection. It gives additional features in the wireless control,
routing and management. The SCCP is used as a transfer of circuit related and non-circuit related
information. The SCCP, together with the MTP, provide the layer 3 of the OSI system’s
functionality. The SCCP provides the following services: basic connectionless class sequenced
(MTP) connectionless class, basic connection-oriented class and flow control connection
oriented class. Theses services are referred as class 0 to 3. A notable application of the SCCP
function is implementing the STP gateway which interconnects two signalling networks. [1]
An important routing function, in both the connectionless and connection-oriented services of
SCCP is GT routing, which includes a translation mapping on the SCCP address parameter from
a GT. An example is a point code and a SSN. The SSN is a sub address which identifies a SCCP
user function. This function is in the OSI model.
2.3.1 Signalling Connection Control Part Routing
The routing function of the SCCP is performed by the SCRC (SCCP Routing Control) for
messages received from the MTP. The SCCP is either using the MTP routing (i.e. is the DPC)
plus a SSN (i.e. the SCCP user address), or a GT routing. The previous is used in direct routing
but will require translation subsequently.
Global address routing is used when the original node does not have the network address of the
destination point. Thus, the function is needed in a vase amount of applications to date (for
instance 800 services). Let us take a look at one example of a GT routing - the signalling
message comprises of a DPC and a GT is routed to an STP. At the STP, the GT address is
translated into a DPC and a SSN. This DPC is used for network routing and the SSN is
identifying the service database at that signalling point. Another option is that the translation of a
GT results in a new GT that is routed to another STP for further translation.
17
There are 4 types of GT routing designated by the GT indicator that are different from one
another based on numbering and encoding schemes. The SCCP global routing is table driven,
using its own table for translating the GT into a DPC and SSN. The translation may be
performed either in a centralised or distributed fashion.
SCMG provides route and traffic management when failures occur. An important capacity of
SCMG is the rerouting of packets to a backup SP when the primary destination of logical address
has failed. This is useful in accessing the SCP for IN service by routing the messages to an
application backup SP when the primary application is unavailable. There is an overhead linking
with processing the GT routing, in the form of additional delay introduced in delivering the
packet to its destination.
2.3.2 Congestion Control in the Connection-Oriented Class
The class 3 of the SCCP protocol has flow control. To perform flow control, a window is
negotiated during the connection establishment that is not changed during the data transfer phase.
The size of the window is shown by a credit field in the SCCP connection establishment
primitives. During the call establishment, the SCCP user proposes a certain value for the quality
of service parameter set as part of the primitives. The window size at the beginning, intermediate
or terminating nodes may be altered by the SCCP to match the quality of service for the
signalling connection.
18
2.4 Related Journals
I have done some research on related journals which are of some assistance to this project.
2.4.1 J1: Performance Evaluation of GSM handover Traffic in a GPRS/GSM
Network
Their intention is to evaluate the performance degradation of GSM handover traffic due to the
introduction of GPRS in a GPRS/GSM network when various priority schemes for handover
traffic over new call traffic are applied. This case study is simulated by using an event driven
simulator. This event simulator has been implemented using simulation library develop in C++.
The GPRS/GSM is simulated in 2 scenarios: a basic microcell scenario and an overlaid
microcell/macro cell scenario. Different handover priority based channel allocation is to enhance
the handover performance. [2]
What I have gained after reading it: The GPRS/GSM can be simulated into 2 scenarios: basic
microcell and overlaid microcell/macro cell. Both can be implemented using an event simulator
using simulation library develop in C++.
19
2.4.2 J2: Analysis of Congestion Control for SCCP Traffic and the Impact on
Intelligent Network Service
It investigates the impact on CCS link overload and SCCP overload control for links supporting
Intelligence Network (IN) service, one of the major users of the SCCP signalling layer. It also
examines a number of network congestion network scenarios involving IN services and the
impact of CCS overload for those links supporting a mixture of IN traffic and PSTN (ISUP)
traffic. [3]
What I have gained after reading it: More knowledge on what is an intelligence network (IN).
The service it provides for the SCCP signalling layer.
2.4.3 J3: Congestion and Flow Control in Signalling System No. 7-Impacts of
Intelligent Networks and New Services
Analyses of the congestion and flow control mechanisms in CCITT Signalling System No7. We
show that signalling traffic characteristics like signalling scenarios or signalling message length
as well as end-to-end signalling capabilities have a significant influence on the congestion and
flow control and, therefore, on the real-time signalling performance. If the intelligent services are
introduced, the SS7 congestion and flow control does not work correctly. To solve this problem,
some reinvestigations into these mechanisms would be necessary. Usage of the SCCP relay
function, or a redesign of the MTP flow control procedures are discussed in order to guarantee
the efficacy of the congestion and flow control mechanisms also in the future. [4]
What I have gained after reading it: When intelligence services are introduced, the congestion
and flow control of the SS7 will not work properly. Therefore, usage of SCCP relay function or
change in the MTP flow control procedure may solve the problem.
20
2.4.4 J4: Dynamic Traffic Grooming in Optical Networks with Wavelength
Conversion
Traffic grooming in WDM (wavelength division multiplexing) optical networks refer to routing
and aggregating low rate client onto wavelength granularity light paths. Dynamic traffic
grooming is when the client randomly arrives/departs. The paper focus on the dynamic traffic
grooming when the optical network has sparse wavelength conversion, also aims to look into
impact of wavelength conversion and converter placement on dynamic traffic grooming. [5]
What I have gained after reading it: I have learnt about dynamic traffic grooming in optical
networks with wavelength conversion, with particular interest in the impact of wavelength
conversion on dynamic traffic grooming.
2.4.5 J5: IDAMN: an Intrusion Detection Architecture for Mobile Networks
IDAMN is a distributed system whose main functionality is to track and detect mobile intruders
in real-time. IDAMN includes two algorithms which model the behaviours of users in terms of
both telephony activity and migration pattern. The main novelty of our architecture is its ability
to perform intrusion detection in the visited location and within the duration of a typical call as
opposed to existing designs that require the reporting of all call data to the home location in
order to perform the actual detection. The algorithms and the components of IDAMN have been
designed in order to minimise the overhead incurred in the fixed part of the cellular network.
What I have gained after reading it: IDAMN is a distributed intrusion detection system for
cellular networks. IDAMN is able to have a complete overview on the mobile user telephony
activity and mobility behaviour. The main novelty of our architecture is its ability to transfer a
small user profile near the location of the serving MSC as opposed to existing systems which
require the reporting of large amount of audit data to a central monitoring entity. [6]
21
2.4.6 J6: Routing and Congestion Control in Common Channel Signalling System
No. 7
Signalling networks based on the Common Channel Signalling System No. 7 (SS7) protocol
provide a specialised packet switching network for transporting call control messages of
telecommunications networks. Two major differences distinguish these specialised packet
networks from classical packet switched networks: high performance for large volume of offered
traffic and high degree of reliability. The journal look into major and in most cases unique
traffic and route handling and management aspects of this protocol based on the International
Telegraph and Telephone Consultative Committee (CCITT), but highlighting the differences in
ANSI (American National Standards Institute that specifies the domestic version of the standard
for North America), to the extent possible. [7]
What I have gained after reading it: Look at the two important functions of routing and
congestion in signalling networks based on SS7. The procedures recommended to perform these
functions have taken into account the required reliability and performance of the signalling
networks.
J7: A Multiple Representation Entity-Based Approach to Hybrid Traffic
Simulation Model
Traffic simulation is a widely used tool to analyse dynamic traffic system. In traffic simulation
field, microscopic simulation offers detailed representation of traffic system, but it is difficult to
model large traffic network; Macroscopic and mesoscopic simulations can capture the dynamics
of large network, but only on a low level of details. These limitations of mono-resolution traffic
simulation emerge more clearly, as the development of its application. Multi-resolution traffic
simulation, which uses hybrid traffic simulation model, can overcome those limitations by
integrating traffic simulation models on different levels into a hybrid model, which combines
advantages of all composing models. [8]
22
What I have gained after reading it: Introduced UNIFY framework into traffic simulation and
developed UNITRANS, a Multiple Representation Entity-based (MRE-based) framework, to
integrate traffic simulation models on different resolution levels and maintain the consistency
among their jointly executing. A hybrid model was built using UNITRANS and a three-legged
intersection was modelled with it. The results showed that UNITRANS was feasible and
effective.
How can I implement into my project: UNIFY framework supplies an effective and flexible
approach to building HTSM and MRTSS. In our concise case study, UNITRANS works well.
Furthermore, there are still problems which are not fully considered in this paper, such as the
Dynamic Traffic Assignment or route choice.
23
3
OVERVIEW OF THE PROJECT
3.1 Project Management
Good project management plays a significant role in the completion of this project. This involves
proper planning and effective time management. Hence I have created a Gantt chart to help me
plan and keep track of my progress for the entire year. These are the 5 main stages of my project:
.
Stage 1: Getting Started
Stage 2: Review on Project Flow
Stage 3: Development of Software
Stage 4: Evaluation and Begin of Theses Writing
Stage 5: Oral and Poster Presentation
This is to ensure that the project works is done in a systematic and structured way as to ensure
project is developed smoothly. I have also set goals within my personal timetable to prevent any
clashes in my work and study time.
24
3.2 Gantt chart
The table below shows my Gantt chart:
25
3.3 Details of Gantt chart
3.3.1 Getting Started
This section is the first stage of my project, it is important to have a clear understanding of the
project background, the scope of my project, set objectives and goals, derive my design
strategies and lay out procedures to perform my testing.
3.3.2 Review on Project Flow
This section is the second stage of my project. The project preliminary task was to perform
research, gathered relevant research materials, deliberated with my supervisor and source for the
suitable type of program/ software to ensure that I am on the right track. Hence, the second stage
was research on the following items:
1. The Background of the GSM network
2. The Generation of the GSM network
3. The SCCP Routing and Congestion Control
4. Related Journals
3.3.3 Development of Software
This is the third stage of my project. I have to understand the concept of the open system
interconnection model whereby the module looks at the fundamentals of data communications,
inclusive of OSI layer modelling, the principles of operation of high speed broad band networks
and the rudiments of data network design. I had to apply the basic fundamental on wireless
communication technology that I had learnt during my polytechnic days. In addition to that, I
have to grasp on more depths about GSM network, introduce the general concepts of wireless
communication systems design and applications, and include Maxwell's equations and related
applications in wireless transmissions - radio propagation in different wireless mediums and
in/around buildings and performance/design issues related to wireless systems and media of
propagation.
26
3.3.4 Evaluation and Begin of Thesis Writing
This is the fourth stage of my project. After developing the software, I started consolidating all
the literature review, project management details, testing results and conclusions into my thesis.
Comments from my supervisor on the project, the solution implemented and whether it is
successful according to its intended design and layout objectives.
3.3.5 Oral and Poster Presentation
This is the final stage of my project where I summarise the entire project I will be presenting to
the public and examiner to demonstrate my understanding of the project.
27
4
METHODOLOGY
In this chapter, I will discuss on what is my design strategy. I have provided a brief comparison
among some of the software that I have researched from the internet and telecommunication
magazines. After careful consideration, I have selected the ideal software for my project.
4.1 Design Strategy
I have used a software application called Wireshark [9] for packet sniffers. It is appropriate
because looking at my project title: Roaming Traffic (Data) Monitoring System in the GSM
Network, it is almost impossible to come out with a hardware prototype.
Using software application, not only is it tidier and cleaner as compared to hardware, but it also
saves space since I only need a laptop to perform my testing. By connecting to the internet using
a router or a modem, there is basically no GSM network function to transmit data which my
project requires me to perform. Hence, to allow me to have GSM capability, I need to use a
mobile broadband device. Why do I need to have a mobile broadband device? As we all know,
most mobile broadband devices require a SIM card. All SIM cards have GSM network capability
and are also be able to connect to the internet. Sometimes, it is difficult to tap on wireless
network when I am in a public place. Having equipped with a mobile broadband device, I do not
have to worry about connecting to the internet and this allows me to do my project anytime,
anyplace.
Having said all the valid reasons of having a mobile broadband device, but where am I able to
get it from? Well, telecommunication service providers such as SingTel, M1 and Starhub do
provide mobile broadband devices. As I have mentioned earlier, with a mobile broadband device,
I am able to access to the GSM network. With that, I’m able to connect to the internet to perform
my data collection through the GSM network. I can retrieve and analyse the data that I have
collected and classified them to different categories for discussion.
Next, from the data that I have collected, I have updated them in a graph and listed them to
review what the GSM network is actually doing during transmitting and receiving. This project
enabled me to apply data communication for packet analysing during my testing of data, giving
28
me a better understanding in different protocol structures and its operation. During this process, I
have recapped on a lot of fundamentals and it helped me to complete data capturing.
4.2 Software Comparisons
I did some research on various software related applications through the internet and magazines
on telecommunications. I have shortlisted some and made comparison based on the supported
protocols, program support, user friendliness the operating system support and finally the cost. In
the next section, I gave my final software decision for my project. The table below shows the list
of software that I found suitable for my project:
Software
NTOP
Colasoft Packet Analyzer
Wireshark
Purchase of Software
Yes
Yes
No (Open Source)
Download
Yes (Trial)
Yes (Trial)
Yes (Full Version)
Supported Protocols
Limited
Some
Yes
Program Support
Limited
Some
Yes
Yes
Yes
Yes
User-Friendly
No
No
Yes
Level of Difficulty
High
High
Medium
License Required
Yes
Yes
No
Renewal of Software
Yes
Yes
No
Limitation of Users
1 User
1 User
Unlimited Users
Maintenance
Unknown
Unknown
Actively Maintained
Source Code Viewing
No
No
Yes
Operating System
Support
29
4.3 Technology Being Used
After looking at the different software pro and cons, I have chosen Wireshark to be my ideal
software application.
Wireshark is a network analyser. It reads packets from the network, decodes and presents them
in an easy to understand format. One of the most important aspects of Wireshark is that it is an
open source - actively maintained and free. The following lists below are some of the other
important aspects of Wireshark:
It is distributed under the Gnu’s Not UNIX (GNU) General Public License (GPL) open
source license.
It works in promiscuous and non promiscuous modes.
It can capture data from the network or read from a capture file.
It has an easy to read and configurable GUI.
It has rich display capabilities.
It supports tcpdump format captures filters. It has a feature that reconstructs a
Transmission Control Protocol (TCP) session and displays it in American Standard Code
for Information Interchange (ASCII), Extended Binary Coded Decimal Interchange Code
(EBCDIC), hexadecimal (hex) dump or D arrays.
It is available in precompiled binaries and source code.
It supports over 750 protocols and as it is an open source, new ones are contributed
frequently.
It can save capture files in a variety of formats (e.g. libpcap, Network Associates Sniffer,
Microsoft Network Monitor (NetMon) and Sun snoop.
It includes a command line version of the network analyzer called tshark.
It includes a variety of supporting programs such as editcap, mergecap and text2pcap.
30
A brief history on how Wireshark came about. N 1997, Gerald Combs first developed Ethereal;
why did he want to do this? The reason was because he was expanding his knowledge of
networking and needed a tool for network troubleshooting. The first version (0.2.0) was released
in July 1998. A development team which includes Gilbert Rameirez, Guy Harris and Richard
Sharpe, quickly formed to provide patches, enhancements and additional dissectors. Dissectors
are what allow Wireshark to decode individual’s protocols and present them in readable format.
Since then, a large number of individuals have contributed specific protocols dissectors and other
enhancement to Wireshark.
31
5
EXPERIMENTAL PROCEDURE
5.1 Capture of Data
Firstly, I connected the mobile broadband device to my laptop as shown in the diagram below:
Step 1: Open the Wireshark application.
32
Step 2: Begin to capture data through the GSM network.
Step 3: Stop the capturing of data.
33
5.2 Analyse of Data
Basically, I spent most of my time in the Wireshark main window. This is where all of the
captured packets are displayed and broken down into a more understandable format. Using the
packet that I just made, let’s take a look at the Wireshark main window which contains three
panes.
The three panes in the main window depend on one another as shown in the diagram below:
Packet List Pane
Packet Details Pane
Packet Byte Pane
34
5.2.1 Packet List Pane
It displays a table containing all the packets in the current capture file. It contains the total packet
number, the relative time the packet was captured, the source and destination, the protocol and
other general information.
5.2.2 Packet Details Pane
It displays a hierarchical of information about a single packet. It can be collapsed and expanded
to show all the information collected about an individual packet.
5.2.3 Packet Byte Pane
It displays its raw and unprocessed form. It shows what the packet looks like when it travels
across the wire. This is raw information with nothing warm or fuzzy to make it easier to follow.
35
5.3 Flow Chart
Start
Capture of Data
No
Correct Data?
Yes
Filter of Required Data
No
Correct Data?
Yes
Display Data to Graph
End
36
6
RESULTS AND DISCUSSIONS
6.1 Data Collected
This is the data which I had collected when opening up Wikipedia website (www.wikipedia.org):
Figure 6a: Data Collected Using Wireshark
The status shows the total numbers of different protocols which have been transmitted from the
source to the destination and the number of packets that are sent and received from the
destination back to the source.
37
6.1.1 Graphs
6b: Graph for Data Collected
6.2 Test Results
The test results can be found in the Appendix section.
From the data that I have collected, I noticed that TCP, HTTP and DNS have the most of volume
of data being captured. Just by clicking into the internet, I received hundreds of packets in just a
few seconds. It is one of the important protocols for data transmission. I like to discuss the most
packets that had been capture: TCP. It uses a sequence number to identify each byte of data. The
sequence number identifies the order of the bytes sent from each computer so that the data can be
reconstructed in order, regardless of any fragmentation, disordering, or packet loss that may
occur during transmission.
38
For every payload byte transmitted the sequence number must be incremented. In the first two
steps of the 3-way handshake, both computers exchange an initial sequence number (ISN). This
number can be arbitrary, and should in fact be unpredictable, in order to avoid a TCP Sequence
Prediction Attack.
TCP primarily uses a cumulative acknowledgment scheme, where the receiver sends an
acknowledgment signifying that the receiver has received all data preceding the acknowledged
sequence number. Essentially, the first byte in a segment's data field is assigned a sequence
number, which is inserted in the sequence number field, and the receiver sends an
acknowledgment specifying the sequence number of the next byte they expect to receive.
TCP Header
Bit
offse
t
0
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
Source port
Sequence number
64
Acknowledgment number
128
160
...
C
W
R
E
C
E
2
2
2
3
2
4
2
5
2
6
Destination port
32
96 Data offset Reserved
2
1
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Checksum
Window Size
Urgent pointer
Options (if Data Offset > 5)
...
Figure 6a: Layout of TCP [10]
39
2
7
2
8
2
9
3
0
3
1
Figure 6b: The Function of TCP
40
7
LIMITATION AND CONCLUSION
7.1 Limitation
Due to insufficient support of proper tooling and equipments, I was unable to have a real live
demonstration of collecting precise data through the GSM network. Therefore, I’m only able to
perform a simulation with my laptop. As not being software proficient, performing software
testing is a major obstacle in completing my project where I had to commit a lot of time to
ensure that I could finish my project in time.
7.2 Risk Assessment
Since Wireshark is an open source application, it is frequently maintained by different
developers who are using this application. Therefore, there is basically no risk involved for the
application to be unstable. It is safe to use and there is also a question and answer section to help
new users who are interested in Wireshark to use the program and perform without any difficulty.
7.3 Future Discussion
I like to suggest that for future mobile developers, they may like to focus more on TCP
transmission. As observed from the data captured in the appendix section, there are quite a
number of TCP packets that were either lost or had not been transmitted. This causes mobile
subscribers have to wait to be able to serve the GSM network which much precious time had
been wasted.
41
7.4 Conclusion
In this project, I have gained a lot in terms of project management as well and software
knowledge. Being weak in software, I have spent a majority of my time to understand Wireshark
application. With diligence and perseverance, I finally manage to grasp the gist on how to
capture the data used in this application. It was a breakthrough for me.
In the world today, there is hardly any hardware being invented for network system. Hence, I
appreciate how the data can be transmitted through the GSM network. As I had mention under
the Analysing of Data section, accessing a webpage requires the usage of quite a huge amount of
packets and protocols. As I am not in the telecommunication industry, it is a big challenge for me
to handle this project. I am delighted to be able to achieve my objectives for my project.
42
8
CRITICAL REFLECTIONS
In the beginning of my project, I am totally clueless on how to start. For the first half of the year,
I had been searching for answers. This is where my supervisor, Mr Nava offered me some
pointers on how to kick start my project. I have learnt a lot on time management skills and
researched on journals. Looking for correct materials have been very crucial as it determines
whether I am on the right track and able to progress further. Besides that, I had learnt a great deal
on how to read and analyse on the different packets of data which were sent through the GSM
network. Unfortunately due to time constrain, I am only able to collect and interpret the data on
the fundamental stage. If I were given another opportunity, I am confident that I can progress to
a higher level.
Compared with the goals set in TMA01, I have met my targeted goals and am able to complete
my project in time. The biggest breakthrough is able to come out with the appropriate software
for my project. As not being software proficient, I had a hard time understanding on what I am
going to do for my project. Nevertheless, with a great interest in the telecommunication
technology, I have spent most of my time in understanding the terms and solutions on how to
complete my project through sources from the internet as well as from the libraries in NTU and
NUS.
Another major obstacle is without the correct equipment and tooling, I am not able to collect the
precise data. Therefore, as an alternative, I had to use my laptop as a simulation for data
collection through the GSM network.
43
9
REFERENCES
[1] R. Goldberg and D. Shrader, “Common channel signaling interface for local exchange carrier
to interexchange carrier interconnection”, IEEE Communication Magazine, volume 28, July
1990
[2] Juan Ventura Agustina, Peng Zhang and Raimo Kantola, “IEEE Journal”, Proceedings of the
Eighth IEEE International Symposium on Computers and Communication (ISCC’03), 2003
[3] David McMillian and Michael Rumsewwicz, “IEEE Journal”, 1996
[4] Joachim Zepf and Gerhard Rufa, “IEEE Journal”, IEEE JOURNAL ON SELECTED AREAS
IN COMMUNICATIONS, VOL. 12, NO. 3, APRIL 1994
[5] Chunsheng Xin, “IEEE Journal”, IEEE JOURNAL ON SELECTED AREAS IN
COMMUNICATIONS, VOL. 25, NO. 9, DECEMBER 2007
[6] Didier Samfat, Refik Molva, “INSTITUT EURÉCOM”, INSTITUT EURÉCOM 2229, route
des Crêtes, BP 193 06904 Sophia Antipolis, FRANCE
[7] Bijan Jabbari, “IEEE Journal”, PROCEEDINGS OF THE IEEE. VOL.80.NO. 4, APRIL
1992
[8] Huang Weinan, Sun Jian and Li Keping, “IEEE Journal”, 2008 International Conference on
Information Management, Innovation Management and Industrial Engineering, 2003
[9] www.wireshark.org
[10] www.wikipedia.org
44
9.1 Appendixes
9.1.1 Test Results Data from Wireshark
No.
Source
Destination
Protocol
Info
1
Time
0:00:00
113.10.120.132
203.116.1.78
DNS
Standard query A www.google.com.sg
2
0:00:00
113.10.120.132
203.116.1.78
DNS
Standard query A www.google.com.sg
3
9:22:30
113.10.120.132
203.116.1.78
DNS
Standard query A www.google.com.sg
4
9:45:00
113.10.120.132
203.116.1.78
DNS
Standard query A www.pipi.cn
5
16:30:00
203.116.1.78
113.10.120.132
DNS
Standard query response CNAME www.google.com CNAME www.l.google.com A 216.239.61.104
6
16:30:00
203.116.1.78
113.10.120.132
DNS
Standard query response CNAME www.google.com CNAME www.l.google.com A 216.239.61.104
7
16:30:00
203.116.1.78
113.10.120.132
DNS
Standard query response A 121.12.120.14 A 122.225.100.84 A 121.12.120.6 A 121.12.120.9 A 121.12.120.10 A 121.12.
8
16:52:30
203.116.1.78
113.10.120.132
DNS
Standard query response CNAME www.google.com CNAME www.l.google.com A 216.239.61.104
9
18:00:00
113.10.120.132
121.12.120.14
TCP
autonoc > http [SYN] Seq=0 Win=64380 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
10
19:52:30
113.10.120.132
216.239.61.104
TCP
mxomss > http [SYN] Seq=0 Win=64380 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
11
22:30:00
216.239.61.104
113.10.120.132
TCP
http > mxomss [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 WS=6
12
22:30:00
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=1 Ack=1 Win=64380 Len=0
13
22:30:00
113.10.120.132
216.239.61.104
HTTP
GET / HTTP/1.1
14
3:22:30
121.12.120.14
113.10.120.132
TCP
http > autonoc [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 WS=3
15
3:22:30
113.10.120.132
121.12.120.14
TCP
autonoc > http [ACK] Seq=1 Ack=1 Win=64380 Len=0
16
3:22:30
113.10.120.132
121.12.120.14
HTTP
GET /pfup/jfcheck/jfcheck.conf HTTP/1.1
17
5:37:30
216.239.61.104
113.10.120.132
TCP
http > mxomss [ACK] Seq=1 Ack=290 Win=6848 Len=0
18
7:30:00
216.239.61.104
113.10.120.132
TCP
[TCP Previous segment lost] [TCP segment of a reassembled PDU]
19
7:30:00
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 13#1] mxomss > http [ACK] Seq=290 Ack=1 Win=64380 Len=0 SLE=2861 SRE=4291
20
7:30:00
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
21
7:30:00
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 13#2] mxomss > http [ACK] Seq=290 Ack=1 Win=64380 Len=0 SLE=2861 SRE=4554
22
7:52:30
216.239.61.104
113.10.120.132
TCP
[TCP Retransmission] [TCP segment of a reassembled PDU]
23
7:52:30
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 13#3] mxomss > http [ACK] Seq=290 Ack=1 Win=64380 Len=0 SLE=1431 SRE=4554
24
8:15:00
216.239.61.104
113.10.120.132
TCP
[TCP Fast Retransmission] [TCP segment of a reassembled PDU]
25
8:15:00
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=290 Ack=4554 Win=64380 Len=0
26
10:30:00
216.239.61.104
113.10.120.132
TCP
[TCP Retransmission] [TCP segment of a reassembled PDU]
27
10:30:00
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 25#1] mxomss > http [ACK] Seq=290 Ack=4554 Win=64380 Len=0
28
14:37:30
121.12.120.14
113.10.120.132
TCP
http > autonoc [ACK] Seq=1 Ack=422 Win=6912 Len=0
29
16:07:30
121.12.120.14
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
30
20:15:00
113.10.120.132
121.12.120.14
TCP
autonoc > http [ACK] Seq=422 Ack=1461 Win=64380 Len=0
31
3:45:00
113.10.120.132
216.239.61.104
HTTP
GET /images/close_sm.gif HTTP/1.1
32
4:07:30
113.10.120.132
216.239.61.104
TCP
imyx > http [SYN] Seq=0 Win=64380 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
33
5:15:00
121.12.120.14
113.10.120.132
TCP
[TCP Previous segment lost] [TCP segment of a reassembled PDU]
34
5:15:00
113.10.120.132
121.12.120.14
TCP
[TCP Dup ACK 30#1] autonoc > http [ACK] Seq=422 Ack=1461 Win=64380 Len=0 SLE=2921 SRE=3433
35
8:15:00
216.239.61.104
113.10.120.132
TCP
http > mxomss [ACK] Seq=4554 Ack=852 Win=7936 Len=0
36
8:15:00
216.239.61.104
113.10.120.132
TCP
http > imyx [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 WS=6
37
8:15:00
113.10.120.132
216.239.61.104
TCP
imyx > http [ACK] Seq=1 Ack=1 Win=64380 Len=0
38
8:15:00
113.10.120.132
216.239.61.104
HTTP
GET /images/chrome_48.gif HTTP/1.1
39
9:00:00
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
40
9:00:00
216.239.61.104
113.10.120.132
HTTP
HTTP/1.1 200 OK (GIF89a)
41
9:00:00
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=852 Ack=4902 Win=64032 Len=0
42
12:45:00
216.239.61.104
113.10.120.132
TCP
http > imyx [ACK] Seq=1 Ack=564 Win=6848 Len=0
43
13:07:30
216.239.61.104
113.10.120.132
TCP
[TCP Previous segment lost] [TCP segment of a reassembled PDU]
44
13:07:30
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 38#1] imyx > http [ACK] Seq=564 Ack=1 Win=64380 Len=0 SLE=276 SRE=1706
45
45
13:07:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
46
13:07:30
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 38#2] imyx > http [ACK] Seq=564 Ack=1 Win=64380 Len=0 SLE=276 SRE=2726
47
13:07:30
216.239.61.104
113.10.120.132
TCP
[TCP Fast Retransmission] [TCP segment of a reassembled PDU]
48
13:07:30
113.10.120.132
216.239.61.104
TCP
imyx > http [ACK] Seq=564 Ack=2726 Win=64380 Len=0
49
15:00:00
113.10.120.132
216.239.61.104
HTTP
GET /images/modules/buttons/g-button-chocobo-basic-1.gif HTTP/1.1
50
18:45:00
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
51
19:07:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
52
19:07:30
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=1446 Ack=6608 Win=64380 Len=0
53
19:30:00
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
54
20:37:30
113.10.120.132
203.116.1.78
DNS
Standard query A g.microsoft.com
55
21:22:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
56
21:22:30
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=1446 Ack=9468 Win=64380 Len=0
57
21:45:00
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
58
23:15:00
203.116.1.78
113.10.120.132
DNS
Standard query response CNAME g.msn.com CNAME g.msn.com.nsatc.net A 207.46.216.54
59
23:15:00
113.10.120.132
207.46.216.54
TCP
x9-icue > http [SYN] Seq=0 Win=64380 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
60
0:22:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
61
0:22:30
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=1446 Ack=12328 Win=64380 Len=0
62
0:22:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
63
1:07:30
113.10.120.132
216.239.61.104
HTTP
GET /images/modules/buttons/g-button-chocobo-basic-2.gif HTTP/1.1
64
3:00:00
216.239.61.104
113.10.120.132
HTTP
HTTP/1.1 200 OK (GIF89a)
65
3:00:00
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=1446 Ack=14165 Win=64380 Len=0
66
3:00:00
113.10.120.132
216.239.61.104
HTTP
GET /intl/en_com/images/logo_plain.png HTTP/1.1
67
4:52:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
68
4:52:30
216.239.61.104
113.10.120.132
HTTP
HTTP/1.1 200 OK (GIF89a)
69
4:52:30
113.10.120.132
216.239.61.104
TCP
imyx > http [ACK] Seq=1158 Ack=3314 Win=63792 Len=0
70
6:45:00
207.46.216.54
113.10.120.132
TCP
http > x9-icue [SYN, ACK] Seq=0 Ack=1 Win=8190 Len=0 MSS=1460
71
6:45:00
113.10.120.132
207.46.216.54
TCP
x9-icue > http [ACK] Seq=1 Ack=1 Win=64380 Len=0
72
6:45:00
113.10.120.132
207.46.216.54
HTTP
GET /_0sfdata/1?CG={2CEDBFBC-DBA8-43AA-B1FD-CC8E6316E3E2}&DV=8.0.6001.9&OS=5.1.2600.3.0&BL=en-us&
73
7:07:30
113.10.120.132
216.239.61.104
HTTP
GET /extern_js/f/CgJlbhICc2crMAo4NiwrMA44BywrMBY4ECwrMBc4AywrMBg4BCwrMBk4CywrMCU4yYgBLCswJjgFLC
74
7:52:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
75
8:37:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
76
8:37:30
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=2022 Ack=15870 Win=64380 Len=0
77
8:37:30
216.239.61.104
113.10.120.132
TCP
[TCP Previous segment lost] [TCP segment of a reassembled PDU]
78
8:37:30
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 76#1] mxomss > http [ACK] Seq=2022 Ack=15870 Win=64380 Len=0 SLE=17300 SRE=18536
79
9:00:00
216.239.61.104
113.10.120.132
TCP
[TCP Retransmission] [TCP segment of a reassembled PDU]
80
9:00:00
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=2022 Ack=18536 Win=64380 Len=0
81
13:30:00
216.239.61.104
113.10.120.132
TCP
[TCP Previous segment lost] [TCP segment of a reassembled PDU]
82
13:30:00
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 80#1] mxomss > http [ACK] Seq=2022 Ack=18536 Win=64380 Len=0 SLE=19966 SRE=21396
83
13:30:00
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
84
13:30:00
113.10.120.132
216.239.61.104
TCP
[TCP Dup ACK 80#2] mxomss > http [ACK] Seq=2022 Ack=18536 Win=64380 Len=0 SLE=19966 SRE=22022
85
13:52:30
216.239.61.104
113.10.120.132
HTTP
[TCP Fast Retransmission] HTTP/1.1 200 OK (PNG)
86
13:52:30
113.10.120.132
216.239.61.104
TCP
mxomss > http [ACK] Seq=2022 Ack=22022 Win=64380 Len=0
87
13:52:30
216.239.61.104
113.10.120.132
TCP
http > imyx [ACK] Seq=3314 Ack=1822 Win=9408 Len=0
88
14:37:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
89
14:37:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
90
14:37:30
113.10.120.132
216.239.61.104
TCP
imyx > http [ACK] Seq=1822 Ack=6174 Win=64380 Len=0
91
14:37:30
121.12.120.14
113.10.120.132
TCP
http > autonoc [FIN, ACK] Seq=3433 Ack=422 Win=6912 Len=0
92
14:37:30
113.10.120.132
121.12.120.14
TCP
[TCP Dup ACK 30#2] autonoc > http [ACK] Seq=422 Ack=1461 Win=64380 Len=0 SLE=2921 SRE=3434
93
14:37:30
216.239.61.104
113.10.120.132
TCP
[TCP segment of a reassembled PDU]
94
16:30:00
207.46.216.54
113.10.120.132
HTTP
HTTP/1.1 204 No Content
46
9.2 Source Code
These sources codes are complied for the application of Wireshark.
9.2.1 Capture Data
/* capture.c
* Routines for packet capture
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef HAVE_LIBPCAP
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
47
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
/* needed to define AF_ values on UNIX */
#endif
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
/* needed to define AF_ values on Windows */
#endif
#ifdef NEED_INET_V6DEFS_H
# include "inet_v6defs.h"
#endif
#include <signal.h>
#include <errno.h>
#include <glib.h>
#include <epan/packet.h>
#include <epan/dfilter/dfilter.h>
#include "file.h"
#include "capture.h"
#include "capture_sync.h"
#include "capture_info.h"
#include "capture_ui_utils.h"
#include "util.h"
#include "capture-pcap-util.h"
#include "alert_box.h"
#include "simple_dialog.h"
#include <epan/prefs.h>
#ifdef _WIN32
#include "capture-wpcap.h"
#endif
#include "ui_util.h"
#include "wsutil/file_util.h"
#include "log.h"
48
typedef struct if_stat_cache_item_s {
char *name;
struct pcap_stat ps;
} if_stat_cache_item_t;
struct if_stat_cache_s {
int stat_fd;
int fork_child;
GList *cache_list; /* List of if_stat_chache_entry_t */
};
/* this callback mechanism should possibly be replaced by the g_signal_...() stuff (if I only
would know how :-) */
typedef struct {
capture_callback_t cb_fct;
gpointer user_data;
} capture_callback_data_t;
static GList *capture_callbacks = NULL;
static void
capture_callback_invoke(int event, capture_options *capture_opts)
{
capture_callback_data_t *cb;
GList *cb_item = capture_callbacks;
/* there should be at least one interested */
g_assert(cb_item != NULL);
while(cb_item != NULL) {
cb = cb_item->data;
cb->cb_fct(event, capture_opts, cb->user_data);
cb_item = g_list_next(cb_item);
}
}
void
49
capture_callback_add(capture_callback_t func, gpointer user_data)
{
capture_callback_data_t *cb;
cb = g_malloc(sizeof(capture_callback_data_t));
cb->cb_fct = func;
cb->user_data = user_data;
capture_callbacks = g_list_append(capture_callbacks, cb);
}
void
capture_callback_remove(capture_callback_t func)
{
capture_callback_data_t *cb;
GList *cb_item = capture_callbacks;
while(cb_item != NULL) {
cb = cb_item->data;
if(cb->cb_fct == func) {
capture_callbacks = g_list_remove(capture_callbacks, cb);
g_free(cb);
return;
}
cb_item = g_list_next(cb_item);
}
g_assert_not_reached();
}
50
9.2.2 Start Capture
/**
* Start a capture.
*
* @return TRUE if the capture starts successfully, FALSE otherwise.
*/
gboolean
capture_start(capture_options *capture_opts)
{
gboolean ret;
/* close the currently loaded capture file */
cf_close(capture_opts->cf);
g_assert(capture_opts->state == CAPTURE_STOPPED);
capture_opts->state = CAPTURE_PREPARING;
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_MESSAGE, "Capture Start ...");
/* try to start the capture child process */
ret = sync_pipe_start(capture_opts);
if(!ret) {
if(capture_opts->save_file != NULL) {
g_free(capture_opts->save_file);
capture_opts->save_file = NULL;
}
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_MESSAGE, "Capture Start failed!");
capture_opts->state = CAPTURE_STOPPED;
} else {
/* the capture child might not respond shortly after bringing it up */
/* (for example: it will block if no input arrives from an input capture pipe (e.g. mkfifo)) */
/* to prevent problems, bring the main GUI into "capture mode" right after a successful */
/* spawn/exec of the capture child, without waiting for any response from it */
51
capture_callback_invoke(capture_cb_capture_prepared, capture_opts);
if(capture_opts->show_info)
capture_info_open(capture_opts);
}
return ret;
}
void
capture_stop(capture_options *capture_opts)
{
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_MESSAGE, "Capture Stop ...");
capture_callback_invoke(capture_cb_capture_stopping, capture_opts);
/* stop the capture child gracefully */
sync_pipe_stop(capture_opts);
}
void
capture_restart(capture_options *capture_opts)
{
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_MESSAGE, "Capture Restart");
capture_opts->restart = TRUE;
capture_stop(capture_opts);
}
void
capture_kill_child(capture_options *capture_opts)
{
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_INFO, "Capture Kill");
/* kill the capture child */
sync_pipe_kill(capture_opts->fork_child);
}
/* We've succeeded in doing a (non real-time) capture; try to read it into a new capture file */
static gboolean
52
capture_input_read_all(capture_options
*capture_opts,
gboolean
is_tempfile,
gboolean
drops_known,
guint32 drops)
{
int err;
/* Capture succeeded; attempt to open the capture file. */
if (cf_open(capture_opts->cf, capture_opts->save_file, is_tempfile, &err) != CF_OK) {
/* We're not doing a capture any more, so we don't have a save file. */
return FALSE;
}
9.2.3 Filter Data
/* Set the read filter to NULL. */
/* XXX - this is odd here; try to put it somewhere where it fits better */
cf_set_rfcode(capture_opts->cf, NULL);
/* Get the packet-drop statistics.
XXX - there are currently no packet-drop statistics stored
in libpcap captures, and that's what we're reading.
At some point, we will add support in Wiretap to return
packet-drop statistics for capture file formats that store it,
and will make "cf_read()" get those statistics from Wiretap.
We clear the statistics (marking them as "not known") in
"cf_open()", and "cf_read()" will only fetch them and mark
them as known if Wiretap supplies them, so if we get the
statistics now, after calling "cf_open()" but before calling
"cf_read()", the values we store will be used by "cf_read()".
If a future libpcap capture file format stores the statistics,
we'll put them into the capture file that we write, and will
thus not have to set them here - "cf_read()" will get them from
the file and use them. */
53
if (drops_known) {
cf_set_drops_known(capture_opts->cf, TRUE);
/* XXX - on some systems, libpcap doesn't bother filling in
"ps_ifdrop" - it doesn't even set it to zero - so we don't
bother looking at it.
Ideally, libpcap would have an interface that gave us
several statistics - perhaps including various interface
error statistics - and would tell us which of them it
supplies, allowing us to display only the ones it does. */
cf_set_drops(capture_opts->cf, drops);
}
9.2.4 Read Data
/* read in the packet data */
switch (cf_read(capture_opts->cf)) {
case CF_READ_OK:
case CF_READ_ERROR:
/* Just because we got an error, that doesn't mean we were unable
to read any of the file; we handle what we could get from the
file. */
break;
case CF_READ_ABORTED:
/* User wants to quit program. Exit by leaving the main loop,
so that any quit functions we registered get called. */
main_window_nested_quit();
return FALSE;
}
/* if we didn't capture even a single packet, close the file again */
if(cf_get_packet_count(capture_opts->cf) == 0 && !capture_opts->restart) {
simple_dialog(ESD_TYPE_INFO, ESD_BTN_OK,
54
"%sNo packets captured!%s\n"
"\n"
"As no data was captured, closing the %scapture file!\n"
"\n"
"\n"
"Help about capturing can be found at:\n"
"\n"
"
http://wiki.wireshark.org/CaptureSetup"
#ifdef _WIN32
"\n\n"
"Wireless (Wi-Fi/WLAN):\n"
"Try to switch off promiscuous mode in the Capture Options!"
#endif
"",
simple_dialog_primary_start(), simple_dialog_primary_end(),
(cf_is_tempfile(capture_opts->cf)) ? "temporary " : "");
cf_close(capture_opts->cf);
}
return TRUE;
}
55
Download