Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. INTRODUCTION
For decades, it has been the responsibility of the network to route traffic. Recent
studies have shown that there is inherent inefficiency in network-level routing from the
users perspective. In response to these observations, we routes themselves by using
either source routing or overlay routing. These end-to-end route selection schemes are
shown to be effective in addressing some deficiencies in todays IP routing. For example,
measurements from the Detour project show that in the Internet, a large percentage of
flows can find better alternative paths by relaying among overlay nodes, thereby
improving their performance. Such end-to-end route selection schemes are selfish by
nature in that they allow end users to greedily select routes to optimize their own
performance without considering the system wide criteria.
It is an open question is how selfish routing performs in Internet-like
environments. This is a challenging question because todays Internet is unique in the
following respects.
First, topologies and traffic demands of the Internet are not arbitrary but have
certain structures. The worst-case results may not be applicable to realistic topologies and
traffic demands. A general open question is whether selfish routing results in poor
performance in Internet-like environments (i.e., under realistic network topologies and
traffic demands).
Second, users in overlay networks do not have full flexibility in specifying their
end-to-end paths. Due to limited availability of source routing support in the routers, the
path between any two network nodes is dictated by the Internet routing protocols, such as
OSPF, MPLS, or BGP. While overlay networks provide another mechanism to enable
users to control their routes by relaying through overlay nodes, the route between two
overlay nodes is still governed by the underlying routing protocol. A natural question is
how to model such selfish overlay routing and whether selfish overlay routing results in
poor performance.
ROUTING ANALYSIS
Third, even if selfish overlays (i.e., overlays consisting of selfish traffic) yield
good performance, they can be deployed only incrementally. As a result, background
traffic and overlay traffic will interact with each other. We call such interactions
horizontal interactions. An important question is how such selfish traffic affects the
remaining traffic routed using the traditional routing protocols. A related question is
whether multiple overlays result in poor performance.
Fourth, the way in which selfish users choose their routes can interact with traffic
engineering. We call such interactions vertical interactions, which can be viewed as the
following iterative process. First, Internet Service Providers (ISPs) adjust network-level
routing according to traffic demands, using schemes of IP routing to minimize network
cost. Then selfish users adapt to changes in the underlying default routes by choosing
different overlay paths to optimize their end-to-end performance. Such adaptation
changes traffic demands and triggers traffic engineering to readjust the default routes,
which in turn makes selfish users adapt to new routes. Given the mismatch between the
objectives of selfish routing and traffic engineering, an interesting question is whether
selfish routing interacts poorly with traffic engineering.
We find that in contrast to theoretical worst cases, selfish routing in Internet-like
environments yields close to optimal average latency, which can be much lower than that
of default network-level routing. This is true for both source routing and overlay routing.
Moreover, we show selfish routing achieves good performance without hurting the traffic
that uses default network-level routing.
We show that an important impact of selfish routing on Internet-like environments
is the fundamental mismatch between the objectives of selfish routing and traffic
engineering. In particular, our results show that the low latency of selfish routing is often
achieved at the expense of increased congestion on certain links.
We take a game-theoretic approach to compute the traffic equilibria of various
routing schemes and then evaluate their performance. We focus on intra-domain network
environments because recent advances in topology mapping
and
traffic
ROUTING ANALYSIS
Brief Introduction
Game theory
Game theory is now finding its applications in computer science. The
nature of computing is changing because of success of Internet and the revolution
in Information technology. The advancement in technologies have made it
possible to commoditize the components such as network, computing, storage and
software.
In the new paradigm, there are multiple entities (hardware, software
agents, protocols etc.) that work on behalf of different autonomous bodies (such
as a user, a business etc.) and provide services to other similar entities. Internet
has made is possible for many such geographically distributed autonomous
entities to interact with each other and provide various services.
These entities will work for their respective owners to achieve their
individual goals (maximize their individual payoffs), as opposed to obtaining a
system optima (that is socially desirable). This results in an entirely different
paradigm of computing where the "work" is performed in a completely
distributed/decentralized fashion by different entities where the primary objective
of each entity is to maximize the objective of its owner.
Traffic engineering
Traffic engineering is a method of optimizing the performance of a
telecommunications network by dynamically analyzing, predicting and regulating
the behavior of data transmitted over that network. Traffic engineering is also
known as teletraffic engineering and traffic management. The techniques of traffic
engineering can be applied to networks of all kinds, including the PSTN (public
switched telephone network), LANs (local area networks), WANs (wide area
networks), cellular telephone networks, proprietary business and the Internet.
ROUTING ANALYSIS
Network
or city.
Home-area networks (HANs): A network contained within a user's home
that connects a person's digital devices.
Topology
In communication networks, a topology is a usually schematic description
of the arrangement of a network, including its nodes and connecting lines. There
are two ways of defining network geometry: the physical topology and the logical
(or signal) topology. The physical topology of a network is the actual geometric
layout of workstations.
In the bus network topology, every workstation is connected to a main
cable called the bus. Therefore, in effect, each workstation is directly
ROUTING ANALYSIS
The mesh network topology employs either of two schemes, called full
mesh and partial mesh. In the full mesh topology, each workstation is
connected directly to each of the others. In the partial mesh topology,
some workstations are connected to all the others, and some are connected
only to those other nodes with which they exchange the most data.
The tree network topology uses two or more star networks connected
together. The central computers of the star networks are connected to a
main bus. Thus, a tree network is a bus network of star networks.
Overlay network
An overlay network is a computer network which is built on the top of
another network. Nodes in the overlay can be thought of as being connected by
virtual or logical links, each of which corresponds to a path, perhaps through
many physical links, in the underlying network.
For example, distributed systems such as cloud computing, peer-to-peer
networks, and client-server applications are overlay networks because their nodes
run on top of the Internet. The Internet was originally built as an overlay upon the
telephone network while today (through the advent of VoIP), the telephone
network is increasingly turning into an overlay network built on top of the
Internet.
Overlay networks have also been proposed as a way to improve Internet
routing, such as through quality of service guarantees to achieve higher-quality
streaming media. Previous proposals such as IntServ, DiffServ, and IP multicast
have not seen wide acceptance largely because they require modification of all
routers in the network.
On the other hand, an overlay network can be incrementally deployed on
end-hosts running the overlay protocol software, without cooperation from ISPs.
The overlay has no control over how packets are routed in the underlying network
between two overlay nodes, but it can control, for example, the sequence of
ROUTING ANALYSIS
In internetworking, the process of moving a packet of data from source to
destination. Routing is usually performed by a dedicated device called a router.
Routing is a key feature of the Internet because it enables messages to pass from
one computer to another and eventually reach the target machine.
Each intermediary computer performs routing by passing along the
message to the next computer. Part of this process involves analyzing a routing
table to determine the best path. Routing is often confused with bridging, which
performs a similar function.
The principal difference between the two is that bridging occurs at a lower
level and is therefore more of a hardware function whereas routing occurs at a
higher level where the software component is more important. And because
routing occurs at a higher level, it can perform more complex analysis to
determine the optimal path for the packet.
Optimization
ROUTING ANALYSIS
ROUTING ANALYSIS
determine the next hop for the packet's destination (based on the destination IP address in
the IP packet header), and forwards the packet appropriately. The next router then repeats
this process using its own forwarding table, and so on until the packet reaches its
destination. At each stage, the IP address in the packet header is sufficient information to
determine the next hop; no additional protocol headers are required.
Fig.1 IP Routing
1.2.2 Goals of IP routing protocols
The goals described in the following list are common for any IP routing protocol,
regardless of its underlying logic type:
To dynamically learn and fill the routing table with a route to all subnets in the
network.
ROUTING ANALYSIS
If more than one route to a subnet is available, to place the best route in the
routing table.
To notice when routes in the table are no longer valid, and to remove those routes
from the routing table.
If a route is removed from the routing table and another route through another
neighboring router is available, to add the route to the routing table. (Many people
view this goal and the preceding one as a single goal.)
To add new routes, or to replace lost routes, with the best currently available route
as quickly as possible. The time between losing the route and finding a working
replacement route is called convergence time.
use is relatively simple. Routing protocols take the routes in a routing table and send a
message to their neighbors telling them about the routes. After a while, everyone has
heard about all the routes.
1.2.3 Working
A router passes data between multiple networks. It works at layer 3 i.e. network
layer, which means that it must be able to understand the data packets so that it can route
them to their destination.
Routers are essentially computers optimized for handling packets that have to be
transferred between separate networks. Routers attempt to send packets from their source
to their destination in the fastest possible way, which is not always the absolute shortest
path.
On a network, packets with destinations on the LAN go directly from the sending
machine to the destination machine without any intermediaries. However, if the
destination address of a packet is outside the LAN, the sending machine sends it to the
DEPARTMENT OF CSE, SRMCEW
ROUTING ANALYSIS
router, which the sending machine knows as default gateway, and has no further
interaction with that packet.
When the router receives a packet destined for a point outside the LAN, it looks
to see if it has a route to get the packet to that destination network. If it does, it will send
the packet to the next stop.
Routing hierarchy
Hierarchical routing is the procedure of arranging routers in a hierarchical
manner. A good example would be to consider a corporate intranet. Most
10
ROUTING ANALYSIS
corporate intranets consist of a high speed backbone network. Connected to this
backbone are routers which are in turn connected to a particular workgroup. These
workgroups occupy a unique LAN.
The reason this is a good arrangement is because even though there might
be dozens of different workgroups, the span 2. Even if the workgroups divided
their LAN network into smaller partitions, the span could only increase to 4 in
this particular example.
Considering alternative solutions with every router connected to every
other router, or if every router was connected to 2 routers, shows the convenience
of hierarchical routing. It decreases the complexity of network topology, increases
routing efficiency, and causes much less congestion because of fewer routing
advertisements.
With hierarchical routing, only core routers connected to the backbone are
aware of all routes. Routers that lie within a LAN only know about routes in the
LAN. Unrecognized destinations are passed to the default route.
11
ROUTING ANALYSIS
Policy routing
In computer networking, policy-based routing (PBR) is a technique used
to make routing decisions based on policies set by the network administrator.
When a router receives a packet it normally decides where to forward it based on
the destination address in the packet, which is then used to look up an entry in a
routing table.
However, in some cases, there may be a need to forward the packet based
on other criteria. For example, a network administrator might want to forward a
packet based on the source address, not the destination address.
This should not be confused with source routing. Policy-based routing
may also be based on the size of the packet, the protocol of the payload, or other
information available in a packet header or payload. This permits routing of
packets originating from different sources to different networks even when the
destinations are the same and can be useful when interconnecting several private
networks.
12
ROUTING ANALYSIS
13
ROUTING ANALYSIS
The term is commonly applied to networks and servers. The common
reasons for unplanned outages are system failures (such as a crash) or
communications failures (commonly known as network outage).
14
ROUTING ANALYSIS
15
ROUTING ANALYSIS
Fig.6 Selfish source routing
It is similar to source routing the traffic source that controls the routes. In this
routing sender sends a data through route which has less traffic.
To show the feasibility of the proposed selfish routing techniques and compare it
receiver.
To avoid inefficiencies in network-level routing by allowing hosts to either choose
16
ROUTING ANALYSIS
2. LITERATURE SURVEY
A number of recent studies have reported that network-level routing is inefficient
from the users perspective. For example Savage et al. use Internet measurements to
show that the default routing path is often suboptimal in terms of latency, loss rate, and
TCP throughput. The suboptimal performance of network-level routing is inevitable due
to routing hierarchy and policy, as well as different routing objectives used by network
operators, whose goal is to avoid high utilization.
Moreover, stability problems with routing protocols, such as BGP, could make
things even worse. As a result, there has been a movement to give users more autonomy
in choosing their routes by using source routing or overlay routing networks. Recently a
series of theoretical results show that selfish routing can result in extremely suboptimal
performance in worst cases.
The pioneering work in this area is by Koutsoupias and Papadimitriou, who
compare the worst-case Nash equilibrium with a global optimal solution in minimizing
DEPARTMENT OF CSE, SRMCEW
17
ROUTING ANALYSIS
network congestion in a two-node network. Roughgarden and Tardos are interested in a
different performance metriclatency. In, they prove that the price of anarchy (i.e., the
worst-case ratio between the average latency of a Nash equilibrium and that of the global
optimal) depends on the steepness of the network latency functions. They show that the
price of anarchy is unbounded for a general latency function such as M/M/1. In contrast
to the theoretical studies, our study focuses on a practical setting by using realistic
network topologies and traffic demands.
Different from the measurement studies, our study considers a more general
setting, and investigates networks with a large amount of selfish traffic under different
network configurations (including both static and dynamic network control). The
inefficiency of selfish routing motivates researchers to design strategies to reduce the cost
of uncooperation. For example, Korilis, Lazar, and Orda in and Roughgarden in study a
network with a mixture of selfish traffic and centrally controlled traffic.
18
ROUTING ANALYSIS
of TCP (e.g., SACK) and routers employ either RED or drop-tail queues, the Nash
equilibria are very inefficient.
2.2 A survey on networking games in telecommunications
Author: E. Altman_, T. Boulogne_, R. El-Azouzi_, T. Jim_enezy, and L. Wynter
Publication: IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY 10598,
USA
In this survey, author summarize different modeling and solution concepts of
networking games, as well as a number of different applications in telecommunications
that make use of or can make use of networking games.
They identify some of the mathematical challenges and methodologies that are
involved in these problems. They include here work that has relevance to networking
games in telecommunications from other areas, in particular from transportation
planning.
2.3 Resilient overlay networks
Author: D. G. Andersen, H. Balakrishnan, M. F. Kaashoek, and R. Morris
Publication: SOSP01, Banff, Canada
This paper describes the overlay networks. During the last six years, overlay
networks have become one of the most prominent tools for Internet research and
development. Overlays permit designers to implement their own routing and packet
management algorithms on top of the Internet.
The Internet itself began as an overlay network on top of the telephone network,
using long-distance telephone links (that consist of multiple physical links) to connect
Internet routers. Modern overlays operate similarly, using the Internet paths between endhosts as links upon which the overlay routes data, building a network on top of the
network.
As a result, overlays can be used to deploy new functionality almost immediately,
instead of requiring years of upgrades to Internet routers; they also present developers
with a flexible and powerful platform on which to create new services.
19
ROUTING ANALYSIS
2.4 MPLS and traffic engineering in IP networks
Author: D. O. Awduche
Publication: IEEE Commun. Mag., vol. 37, no. 12, pp
This article discusses the applications of MPLS to traffic engineering in IP
networks. Rapid growth and increasing requirements for service quality, reliability, and
efficiency have made traffic engineering an essential consideration in the design and
operation of large public Internet backbone networks. Internet traffic engineering
addresses the issue of performance optimization of historically, traffic engineering in the
Internet has been hampered by the limited functional capabilities of conventional IP
technologies.
Recent developments in multiprotocol label switching (MPLS) and differentiated
services have opened up new possibilities to address some of the limitations of the
conventional technologies, operational networks. A paramount objective of Internet
traffic engineering is to facilitate the transport of IP traffic through a given network in the
most efficient, reliable, and expeditious manner possible.
2.5 The Nimrod Routing Architecture
Author: I. Castineyra, N. Chiappa, and M. Steenstrup
Publication: IEEE
This paper present a scalable internetwork routing architecture, called Nimrod.
The Nimrod architecture is designed to accommodate a dynamic internetwork of arbitrary
size with heterogeneous service requirements and restrictions and to admit incremental
deployment throughout an internetwork. The key to Nimrod's scalability is its ability to
represent and manipulate routing-related information at multiple levels of abstraction.
2.6 On Selfish Routing in Internet-Like Environments
Author: Lili Qiu, Yang Richard Yang, Yin Zhang, and Scott Shenker
Publication: IEEE/ACM TRANSACTIONS ON NETWORKING, VOL. 14, NO. 4.
In this paper, we use a game-theoretic approach to investigate the performance of
selfish routing in Internet-like environments based on realistic topologies and traffic
demands in our simulations. We show that in contrast to theoretical worst cases, selfish
routing achieves close to optimal average latency in such environments. However, such
DEPARTMENT OF CSE, SRMCEW
20
ROUTING ANALYSIS
performance benefits come at the expense of significantly increased congestion on certain
links. Moreover, the adaptive nature of selfish overlays can significantly reduce the
effectiveness of traffic engineering by making network traffic less predictable.
Description
Alternatives
available)
Windows 98 or more
Not Applicable
Java(1.5)
Netbeans
Eclipse Id
Hardware requirements
DEPARTMENT OF CSE, SRMCEW
21
(If
ROUTING ANALYSIS
Numbe
r
Description
RAM 512MB
HDD 2 GB
HDD 2 GB or more
Low Latency
High Throughputs
22
ROUTING ANALYSIS
User
IP Routing
Selfish
Source
Routing
Selfish
Overlay
Routing
Latency
Latency
Latency
Comparison
Chart
Fig.8 System architecture
3.1.2 Product Function
In selfish routing, since the source of the traffic makes an independent decision
about how the traffic should be routed. The source can directly choose the route
path.
In selfish overlay routing the traffic source that controls the routes. The end users
often have complete routing control that is source itself have maintained the
routing table and send the packets from source to destination.
23
ROUTING ANALYSIS
Private sectors
In private sector user can use this routing for sending data in less time.
JLabel
Usage: The JLabel class can be used to add text (and icon) labels to a container.
Package: Javax.swing
Class: javax.swing.JLabel
JTextField
Usage: The JTextField class is a GUI component which can be used to add single
line text input to a container.
Package: Javax.swing
Subclass: Javax.swing.JTextComponent
JButton
Abstract: Describes the Java Swing JButton class, with commonly used methods,
and uses a JButton in a live applet example, with source code.
Usage: The JButton class can be used to add interactive buttons to a container.
Package: javax.swing
Class: javax.swing.JButton
24
ROUTING ANALYSIS
JPanel
Usage: The JPanel is a generic light weight container.
Package: Javax.swing
Class: javax.swing.JPanel
Core java contains the concepts like Exception handling, Multithreading; Streams
can be well utilized in the project environment.
The Exception handling can be done with predefined exception and has provision
for writing custom exception for our application.
The user interface can be done with the Abstract Window tool Kit and also Swing
class. This has variety of classes for components and containers.
25
ROUTING ANALYSIS
We can make instance of these classes and this instances denotes particular object
that can be utilized in our program. Event handling can be performed with
Delegate Event model.
The objects are assigned to the Listener that observe for event, when the event
takes place the corresponding methods to handle that event will be called by
Listener which is in the form of interfaces and executed.
This application makes use of Action Listener interface and the event click event
gets handled by this. The separate method action Performed () method contains
details about the response of event.
Java also contains concepts like Remote method invocation; Networking can be
useful in distributed environment.
The domain we are dealing here is basically routing oriented, to understand the
different routing techniques we should have knowledge about the different types
of routing and their performance.
The role played by the various routing techniques and the different
methodologies that they apply to solve the problem of routing has to be analyzed
and understood to start working with the new techniques that we are going to
26
ROUTING ANALYSIS
implement here. Since we are using game-theoretic approach, we should also
have knowledge about the different routing techniques and algorithms.
27
ROUTING ANALYSIS
4. FEASIBILITY STUDY
4.1 TECHNICAL FEASIBILITY
The assessment is based on an outline design of system requirements in terms of
Input, Processes, Output, Fields, Programs, and Procedures. This can be quantified in
terms of volumes of data, trends, frequency of updating, etc. in order to estimate whether
the new system will perform adequately or not. Technological feasibility is carried out to
determine whether the company has the capability, in terms of software, hardware,
personnel and expertise, to handle the completion of the project.
The development of this project requires very basic resources like java 1.5, swing
and applet. The routing analysis project can run on most operating system as java is
supported by all operating systems. So there are no technical feasibility issuers as far as
development and implementation of routing analysis is concerned. As such this project
only requires java run time environment to be installed at user side. It doesnt require any
other software to run. Also, no other special hardware requirements are there. Hence is
very much technically feasible for user.
4.2 ECONOMIC FEASIBILITY
This development of routing analyzer doesnt require any costly hardware or
software. All the software used is freely available. At user site also there is no
requirement of any software only JRE is required. Economic analysis is the most
frequently used method for evaluating the effectiveness of a new system. More
commonly known as cost/benefit analysis, the procedure is to determine the benefits and
savings that are expected from a candidate system and compare them with costs. If
benefits outweigh costs, then the decision is made to design and implement the system.
An entrepreneur must accurately weigh the cost versus benefits before taking an action.
4.2.1Cost-based study
DEPARTMENT OF CSE, SRMCEW
28
ROUTING ANALYSIS
It is important to identify cost and benefit factors, which can be categorized as
follows: 1. Development costs; and 2. Operating costs. This is an analysis of the costs to
be incurred in the system and the benefits derivable out of the system.
4.2.2Time-based study
This is an analysis of the time required to achieve a return on investments. The
future value of a project is also a factor.
29
ROUTING ANALYSIS
5. SYSTEM DESIGN
5.1 DATA FLOW DIAGRAM
The DFD is also called as bubble chart. It is a simple graphical formalism that
can be used to represent a system in terms of the input data to the system, various
processing carried out on these data and the output data is generated by the system.
IP
Routi
ng
Selfis
h
Sourc
e
Routi
ng
Sour
ce
Selfis
h
Overl
ay
Routi
File Transfer
ng
File Transfer
ACK
Late
ncy
Rout
er
ACK
Output
Compari
son
Chart
30
Destinat
ion
ROUTING ANALYSIS
31
ROUTING ANALYSIS
32
ROUTING ANALYSIS
User
IP
Routing
Selfish Overlay
Routing
source
Hash table
Selfish Source
Routing
source
Routing table
Router
R node
Ack
Forward to destination
Forward to destination
Destination
Destination
Latency
Latency
Comparison Chart
33
Latency
ROUTING ANALYSIS
User
Sourc
Router/R
Destin
e
oute
ation
IP
File
Node Trans
Rout
Transf
Find
ferred
ing
ACK
er
ACK
Latenc
y
Selfish
File
Trans
Source
Transf
Find
ferred
Routin
ACK
er
ACK
Latenc
g
Selfish
y
File
Trans
Overla
Transf
Find
ferred
y
ACK
er
ACK
Latenc
Routin
Chart
g y
View
Chart
34
ROUTING ANALYSIS
5.3.1 Analysis:
The Analysis phase is to getting the clear picture about the project. It plays the
major role while proceeding the project .Because this is the phase where the analyzer
gets the exact need from the customer. The next phase is to convert the requirement in to
form of object oriented design.
5.3.2 Design:
Design involves identification of classes, their relationships as well as their
collaboration. In objectory, classes were divided into Entity classes, interface classes and
the control classes. The Computer Aided Software Engineering tools that are available
commercially do not provide any assistance in this transition.
Even research CASE tools take advantage of Meta modeling are helpful only after the
construction of class diagram is completed. In the Fusion method ,it used some objectoriented approaches like Object Modeling Technique(OMT),Class Responsibility
Collaborator(CRC) and Objectory, used the term Agents to represent some of the
hardware and software systems.
In Fusion method, there was no requirement phase, where in a user will supply the
initial requirement document. Any software project is worked out by both analyst and
designer. The analyst creates the Use case diagram. The designer creates the Class
diagram. But the designer can do this only after the analyst has created the Use case
diagram. Once the design is over it is need to decide which software is suitable for the
application. Finally we decided to proceed the implementation using Java Networking
and MS-Access database.
Why JAVA
Java has two things: a programming language and a platform.
Java is also unusual in that each Java program is both compiled and
interpreted. With a compile you translate a Java program into an
intermediate language called Java byte codes the platform-independent
code instruction is passed and run on the computer.
Compilation happens just once; interpretation occurs each time
35
ROUTING ANALYSIS
the program is executed. The figure illustrates how this works .You can
think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether its a Java
development tool or a Web browser that can run Java applets, is an
implementation of the Java VM.
The Java VM can also be implemented in hardware. Java byte
codes help make write once, run anywhere possible. You can compile
your Java program into byte codes on my platform that has a Java
compiler. The byte codes can then be run any implementation of the Java
VM. For example, the same Java program can run Windows NT, Solaris,
and Macintosh.
Interpreter
Java Program
Compilers
My Program
5.3.3 Networking
DEPARTMENT OF CSE, SRMCEW
36
ROUTING ANALYSIS
TCP/IP stack
The TCP/IP stack is shorter than the OSI one:
IP datagrams
The IP layer provides a connectionless and unreliable delivery system. It
considers each datagram independently of the others. Any association between
datagram must be supplied by the higher layers. The IP layer supplies a checksum
that includes its own header.
The header includes the source and destination addresses. The IP layer
handles routing through an Internet. It is also responsible for breaking up large
datagram into smaller ones for transmission and reassembling them at the other
end.
UDP
37
ROUTING ANALYSIS
UDP is also connectionless and unreliable. What it adds to IP is a
checksum for the contents of the datagram and port numbers. These are used to
give a client/server model.
UDP (User Datagram Protocol) is a communications protocol that offers a
limited amount of service when messages are exchanged between computers in a
network that uses the Internet Protocol (IP). UDP is an alternative to the
Transmission Control Protocol (TCP) and, together with IP, is sometimes referred
to as UDP/IP.
Like the Transmission Control Protocol, UDP uses the Internet Protocol to
actually get a data unit (called a datagram) from one computer to another. Unlike
TCP, however, UDP does not provide the service of dividing a message into
packets (datagram) and reassembling it at the other end. Specifically, UDP doesn't
provide sequencing of the packets that the data arrives in. This means that the
application program that uses UDP must be able to make sure that the entire
message has arrived and is in the right order.
Network applications that want to save processing time because they have
very small data units to exchange (and therefore very little message reassembling
to do) may prefer UDP to TCP. The Trivial File Transfer Protocol (TFTP) uses
UDP instead of TCP. UDP provides two services not provided by the IP layer. It
provides port numbers to help distinguish different user requests and, optionally, a
checksum capability to verify that the data arrived intact.
TCP
TCP supplies logic to give a reliable connection-oriented protocol above
IP. It provides a virtual circuit that two processes can use to communicate. TCP
(Transmission Control Protocol) is a set of rules (protocol) used along with the
Internet Protocol (IP) to send data in the form of message units between
computers over the Internet.
While IP takes care of handling the actual delivery of the data, TCP takes
care of keeping track of the individual units of data (called packets) that a
message is divided into for efficient routing through the Internet. TCP is known as
a connection-oriented protocol, which means that a connection is established and
38
ROUTING ANALYSIS
maintained until such time as the message or messages to be exchanged by the
application programs at each end have been exchanged.
TCP is responsible for ensuring that a message is divided into the packets
that IP manages and for reassembling the packets back into the complete message
at the other end. In the Open Systems Interconnection (OSI) communication
model, TCP is in layer 4, the Transport Layer.
Internet addresses
In order to use a service, you must be able to find it. The Internet uses an
address scheme for machines so that they can be located. The address is a 32 bit
integer which gives the IP address. This encodes a network ID and more
addressing.
The network ID falls into various classes according to the size of the
network address. Class A uses 8 bits for the network address with 24 bits left over
for other addressing. Class B uses 16 bit network addressing. Class C uses 24 bit
network addressing and class D uses all 32.
Subnet address
Host address
8 bits are finally used for host addresses within our subnet. This places a
limit of 256 machines that can be on the subnet.
39
ROUTING ANALYSIS
Port address
A service exists on a host, and is identified by its port. This is a 16 bit
number. To send a message to a server, you send it to the port for that service of
the host that it is running on. This is not location transparency. Certain of these
ports are "well known".
Sockets
A socket is a data structure maintained by the system to handle network
connections. A socket is created using the call socket. It returns an integer that is
like a file descriptor. In fact, under Windows, this handle can be used with Read
File
zero,
40
ROUTING ANALYSIS
Fig15. IP address
5.3.4 Evaluation methodology
We compare IP routing with selfish source and overlay routing. In IP routing, the
network chooses the inter-domain route based on the shortest hop count, and chooses
intra-domain route based on the shortest OSPF path. Overlay routing allows a user to
select an overlay path; meanwhile the network determines the route between two
consecutive overlay nodes based on the same hierarchical routing strategy.
5.3.5 Computing traffic equilibria
We evaluate each of the preceding selfish routing schemes by computing its
performance at traffic equilibria. Using a game-theoretic approach, we define a traffic
equilibrium as a state where no user can improve the latency of its traffic by unilaterally
changing the amount of traffic it sends along different network paths. One possible way
of computing traffic equilibria is through simulation.
More specifically, one could simulate the moves of each individual user and wait
until the system reaches equilibrium. However, given the size of the network we are
considering, such simulation-based approach may take a prohibitively long time to
converge. Instead, we compute traffic equilibria directly using the following algorithms.
41
ROUTING ANALYSIS
5.4.1 Performance Evaluation of IP Routing
Source
This process is used to get the destination address and File content from
the user and send it to nearest router. Then it find the latency for corresponding
Destination
It receives the information from router and send the acknowledgement to
corresponding source.
Browse data
Send data using IP routing
Receiver send ack
Latency is
calculated
42
ROUTING ANALYSIS
Source
This process is used to get the destination address, route node address and
File content from the user and send it to nearest router. Then it find the latency for
Destination
It receives the information from router and send the acknowledgement to
corresponding source
Browse data
Send data using selfish
source routing
Receiver send ack
Latency is
calculated
43
ROUTING ANALYSIS
Source
This process is used to get the destination address and File content from
the user, then it process to identify the route nodes for corresponding destination
and send it to nearest route node. Then it find the latency for Corresponding file
Browse data
Send data using selfish
overlay routing
Receiver send ack
Latency is
calculated
44
ROUTING ANALYSIS
We evaluate each of the preceding selfish routing schemes by computing its
performance at traffic equilibria. Using a game theoretic approach, we define traffic
equilibrium as a state where no user can improve the latency of its traffic by unilaterally
changing the amount of traffic it sends along different network paths.
5.5 INTERFACE DESIGN
We have used swing and awt for designing GUI.
5.5.1 An Overview of the AWT
AWT stands for Abstract Window Toolkit. The Abstract Window Toolkit supports
GUI Java programming. It is a portable GUI library for stand-alone applications and/or
applets. The Abstract Window Toolkit provides the connection between your application
and the native GUI.
AWT features include:
handle their functionality. Thus, these components are often called "heavyweight"
components.
45
ROUTING ANALYSIS
Swing implements a set of GUI components that build on AWT technology and
provide a pluggable look and feel. Swing is implemented entirely in the Java
programming language, and is based on the JDK 1.1 Lightweight UI Framework. Swing
features include:
panes).
Pure Java design, no reliance on peers.
Pluggable Look and Feel.
Swing components do not depend on peers to handle their functionality. Thus,
these components are often called "lightweight" components. For interface design, we
have used swing and awt components. For user friendly GUI, we have provided functions
that would helpful like new to create a new java file, open to view already created files,
save the file. Also there are decompile, disassemble, jar extractor and jar preview option.
We have design the interface using java swing and awt components like JPanel,
JFrame, JInternalFrame, JDialog, JOptionPane, JLabel, JButton, JTextField, JTextArea,
Jscrollbar, JCheckBox, JList etc.
5.6 DATABASE DESIGN
Database design is the process of producing a detailed data model of a database.
This logical data model contains all the needed logical and physical design choices and
physical storage parameters needed to generate a design in a Data Definition Language,
which can then be used to create a database. A fully attributed data model contains
detailed attributes for each entity. The term database design can be used to describe many
different parts of the design of an overall database system.
Principally, and most correctly, it can be thought of as the logical design of the
base data structures used to store the data. In the relational model these are the tables and
views. In an object database the entities and relationships map directly to object classes
DEPARTMENT OF CSE, SRMCEW
46
ROUTING ANALYSIS
and named relationships. However, the term database design could also be used to apply
to the overall process of designing, not just the base data structures, but also the forms
and queries used as part of the overall database application within the database
management system (DBMS).
Database Fields
Left Node
192.168.68.
5
Right Node
Router
192.168.68.7 192.168.1.1
Router
192.168.68.7
192.168.1.1
6. SYSTEM IMPLIMENTATION
6.1 TESTING
47
ROUTING ANALYSIS
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product It is the process of exercising software with the intent of ensuring that the
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses a specific
testing requirement.
6.1.1 TYPES OF TESTS
6.1.1.1 Unit testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program input produces valid outputs. All
decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on knowledge of
its construction and is invasive.
Unit tests perform basic tests at component level and test a specific business
process, application, and/or system configuration. Unit tests ensure that each unique path
of a business process performs accurately to the documented specifications and contains
clearly defined inputs and expected results.
6.1.1.2 Integration testing
Integration tests are designed to test integrated software components to determine
if they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields.
Integration tests demonstrate that although the components were individually
satisfaction, as shown by successfully unit testing, the combination of components is
correct and consistent. Integration testing is specifically aimed at exposing the problems
that arise from the combination of components.
48
ROUTING ANALYSIS
6.1.1.3 Functional Test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system documentation,
and user manuals.
Functional testing is centered on the following items:
Valid Input
Invalid Input
Functions
Output
49
ROUTING ANALYSIS
Pages must be activated from the identified link.
The entry screen, messages and responses must not be delayed.
c. Features to be tested
Verify that the entries are of the correct format.
All links should take the user to the correct page.
Main Window
Sr. No
1
Test Case
Excepted Result
Test Result
Successful
Successful
Source Button
window is opened
Overlay Button
window is opened
On the click of
Successful
Help is displayed
Successful
Successful
On the click of IP
Routing Button
Successful
IP Routing
Sr. No
1
Test Case
Excepted Result
Test Result
On the click of
Successful
Browse Button
50
ROUTING ANALYSIS
Button
to the destination
On the Click of
Successful
Successful
RESET Button
Sr. No
1
Test Case
Excepted Result
Test Result
On the click of
Successful
Browse Button
Button
to the destination
On the Click of
Successful
Successful
RESET Button
Sr. No
1
Test Case
Excepted Result
51
Test Result
Successful
Successful
ROUTING ANALYSIS
Button
3
to the destination
Successful
Button
The main class which consists of the designing of the main window should
consist of linking of the sub class.
The data which are loaded from folder that is being read by program.
The iteration should be called through the routing to do the clear picture of
sending data. The message window should show
The main class which consists of the designing of the main window should
consist of linking of the sub class.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
52
ROUTING ANALYSIS
6.2 SNAPSHOTS
6.2.1Main window
53
ROUTING ANALYSIS
54
ROUTING ANALYSIS
55
ROUTING ANALYSIS
6.2.7 Selfish source: showing the latency after a file sent to destination
DEPARTMENT OF CSE, SRMCEW
56
ROUTING ANALYSIS
6.2.8 Selfish overlay: showing the latency after a file sent to destination
57
ROUTING ANALYSIS
58
ROUTING ANALYSIS
59
ROUTING ANALYSIS
7.1 CONCLUSION
In this project, we use game theoretic approach to study the performance of
selfish routing in internet like environments. Our results show that unlike the theoretical
worst case, selfish routing in such environments achieves close to optimal average
latency, when the network level routing is static. Moreover, compared with complaint
routing (network level routing), selfish routing yields lower latency. This is true for both
intra-domain and inter-domain scenarios. On the other hand, such performance often
comes at the cost of overloading certain links. Moreover, when selfish routing and traffic
engineering each tries to minimize its own cost by adapting to the other process, the
resulted performance could be considerably worse.
7.2 FUTURE ENHANCEMENTS
There are a number of avenues for future work, e.g., a better understanding and
improving the interactions between selfish routing and traffic engineering; investigating
the dynamics of selfish routing, i.e., how equilibria are reached; and evaluating the
performance of selfish routing under alternative performance metrics, such as loss and
throughput.
60
ROUTING ANALYSIS
8.1 BOOKS
61
ROUTING ANALYSIS
[10] A. Feldmann, A. Greenberg, C. Lund, N. Reingold, and J. Rexford, Deriving traffic
demands for operational IP networks: Methodology and experience, IEEE/ACM Trans.
Netw., vol. 9, no. 3, pp. 265279, Jun. 2001.
62