Vous êtes sur la page 1sur 57

CONGESTION CONTROL USING NBP

1.

Introduction
Page 1

SPHOORTHY ENGINEERING COLLEGE

CONGESTION CONTROL USING NBP

Congestion control concerns controlling traffic entry into a network so as to avoid congestion collapse by attempting to avoid oversubscription of any of the processing or link capabilities of the intermediate nodes and networks and taking resource reducing steps, such as reducing the rate of sending packets. It should not be confused with flow control, which prevents the sender from overwhelming the receiver. The network excellent scalability and robustness result in part from the end-to-end nature of network congestion control. End-to-end congestion control algorithms alone, however, are unable to prevent the congestion collapse and unfairness created by applications that are unresponsive to network congestion. To address these maladies, we propose and investigate a novel congestion-avoidance mechanism called Congestion Free Router (CFR). CFR entails the exchange of feedback between routers at the borders of a network in order to detect and restrict unresponsive traffic flows before they enter the network, thereby preventing congestion within the network. The fundamental philosophy behind the Internet is expressed by the scalability argument: no protocol, mechanism, or service should be introduced into the Internet if it does not scale well.

1.1

Purpose
Congestion Control Based On NBP is a networking application which

can be implemented on java platform. Its provides reliable communication between the users in the same organization within the same LAN. This project enables the user to send text messages i.e. chat with all the users without facing the congestion problems and delay in sending messages.

1.2 Document Conventions


In this document, we have used the following format:

SPHOORTHY ENGINEERING COLLEGE

Page 2

CONGESTION CONTROL USING NBP

For Main Headings: Font Font-face Font-weight: For Headings: Font Font-face Font-weight For Sub Headings: Font Font-face Font-weight For Content: Font Font-face Font-weight : : : 12pt Times New Roman Normal : : : 12pt Times New Roman Bold, Italic : : : 14pt Times New Roman Bold, Italic : : 16pt Times New Roman Bold, Italic

NBP: Network Based Protocols CFR: Control Free Router LAN: Local Area Network
SPHOORTHY ENGINEERING COLLEGE Page 3

CONGESTION CONTROL USING NBP

TCP: Transmission Control Protocol IP : Internet protocol

1.3 Scope
CFR entails the exchange of feedback between routers at the borders of a network in order to detect and restrict unresponsive traffic flows before they enter the network, thereby preventing congestion within the network.

The main scope of the project is to:

Network Border Patrol entails the exchange of feedback between routers at the borders of a

network.

Restrict unresponsive traffic flows. Prevents congestion within the network.

1.4 Benefits
Fast transmission Data backup Reduces delay Controls congestion within the network Standalone application Easy to use
Page 4

SPHOORTHY ENGINEERING COLLEGE

CONGESTION CONTROL USING NBP

Saves the messages automatically Reliable data transmission within the LAN Every user in an organization can interact with each other

2. System Analysis

2.1 Existing System


As a result of its strict adherence to end-to-end congestion control, the current Internet suffers from two maladies: Congestion collapse from undelivered packets unfair allocations of bandwidth between competing traffic flows. Congestion collapse from undelivered packets arises when packets that are dropped before reaching their ultimate continually consume bandwidth destinations.

SPHOORTHY ENGINEERING COLLEGE

Page 5

CONGESTION CONTROL USING NBP

Unfair bandwidth allocation to competing network flowsarises in the Internet for a variety of reasons, one of which is the existence of applications that do not respond properly to congestion. Adaptive applications (e.g., TCP-based applications) that respond to congestion by rapidly reducing their transmission rates are likely to receive unfairly small bandwidth allocations when competing with unresponsive applications. The Internet protocols themselves can also introduce unfairness. The TCP algorithm, for instance, inherently causes each TCP flow to receive a bandwidth that is inversely proportional to its round-trip time [6]. Hence, TCP connections with short round-trip times may receive unfairly large allocations of network bandwidth when compared to connections with longer round-trip times. The impact of emerging streaming media traffic on traditional data traffic is of growing concern in the Internet community. Streaming media traffic is unresponsive to the congestion in a network, and it can aggravate congestion collapse and unfair bandwidth allocation.

2.2 Proposed System


To address the maladies of congestion collapse we introduce and investigate a novel Internet traffic control protocol called Congestion Free Router (CFR). The basic principle of CFR is to compare, at the borders of a network, the rates at which packets from each application flow are entering and leaving the network. If a flows packets are entering the network faster than they are leaving it, then the network is likely buffering or, worse yet, discarding the flows packets. In other words, the network is receiving more packets than it is capable of handling. CFR prevents this scenario by patrolling the networks borders, ensuring that each flows packets do not enter the network at a rate greater than they are able to leave the network. This patrolling prevents congestion collapse from undelivered packets, because unresponsive flows otherwise undeliverable packets never enter the network in the first place. Although CFR is capable of preventing congestion collapse and improving the fairness of bandwidth allocations, these improvements do not come for free. CFR solves these problems at the expense of some additional network complexity, since routers at the border of the network are expected to monitor and control the rates of individual flows in CFR.

SPHOORTHY ENGINEERING COLLEGE

Page 6

CONGESTION CONTROL USING NBP

CFR also introduces added communication overhead, since in order for an edge outer to know the rate at which its packets are leaving the network, it must exchange feedback with other edge routers. Unlike some existing approaches trying to solve congestion collapse, however, CFRs added complexity is isolated to edge routers; routers within the core of the network do not participate in the prevention of congestion collapse. Moreover, end systems operate in total ignorance of the fact that CFR is implemented in the network, so no changes to transport protocols are necessary at end systems.

3. Requirements

3.1 Functional Requirements


Advanced Java Socket Programming File Concepts Threads Batch files

SPHOORTHY ENGINEERING COLLEGE

Page 7

CONGESTION CONTROL USING NBP

3.2 Software Requirements


Java1.4 or More Swings Windows 98

3.3 Hardware Requirements

Hard disk

: 40 GB RAM : Processor Monitor 128mb : Pentium 4 : 15 color monitor

Floppy drive : 1.44 MB Mouse CD Drive : HCL : LG 52X

4. Architecture

SPHOORTHY ENGINEERING COLLEGE

Page 8

CONGESTION CONTROL USING NBP

1: Sender sends a message to receiver. 2: The sender messages are received in the form of packets, and congestion flow is monitored using traffic shaping algorithms,these are forwaded to InRouter. 3: Router accpects the packets from InRouter and forwards to OutRouter. 4: The packets are reeived from OutRouter, and congestion flow is monitored using rate monitoring algorithms. 5: From the OutRouter the messages are transmitted to destination.

5. System Design

5.1 Module Specification


SPHOORTHY ENGINEERING COLLEGE Page 9

CONGESTION CONTROL USING NBP

The various modules in the project are as follows: Module 1: SOURCE MODULE Module 2: INROUTERROUTER MODULE Module 3: ROUTER MODULE Module 4: OUTROUTERROUTER MODULE Module 5: DESTINATION MODULE

SOURCE Module: The task of this Module is to send the data in form of packet in to the InRouter router. Functionalities:

Input data entities Algorithm Output

: Message to be transmitted from the source to the : not applicable : formatted packet with the required information for communicating

destination node in the form of packet with IP address for its identification.

between the source & the destination node.

INROUTER Router Module: An edge router operating on a flow passing into a network is called an InRouter router. CFR prevents congestion collapse through a combination of per-flow rate monitoring at OutRouter routers and per-flow rate control at InRouter routers. Rate control allows an InRouter router to police the rate at which each flows packets enter the network. InRouter Router contains a flow classifier, perflow traffic shapers (e.g., leaky buckets), a feedback controller, and a rate controller. Functionalities:

Input data entities Algorithm

: which determine the rate of the packets. : Leaky bucket


Page 10

SPHOORTHY ENGINEERING COLLEGE

CONGESTION CONTROL USING NBP

Output

: All the nodes in the network assigned with a unique rank.

ROUTER Module : The task of this Module is to accept the packet from the InRouter router and send it to the OutRouter router. Functionalities:
Input entities Algorithm Output

: receives data neighboring nodes and transfer into another neighboring nodes. : not applicable. : transfer packets to neighboring nodes

OUTROUTER Router Module : An edge router operating on a flow passing out of a network is called an OutRouter router. CFR prevents congestion collapse through a combination of per-flow rate monitoring at OutRouter routers and per-flow rate control at InRouter routers. Rate monitoring allows an OutRouter router to determine how rapidly each flows packets are leaving the network. Rate monitored using a rate estimation algorithm such as the Time Sliding Window (TSW) algorithm. OutRouter Router contains a flow classifier, Rate monitor, and a feedback controller. Functionalities:

Input data entities Algorithm Output

: which determine the rate of the packets flow in the network. : time sliding window and rate monitoring algorithm : packets are sent to destination.

DESTINATION Module: The task of this Module is to accept the packet from the OutRouter router and stored in a file in the Destination machine. Functionalities:
SPHOORTHY ENGINEERING COLLEGE Page 11

CONGESTION CONTROL USING NBP

Input data entities

: message to be received from the out router to the destination node

in the form of packets with IP address.


Algorithm Output

: not applicable : formatted packets with the required information for communication

between source and destination nodes.

5.2 UML Diagrams


The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of the software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that has proven successful in the modeling of large and complex systems. The UML is very important parts of developing object oriented software and the software development process. The UML mostly uses graphical notations to expres the design of the software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software. Each UML diagram is designed to let developers and customers view a software system from a different perspective and in varying degrees of abstraction. UML diagrams commonly created in visual modeling tools include

Use Case Diagram displays the relationship among actors and the use cases. Class Diagram models class structure and contents using design elements such as classes, packages and objects. It also displays relationships such as containment, inheritance, associations and multiplicities.

Interaction Diagrams

Sequence Diagram displays the time sequence of the objects participating in the interaction. This consists of the vertical dimension (time) and horizontal dimension(different objects).

SPHOORTHY ENGINEERING COLLEGE

Page 12

CONGESTION CONTROL USING NBP

Collaboration Diagram displays an interaction organized around and objects and their links to one another. Numbers are used to show sequence of messages.

Usecase Diagram For SOURCE

SPHOORTHY ENGINEERING COLLEGE

Page 13

CONGESTION CONTROL USING NBP

enters destnation address

typer mess

Source (user) Send mess

activates the network

Usecase Diagram For ROUTER

SPHOORTHY ENGINEERING COLLEGE

Page 14

CONGESTION CONTROL USING NBP

rec eives pac k ets

Router

trans fers pack ets

s tores info lik e IP addres s ,m ess ,tim e,feedbac k

InRouter

O utRouter

sends pac k ets to router plits dat into eac h pac ketapplic ation of leak y buc k et rec eives pac k ets from router s applic ation of s ends m es s to des tination one by one of 48 bits algorithm ,tim e s liding algorithm Rate m onitoring algorithm

Usecase Diagram For DESTINATION

SPHOORTHY ENGINEERING COLLEGE

Page 15

CONGESTION CONTROL USING NBP

receives mess

receives IP address of source also

Destination (receiver) sends feedback

saves message in seperate floder

Class Diagram

SPHOORTHY ENGINEERING COLLEGE

Page 16

CONGESTION CONTROL USING NBP

S o urc e(us ers ) IP _a ddres P ortN o. W rites M e s s a ge() S end s M es s () R ec e ives A C K () R ec e ives R eply () 1..* 1..* 1

Router1 P ortN o. TotalNoO fP orts N oO fS y s tem s C onnec ted F o rw ards M es s age()

eac h pac k et s p lit into 4 8b its ,forwards to routre f orward s from route r

m es s ag e firs t rec eived b y In ro uter in form of pac k et s

write s a m es s age and s ends

1 1O utR outer R outerN o. P ath R ec e ives P c k t F rom Route r() S t ores Info() C hec k s Ifany C onges tion() A pply A lgorit hm () 1

1InRouter Rou terN o. P ath S tores Info() A pp ly A lg orithm () S plits IntoP ac k ets () Rec eives P c k tF rom S ourc e()

1 ..* D es tin ation(rec eivers ) IP A dres s P ortN o. R ec eives M es s () S aves M es sa ge() S ends A C K () S ends Rep ly () 1..*

c hedk s if any c onge s tion and s ends m es s age to rec e iver

Sequence Diagram

SPHOORTHY ENGINEERING COLLEGE

Page 17

CONGESTION CONTROL USING NBP

:Source

:Router

:Destination

1:activates connection 2:activates connection

:InRouter :OutRouter 3:enters IP address of destination

4:writes message and clicks on send 5: each packet is split into 48 bits

6:checks the flow by applying an algorithm

7:date,time and entire info is stored 8:forwards packet to OutRouter 9:collects the packets from Router

10:checks the flow and congestion by using RCA

11:retransmission of packets if any packets are missed

12:message will be shown as a popup on notepad

13:sends ACK

14:close connection

15:close connection

Collabration Diagram
SPHOORTHY ENGINEERING COLLEGE Page 18

CONGESTION CONTROL USING NBP

:R outer 4: fo rw a rd s p a c k e t t o O u tR o u t e r

2 : a c tiva t e s c o nn e c t io n

10:

1 6 : c lo s e c o n n e c tio n : O u tR o u t r

7 : e a c h p a c k e t is s p lit in t o 4 8 bit s 8 : c h e c k s t h e flo w b y a p p ly in g a n a lg o rit h m 1 : a c t iva t e s c o n n e c t io n 9 : d a t e ,t im e a n d e n tire in fo is s t ore d 3:

1 7 : c lo s e c o n n e c t io n : In R o u te r

1 1 : c o lle c ts t h e p a c k e t s fro m R o u t e r 1 2 : c h e c k s t h e flo w a n d c o n g e s tio n b y u s in g R C A 1 3 : re t ra n s m is s io n o f p a c k e t s if a n y p a c k e ts a re m is s e d 1 4 : m e s s a g e w ill b e s h o w n a s a p o p up o n n o te p a d

5 : e n t e rs IP a d d re s s o f d e s tin a t io n 6 : w rit e s m e s s a g e a n d c lic k s o n s e n d

: S o u rc e 15 : s ends A C K

: D e s t in a t io n

6. Environment And Technology 6.1 Java


SPHOORTHY ENGINEERING COLLEGE Page 19

CONGESTION CONTROL USING NBP

Java component

is a of Sun

programming language originally developed by James Gosling at Sun Microsystems' Java platform. The language derives much of

Microsystems(which is now a subsidiary of Oracle Corporation) and released in 1995 as a core its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to byte code (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent, classbased, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere". Java is currently one of the most popular programming languages in use, and is widely used from application software to web applications. Java is a high-level programming language that is all of the following: Simple Object-oriented Distributed Interpreted Robust Secure Architecture-neutral Portable High-performance Multithreaded Dynamic

What Can Java Do? The most common types of programs are probably applets and applications, where a Java application is a standalone program that runs directly on the Java platform.

SPHOORTHY ENGINEERING COLLEGE

Page 20

CONGESTION CONTROL USING NBP

The Java Platform: One characteristic of Java is portability, which means that computer programs written in the Java language must run similarly on any supported hardware/operating-system platform. This is achieved by compiling the Java language code to an intermediate representation called Java byte code, instead of directly to platform-specific machine code. Java byte code instructions are analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written specifically for the host hardware. Endusers commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a Web browser for Java applets. Standardized libraries provide a generic way to access host-specific features such as graphics, threading and networking. A major benefit of using bytecode is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly than programs compiled to native executables would. Just-in-Time compilers were introduced from an early stage that compile bytecodes to machine code during runtime. Over the years, this JVM built-in feature has been optimized to a point where the JVM's performance competes with natively compiled C code.[citation
needed]

The following figure depicts a Java program, such as an application or applet, that's running on the Java platform. As the figure shows, the Java API and Virtual Machine insulates the Java program from hardware dependencies.

SPHOORTHY ENGINEERING COLLEGE

Page 21

CONGESTION CONTROL USING NBP

As a platform-independent environment, Java can be a bit slower than native code. However, smart compilers, well-tuned interpreters, and just-in-time byte code compilers can bring Java's performance close to that of native code without threatening portability. Swings: Swing is a graphical user interface library for the Java SE platform. It is possible to specify a different look and feel through the pluggable look and feel system of Swing. Swings are set of classes that provides more powerful & flexible components than are possible with AWT.

components explained in the Swing have more capabilities than those of AWT.

first import includes all of the public classes and interfaces from the javax.swing package.

related classes are contained in javax.swing and its sub packages, such as javax.swing.tree.components explained in the Swing have more capabilities than those of AWT.

Its a light weight package, as they are not implemented by platform-specific code.

6.2 TCP/IP Socket Programming

TCP/IP Client Sockets: TCP/IP sockets are used to implement reliable, bidirectional, persistent, point-to-point, stream-based connections between hosts on the Internet. A socket can be used to connect Javas I/O system to other programs that may reside either on the local machine or on any other machine on the Internet. There are two kinds of TCP sockets in Java. One is for servers, and the other is for clients. The ServerSocket class is designed to be a listener, which waits for clients to connect before doing anything. The Socket class is designed to connect to server sockets and initiate protocol exchanges.

SPHOORTHY ENGINEERING COLLEGE

Page 22

CONGESTION CONTROL USING NBP

The creation of a Socket object implicitly establishes a connection between the client and server. There are no methods or constructors that explicitly expose the details of establishing that connection. Here are two constructors used to create client sockets: Socket(String hostName, int port) Creates a socket connecting the local host to the named

host and port; can throw an UnknownHostException or anIOException. Socket(InetAddress ipAddress, int port) Creates a socket using a preexisting InetAddress object and a port; can throw an IOException. A socket can be examined at any time for the address and port information associated with it, by use of the following methods: InetAddress getInetAddress( )-Returns the InetAddress associated with the Socket object. int getPort( )-Returns the remote port to which this Socket object is connected. int getLocalPort( )-Returns the local port to which this Socket object is connected. Once the Socket object has been created, it can also be examined to gain access to the input and output streams associated with it. Each of these methods can throw an IOException if the sockets have been invalidated by a loss of connection on the Net. InputStream getInputStream( )-Returns the InputStream associated with the invoking socket. OutputStream getOutputStream( )-Returns the OutputStream associated with the invoking socket. TCP/IP Server Sockets: Java has a different socket class that must be used for creating server applications. The ServerSocket class is used to create servers that listen for either local or remote client programs to connect to them on published ports. ServerSockets are quite different form normal Sockets. When we create a ServerSocket, it will register itself with the system as having an interest in client connections. The constructors for ServerSocket reflect the port number that we wish to accept connection on and, optionally, how long we want the queue for said port to be. The queue length
SPHOORTHY ENGINEERING COLLEGE Page 23

CONGESTION CONTROL USING NBP

tells the system how many client connection it can leave pending before it should simply refuse connections. The default is 50. The constructors might throw an IOException under adverse conditions. Here are the constructors: ServerSocket(int port)-Creates server socket on the specified port with a queue length of 50. Serversocket(int port, int maxQueue)-Creates a server socket on the specified port with a maximum queue length of maxQueue. ServerSocket(int port, int maxQueue, InetAddress localAddress)-Creates a server socket on the specified port with a maximum queue length of maxQueue. On a multihomed host, localAddress specifies the IP address to which this socket binds. ServerSocket has a method called accept( ), which is a blocking call that will wait for a client to initiate communications, and then return with a normal Socket that is then used for communication with the client.

6.3 Batch Files


Batch File is a text file containing a series of commands intended to be executed by the command interpreter. Similar to language and other systems on mainframe and minicomputer systems, batch files were added to ease the work required for certain regular tasks by allowing the user to set up a batch script to automate many commands. When a batch file is run, the shell program (usually COMMAND.COM orcmd.exe) reads the file and executes its commands, normally line-by-line. Batch files are useful for running a sequence of executables automatically and are often used to automate repetitive or tedious processes. DOS batch files have the filename extension .bat. Batch files for other environments may have different extensions, e.g. .cmd or .bat. .bat: The first extension used by Microsoft for batch files. This extension runs with MSDOS and all versions of Windows, under COMMAND.COM or cmd.exe, despite the different ways the two command interpreters execute batch files.

SPHOORTHY ENGINEERING COLLEGE

Page 24

CONGESTION CONTROL USING NBP

6.4 Working Aspects Of The CFR


CFR is a network layer congestion-avoidance protocol that is aligned with the core-stateless approach. The core-stateless approach, which has recently received a great deal of research attention [18], [24], allows routers on the borders (or edges) of a network to perform flow classification and maintain per-flow state but does not allow routers at the core of the network to do so. Fig. 2 illustrates this architecture. Depending on which flow it is operating on, an edge router may be viewed as an InRouter or an OutRouter router. An edge router operating on a flow passing into a

network is called an InRouter router, whereas an edge router operating on a flow passing out of a network is called an OutRouter router. Note that a flow may pass through more than one OutRouter (or InRouter) router if the end-to-end path crosses multiple networks. CFR prevents congestion collapse through a combination of per-flow rate monitoring at OutRouter routers and per-flow rate control at InRouter routers. Rate monitoring allows an OutRouter router to determine how rapidly each flows packets are leaving the network, whereas rate control allows an InRouter router to police the rate at which each flows packets enter the network. Linking these two functions together are the feedback packets exchanged between InRouter and OutRouter routers; InRouter routers send OutRouter routers forward feedback packets to inform
SPHOORTHY ENGINEERING COLLEGE Page 25

CONGESTION CONTROL USING NBP

them about the flows that are being rate controlled, and OutRouter routers send InRouter routers backward feedback packets to inform them about the rates at which each flows packets are leaving the network. By matching the InRouter rate and OutRouter rate of each flow, CFR prevents congestion collapse within the network. 6.4.1 Mechanism: The architectural components, namely, the modified edge routers, which must be present in the network The feedback control algorithm, which determines how and when information is exchanged between edge route The rate control algorithm, which uses the information carried in feedback packets to regulate flow transmission rates and thereby prevent congestion collapse in the network. 6.4.2 Architectural Components: The only components of the network that require modification by CFR are edge routers; the input ports of OutRouter routers must be modified to perform per-flow monitoring of bit rates, and the output ports of InRouter routers must be modified to perform per-flow rate control. In addition, both the InRouter and the OutRouter routers must be modified to exchange and handle CFR feedback packets.

SPHOORTHY ENGINEERING COLLEGE

Page 26

CONGESTION CONTROL USING NBP

The input ports of OutRouter routers are enhanced in CFR. Fig. 3 illustrates the architecture of an OutRouter routers input port. Data packets sent by InRouter routers arrive at the input port of the OutRouter router and are first classified by flow. Flow classification is performed by InRouter routers on every arriving packet based upon a flow classification policy. An example flow classification policy is to examine the packets source and destination network addresses, and to aggregate all packets arriving on an InRouter router and destined to the same OutRouter router into the same CFR flow (i.e., a macro-flow). Other flow classification policies can be used, for instance, in the case of IPv6, flows may be classified by examining the packet headers flow label, whereas in the case of IPv4, it could be done by examining the packets source and destination addresses and port numbers. After classifying packets into flows, each flows bit rate is then rate monitored using a rate estimation algorithm such as the Time Sliding Window (TSW) algorithm. These rates are collected by a feedback controller, which returns them in backward feedback packets to an InRouter router whenever a forward feedback packet arrives from that InRouter router.

SPHOORTHY ENGINEERING COLLEGE

Page 27

CONGESTION CONTROL USING NBP

The output ports of InRouter routers are also enhanced in CFR. Each output port contains a flow classifier, per-flow traffic shapers (e.g., leaky buckets), a feedback controller, and a rate controller (see Fig. 4). The flow classifier classifies packets into flows, and the traffic shapers limit the rates at which packets from individual flows enter the network. The feedback controller receives backward feedback packets returning from OutRouter routers and passes their contents to the rate controller. It also generates forward feedback packets that are transmitted to the networks OutRouter routers. To prevent congestion collapse, the rate controller adjusts traffic shaper parameters according to a TCP-like rate-control algorithm, and the rate-control algorithm used in CFR is described later in this section.

6.5 Leaky Bucket Algorithm


The "leaky bucket" algorithm is key to defining the meaning of conformance. The leaky bucket analogy refers to a bucket with a hole in the bottom that causes it to "leak" at a certain rate coresponding to a traffic cell rate parameter The "depth" of the bucket corresponds to a
SPHOORTHY ENGINEERING COLLEGE Page 28

CONGESTION CONTROL USING NBP

tolerance parameter Each cell arrival creates a "cup" of fluid flow "poured" into one or more buckets for the use in conformance checking.

The Cell Loss Priority (CLP) bit in the ATM cell header determines which bucket(s) the cell arrival fluid pours into. In the algorithm, a cell counter represents the bucket. This counter is incremented by one for each incoming cell. The "leak rate" in the algorithm is the decrement rate which reduces the counter value by one at certain intervals. This rate is given by the cell rate under consideration and is governed by the minimum distance between two consecutive cells. The bucket volume is analogous to the cell counter range, which is represented by the permissible time tolerance for the incoming cells. This value is determined through the traffic contract or is set by the network provider and is called CDVT (cell delay variation tolerance). If the counter exceeds a certain value, the cells are assumed not to conform to the contract. To counteract this, non-conforming cells can now either be tagged or dropped. The algorithm is called "dual leaky bucket" if several parameters are monitored at once, or "single leaky bucket" if only one parameter is monitored. In the "Leaky Bucket" analogy the cells do not actually flow through the bucket; only the check for conformance to the contract does. The process flow is well explained in the following dataflow diagram

Dataflow Diagram For Leaky Buckrt Algorithm


SPHOORTHY ENGINEERING COLLEGE Page 29

CONGESTION CONTROL USING NBP

6.6 Feedback Control Algorithm


The feedback control algorithm in CFR determines how and when feedback packets are exchanged between edge routers. Feedback packets take the form of ICMP packets and are necessary in CFR for three reasons. First, forward feedback packets allow OutRouter routers to discover which InRouter routers are acting as sources for each of the flows they are monitoring. Second, backward feedback packets allow OutRouter routers to communicate per-flow bit rates to InRouter routers. Third, forward and backward feedback packets allow InRouter routers to detect incipient network congestion by monitoring edge-to-edge round-trip times.

SPHOORTHY ENGINEERING COLLEGE

Page 30

CONGESTION CONTROL USING NBP

The contents of feedback packets are shown in Fig. 5.

Contained within the forward feedback packet generated at an InRouter router are a time stamp and a list of flow specifications for flows originating at the InRouter router. The time stamp field is used to calculate the round-trip time between two edge routers, and the list of flow specifications indicates to an OutRouter router the identities of active flows originating at the InRouter router. A flow specification is a value uniquely identifying a flow, assigned by the InRouter router flow classifier. InRouter router adds a flow to its list of active flows whenever a packet from a new flow arrives; it removes a flow when the flow becomes inactive. In the event that the networks maximum transmission unit size is not sufficient to hold an entire list of flow specifications, multiple forward feedback packets are used. When an OutRouter router receives a forward feedback packet, it immediately generates a backward feedback packet and returns it to the InRouter router. Contained within the backward
SPHOORTHY ENGINEERING COLLEGE Page 31

CONGESTION CONTROL USING NBP

feedback packet are the forward feedback packets original time stamp, a hop count, and a list of observed bit rates, called OutRouter rates, collected by the OutRouter router for each flow listed in the forward feedback packet. The hop count, which is used by the InRouter routers rate-control algorithm, indicates how many routers are in the path between the InRouter and the OutRouter router. The OutRouter router determines the hop count by examining the time-to-live (TTL) field of arriving forward feedback packets. When the backward feedback packet arrives at the InRouter router, its contents are passed to the InRouter routers rate controller, which uses them to adjust the parameters of each flows traffic shaper. In order to determine how often to generate forward feedback packets, an InRouter router keeps a byte transmission counter for each flow it monitors. Whenever a flows byte transmission counter exceeds a threshold, denoted CFRs transmission counter threshold ( ), the InRouter router generates and transmits a forward feedback packet to the flows OutRouter router, and resets the byte transmission counters of all flows included in the feedback packet. Using a byte transmission counter for each flow ensures that forward feedback packets are generated more frequently when flows transmit at higher rates, thereby allowing InRouter routers to respond more quickly to impending congestion collapse. To maintain a frequent flow of feedback between edge routers even when data transmission rates are low, InRouter routers also generate forward feedback packets Whenever a time-out interval is exceeded.

6.7 Rate-Control Algorithm


The CFR rate-control algorithm regulates the rate at which each flow is allowed to enter thenetwork. Its primary goal is to converge on a set of per-flow transmission rates (here in after called InRouter rates) that prevents congestion collapse due to undelivered packets. It also attempts to lead

SPHOORTHY ENGINEERING COLLEGE

Page 32

CONGESTION CONTROL USING NBP

the network to a state of maximum link utilization and low router buffer occupancies, and it does this in a manner that is similar to TCP.

In the CFR rate-control algorithm, shown in Fig. 6, a flow may be in one of two phases, slow start or congestion avoidance, similar to the phases of TCP congestion control. The desirable stability characteristics of slow-start and congestion control algorithms have been proven in TCP congestion control, and CFR expects to benefit from their well-known stability features. In CFR, new flows entering the network start with the slow-start phase and proceed to the congestionavoidance phase only after the flow has experienced incipient congestion. The rate-control algorithm is invoked whenever a backward feedback packet arrives at an InRouter router. Recall that backward feedback packets contain a timestamp and a list of flows arriving at the OutRouter router from the InRouter router as well as the monitored OutRouter rates for each flow. Upon the arrival of a backward feedback packet, the algorithm calculates the current round-trip time (currentRTT in Fig. 6) between the edge routers and updates the base round-trip time (e.base RTT), if necessary. The base round-trip time (e.base RTT) reflects the best-observed round-trip time between the two edge routers. The algorithm then calculates deltaRTT, which is the difference between the current round-trip time (currentRTT) and the base round-trip time (e.baseRTT). A deltaRTT value greater than zero indicates that packets are requiring a longer time to traverse the network than they once did, and this can only be due to the buffering of packets within the network.
SPHOORTHY ENGINEERING COLLEGE Page 33

CONGESTION CONTROL USING NBP

Propagation Source

delay dest inat ion

Queuing delay Round-trip time

CFRs rate-control algorithm decides that a flow is experiencing incipient congestion whenever it estimates that the network has buffered the equivalent of more than one of the flows packets at each router hop. To do this, the algorithm first computes the product of the flows InRouter rate (f.InRouterRate) and deltaRTT (i.e., f.InRouterRate deltaRTT). This value provides an estimate of the amount of the flows data that is buffered somewhere in the network. If this amount (i.e., f.InRouterRate deltaRTT) is greater than the number of router hops between the InRouter and the OutRouter routers (e.hopcount) multiplied by the size of the largest possible packet (MSS) (i.e., MSS e.hopcount), then the flow is considered to be experiencing incipient congestion. The rationale for determining incipient congestion in this manner is to maintain both high link utilization and low queuing delay. Ensuring there is always at least one packet buffered for transmission on a network link is the simplest way to achieve full utilization of the link, and deciding that congestion exists when more than one packet is buffered at the link keeps queuing delays low. Therefore, CFRs rate-control algorithm allows the equivalent of e.hopcount packets to be buffered in flows path before it reacts to congestion by monitoring deltaRTT.1 a similar approach is used in the DEC bit congestion-avoidance mechanism. Furthermore, the approach used by CFRs
SPHOORTHY ENGINEERING COLLEGE Page 34

CONGESTION CONTROL USING NBP

rate control algorithm to detect congestion, by estimating whether the network has buffered the equivalent of more than one of the flows packets at each router hop, has the advantage that, when congestion occurs, flows with higher InRouter rates detect congestion first. This is because the condition f.InRouterRate deltaRTT MSS e.hopcount fails first for flows with a large InRouter rate, detecting that the path is congested due to InRouter flow. When the rate-control algorithm determines that a flow is not experiencing congestion, it increases the flows InRouter rate. If the flow is in the slow-start phase, its InRouter rate is doubled for each round-trip time that has elapsed since the last backward feedback packet arrived (f.InRouter). The estimated number of round-trip times since the last feedback packet arrived is denoted as RTTs Elapsed. Doubling the InRouter rate during slow start allows a new flow to rapidly capture available bandwidth when the network is underutilized. If, on the other hand, the flow is in the congestion-avoidance phase, then its InRouter rate is conservatively incremented by one rate Quantum value for each round trip that has elapsed since the last backward feedback packet arrived (f.InRouterrate rate Quantum RTTsElapsed). This is done to avoid the creation of congestion. The rate quantum is computed as the maximum segment size divided by the current round-trip time between the edge routers. This results in rate growth behavior that is similar to TCP in its congestion-avoidance phase. Furthermore, the rate quantum is not allowed to exceed the flows current OutRouter rate divided by a constant quantum factor (QF). This guarantees that rate increments are not excessively large when the round-trip time is small. When the rate-control algorithm determines that a flow is experiencing incipient congestion, it reduces the flows InRouter rate. If a flow is in the slow-start phase, it enters the congestion-avoidance phase. If a flow is already in the congestion-avoidance phase, its InRouter rate is reduced to the flows OutRouter rate decremented by a constant value. In other words, an observation of incipient congestion forces the InRouter router to send the flows packets into the network at a rate slightly lower than the rate at which they are leaving the network.

SPHOORTHY ENGINEERING COLLEGE

Page 35

CONGESTION CONTROL USING NBP

CFRs rate-control algorithm is designed to have minimum impact on TCP flows. The rate at which CFR regulates each flow (f.InRouterRate) is primarily a function of the round-trip time between the flows InRouter and OutRouter routers (currentRTT). In CFR, the initial InRouter rate for a new flow is set to be MSS/e.baseRTT, following TCPs initial rate of one segment per roundtrip time. CFRs currentRTT is always smaller than TCPs end-to-end round-trip time (as the distance between InRouter and OutRouter routers, i.e., the currentRTT in CFR, is shorter than the end-to-end distance, i.e., TCPs round-trip time). As a result, f.InRouterRate is normally larger than TCPs transmission rate when the network is not congested, since the TCP transmission window increases at a rate slower than CFRs f.InRouterRate increases. Therefore, CFR normally does not regulate TCP flows. However, when congestion occurs, CFR reacts first by reducing f.InRouterRate and, therefore, reducing the rate at which TCP packets are allowed to enter the network. TCP eventually detects the congestion (either by losing packets or due to longer round-trip times) and then promptly reduces its transmission rate. From this time point on, f.InRouterRate becomes greater than TCPs transmission rate, and therefore, CFRs congestion control does not regulate TCP sources until congestion happens again. The process flow is well explained in the following dataflow diagram,

Dataflow Diagram For Rate Control Algorithm


SPHOORTHY ENGINEERING COLLEGE Page 36

CONGESTION CONTROL USING NBP On arrival of backward feedback packet p from OutRouter router e Current RTT =Current Time -p.times tamp A Fals e

If If f.phase = =CurrentR TT<e.ba SLOW_START seRTT Tru e True e.base If RTT=Current RTT (deltaRTT*f.InR outerRate<MS S*e.hopcount)

Delta RTT=-Current RTTe.base RTT

Fal se

f.phase= CONGESTIO N_ AVOIDANCE

RTTs Elapsed= (Current Time-e.last Tru e FeedbackTime)/CurrentRT f.InRouter T Rate=f.InRouterRate*2^RTTsE lapsed e.last If f.phase FeedbackTime=Current Time = = CONGESTION_ For each flow f AVOIDANCE listed in p

Rate Quantum=min (MSS/currentRTT, Fal f.egreesRate/QF) se If (deltaRTT*f.InR outerRate<MS B A S*e.hopcount) Tru e f.InRouterRate=f.InRouter Rate + rate Quantum*RTTsElapsed SPHOORTHY ENGINEERING COLLEGE Next NEXT

f. InRouter Rate= f.OutRouter RaterateQuantu m

Page 37

CONGESTION CONTROL USING NBP

6.8 Time Sliding Window Algorithms


SPHOORTHY ENGINEERING COLLEGE Page 38

CONGESTION CONTROL USING NBP

Sliding Window Protocols are a feature of packet-based data transmission protocols. They are used where reliable in-order delivery of packets is required, such as in the data link layer (OSI model) as well as in TCP (transport layer of the OSI model). Conceptually, each portion of the transmission (packets in most data link layers, but bytes in TCP) is assigned a unique consecutive sequence number, and the receiver uses the numbers to place received packets in the correct order, discarding duplicate packets and identifying missing ones. The problem with this is that there is no limit of the size of the sequence numbers that can be required. By placing limits on the number of packets that can be transmitted or received at any given time, a sliding window protocol allows an unlimited number of packets to be communicated using fixed-size sequence numbers. For the highest possible throughput, it is important that the transmitter is not forced to stop sending by the sliding window protocol earlier than one round-trip delay time (RTT). The limit on the amount of data that it can send before stopping to wait for an acknowledgment should be larger than the bandwidth-delay product of the communications link. If it is not, the protocol will limit the effective bandwidth of the link.

SPHOORTHY ENGINEERING COLLEGE

Page 39

CONGESTION CONTROL USING NBP

So far, the protocol has been described as if sequence numbers are of unlimited size, everincreasing. However, rather than transmitting the full sequence number x in messages, it is possible to transmit only x mod N, for some finite N. (N is usually a power of 2.) Since it guarantees that ntna wt, there are at most wt+1 possible sequence numbers that could arrive at any given time. Thus, the transmitter can unambiguously decode the sequence number as long as N > wt. A stronger constraint is imposed by the receiver. The operation of the protocol depends on the receiver being able to reliably distinguish new packets (which should be accepted and processed) from retransmissions of old packets (which should be discarded, and the last acknowledgment retransmitted). This can be done given knowledge of the transmitter's window size. After receiving a packet numb The receiver also knows that the transmitter's nacannot be higher than the highest acknowledgment ever sent, which is nr. So the highest sequence number we could possibly see isnr+wt ns+wt. Thus, there are 2wt different sequence numbers that the receiver can receive at any one time. It might therefore seem that we must haveN 2wt. However, the actual limit is lower. The additional insight is that the receiver does not need to distinguish between sequence numbers that are too low (less than nr) or that are too high (greater than or equal to ns+wr). In either case, the receiver ignores the packet except to retransmit an acknowledgment. Thus, it is only necessary that N wt+wr. The process flow is well explained in the following dataflow diagram,

SPHOORTHY ENGINEERING COLLEGE

Page 40

CONGESTION CONTROL USING NBP

Arrival of the Forward Feedback at the OutRouter Router Start the timer No If Packets Wait until the are Packet is Dataflow Diagram For Time Sliding Window Protocols arrived arrived Yes Current Packet is send No

If Packets are forwarded Yes

Wait until the packet is forward

Acknowledgement is backward to InRouter Yes If no Packet to Forwarde d

Stop the timer

No

Forward the next packet SPHOORTHY ENGINEERING COLLEGE

Page 41

CONGESTION CONTROL USING NBP

7. Implementation
7.1 Related work:
The maladies of congestion collapse from undelivered packets and of unfair bandwidth allocations have not gone unrecognized. Some have argued that there are social incentives for multimedia applications to be friendly to the network, since an application would not want to be held responsible for throughput degradation in the Internet. Nevertheless, unresponsive UDP flows are becoming disturbingly frequent in the Internet, and they are an example that the Internet cannot rely solely on social incentives to control congestion or to operate fairly. Some have argued that congestion collapse and unfairness can be mitigated through the use of improved packet scheduling or queue management mechanisms in network routers. For instance, per-flow packet scheduling mechanisms such as WFQ attempt to offer fair allocations of bandwidth to flows contending for the same link.

SPHOORTHY ENGINEERING COLLEGE

Page 42

CONGESTION CONTROL USING NBP

For illustration, consider the example shown in Fig. 1. In this example, two unresponsive flows (flow A and flow B) compete for bandwidth in a network containing two bottleneck links (and -) arbitrated by a fair queuing mechanism at routers and, at the first bottleneck link (-),fairqueuing at router ensures that each flow receives half of the links available bandwidth (750 kb/s).On the second bottleneck link (-), much of the traffic from flow B is discarded due to the links limited capacity (128 kb/s). Hence, flow-A achieves a throughput of 750 kb/s, and flow B achieves a throughput of 128 kb/sc. Clearly, congestion collapse has occurred, because flow Bs packets, which are ultimately discarded on the second bottleneck link (-), limit the throughput of flow A across the first bottleneck link (-). An allocation of bandwidth is said to be globally max-min fair if, at every link, all active flows not bottlenecked at another link are allocated a maximum, equal share of the links remaining bandwidth [22]. A globally max-min fair allocation of bandwidth for the example shown in Fig. 1 would have been 1.372 Mb/s for flow A and 128 kb/s for flow B.

7.2 Pseudo Code


import java.net.*; import java.io.*;

class CFRDestination {
SPHOORTHY ENGINEERING COLLEGE Page 43

CONGESTION CONTROL USING NBP

public static void main(String args[]) throws IOException { System.out.println("******************************DESTINATION********************* ******************"); String instring=" "; String s=" "; int length=0; String dest=" "; try { ServerSocket sock1 = new ServerSocket(7711);

while(true) { System.out.println("waiting.........."); Socket insocket1 = sock1.accept(); System.out.println("connected sucessfully............."); try { ObjectInputStream ois=new ObjectInputStream(insocket1.getInputStream()); instring=(String) ois.readObject(); } catch(ClassNotFoundException e) { e.printStackTrace();
SPHOORTHY ENGINEERING COLLEGE Page 44

CONGESTION CONTROL USING NBP

} length=instring.length(); int st=instring.indexOf('`'); int end=instring.lastIndexOf('`'); dest=instring.substring(st+1,end); if((instring.substring((instring.length()4),instring.length())).equals("null")) { s=instring.substring(end+1,length-4); } else { s=instring.substring(end+1,length); } byte data[]=s.getBytes(); FileOutputStream fos=new FileOutputStream(dest+".txt",true); fos.write(data); Runtime r = Runtime.getRuntime(); Process p = null; p = r.exec("notepad"+" "+dest+".txt"); } }

catch(UnknownHostException e) {
SPHOORTHY ENGINEERING COLLEGE Page 45

CONGESTION CONTROL USING NBP

e.printStackTrace(); } } }

8. Testing

8.1 Unit Testing


Software testing is critical element of software quality assurance and represents ultimate review of specification, design and coding. Test case design focuses on a set of technique for the creation of test cases that meet overall testing objectives. Planning and testing of a programming system involve formulating a set of test cases, which are similar to the real data that the system is intended to manipulate. Test castes consist of input specifications, a description of the system functions exercised by the input and a statement of the extended output. Through testing involves producing cases to ensure that the program responds, as expected, to both valid and invalid inputs, that the program perform to specification and that it does not corrupt other programs or data in the system. In principle, testing of a program must be extensive. Every statement in the program should be exercised and every possible path combination through the program should be executed at least once. Thus, it is necessary to select a subset of the possible test cases and conjecture that this subset will adequately test the program.
SPHOORTHY ENGINEERING COLLEGE Page 46

CONGESTION CONTROL USING NBP

8.2 Integration Testing


It involves the testing of the order in which the different modules are combined to produce the functioning whole. Integration testing generally throws light on the order of arrangement of units, modules, systems, subsystems and the entire product. The proposed system, the client server architecture inherits a bottom-up integration strategy in which all the subsystem and the modules involved in it are independently tested and integrated to from the entire system, which is then tested as a whole. For the testing of this system it was required that the software be tested for performing its basic functions that are as follows: Start the server first and then client, then there is no error.Start the server and client, and then stop the server and a send a message from client. The error is no server connection.Start client first, then the error is client is not connected to the server.

8.3 Validation Testing


Validation testing is used to validate the correct user name and password and card number and pin number and if person gives the invalid username and password, at that time the card validation does not execute.

8.4 Performance Testing


Performance testing determines the amount of execution thime spent in various parts of the unit, program throughput, response time and device utilization by the program unit.

SPHOORTHY ENGINEERING COLLEGE

Page 47

CONGESTION CONTROL USING NBP

9. Screen Shots

Execution of batch files(.bat file)

SPHOORTHY ENGINEERING COLLEGE

Page 48

CONGESTION CONTROL USING NBP

Sender writing and sending a text message

SPHOORTHY ENGINEERING COLLEGE

Page 49

CONGESTION CONTROL USING NBP

InRouter

SPHOORTHY ENGINEERING COLLEGE

Page 50

CONGESTION CONTROL USING NBP

The Router connection is being monitored

SPHOORTHY ENGINEERING COLLEGE

Page 51

CONGESTION CONTROL USING NBP

Main Router

SPHOORTHY ENGINEERING COLLEGE

Page 52

CONGESTION CONTROL USING NBP

OutRouter

SPHOORTHY ENGINEERING COLLEGE

Page 53

CONGESTION CONTROL USING NBP

Destination

SPHOORTHY ENGINEERING COLLEGE

Page 54

CONGESTION CONTROL USING NBP

10. Conclusion

In this project, we have presented a novel congestion-avoidance mechanism for the Internet called CFR mechanism. Unlike existing Internet congestion control approaches, which rely solely on end-to-end control, CFR is able to prevent congestion collapse from undelivered packets. CFR by provides fair bandwidth allocations in a core-stateless fashion. CFR ensures at the border of the network that each flows packets do not enter the network faster than they are able to leave it, at the core of the network that flows transmitting at a rate lower than their fair share experience no congestion, i.e., low network queuing delay. This allows the transmission rate of all flows to converge to the network fair share. CFR requires no modifications to core routers nor to end systems. Only edge routers are enhanced so that they can perform the requisite per-flow monitoring, per-flow rate-control and feedback exchange operations.Simulation results show that CFR successfully prevents congestion collapse from undelivered packets. They also show that, while CFR is unable to eliminate unfairness on its own, it is able to achieve approximate global max-min fairness for competing network flows when combined with ECSFQ, they approximate global maxmin fairness in a completely core-stateless fashion.

SPHOORTHY ENGINEERING COLLEGE

Page 55

CONGESTION CONTROL USING NBP

11. References

[1] S. Floyd and K. Fall, Promoting the use of end-to-end congestion control in the internet, IEEE/ACM Trans. Networking, vol. 7, pp. 458472, Aug. 1999. [2] J. Nagle, Congestion control in IP/TCP Internet works, Internet Engineering Task Force, RFC 896, Jan. 1984. [3] V. Jacobson, Congestion avoidance and control, ACM Comput. Commun. Rev., vol. 18, no. 4, pp. 314329, Aug. 1988. [4] (1999, Jan.) Real Broadcast Network White Paper. Real Networks, Inc. [Online]. Available: http://www.real.com/solutions/rbn/ whitepaper.html [5] (1999, Jan.) Real Video Technical White Paper. Real Networks Inc. [Online]. Available: http://www.real.com/devzone/library/whitepapers/ overview.html [6] A. Habib and B. Bhargava, Unresponsive flow detection and control in differentiated services networks, presented at the 13th IASTED Int. Conf. Parallel and Distributed Computing and Systems, Aug. 2001. [10] A. Mustafa and M. Hassan, End to end IP rate control, in Recent Advances in Computing and Communications. New York: McGraw-Hill, Dec. 2000, pp. 279282. [11] A. Rangarajan and A. Acharya, ERUF: Early regulation of unresponsive best-effort traffic, presented at the Int. Conf. Networks and Protocols, Oct. 1999. [12] S. Robinson, Multimedia transmission drive net toward gridlock, New York Times, Aug. 23, 1999.

SPHOORTHY ENGINEERING COLLEGE

Page 56

CONGESTION CONTROL USING NBP

SPHOORTHY ENGINEERING COLLEGE

Page 57

Vous aimerez peut-être aussi