Showing posts with label download. Show all posts
Showing posts with label download. Show all posts

May 10, 2007

Web Traffic Generation in NS-2 with PackMime-HTTP


Implementation

The ns network simulator has objects called "Applications" that control data transfer in a simulation. These Applications communicate via "Agents" which represent the transport layer of the network. PackMimeHTTP is the ns object that drives the generation of HTTP traffic. Each PackMimeHTTP object controls the operation of two types of Applications, a PackMimeHTTP server Application and a PackMimeHTTP client Application. Each of these Applications is conncted to a TCP Agent (Full-TCP).

Each web server or web client cloud is represented by a single ns node that can produce and consume multiple HTTP connections at a time (Figure 1). For each HTTP connection, PackMimeHTTP creates (or allocates from the inactive pool, as described below) server and client Applications and their associated TCP Agents. After setting up and starting each connection, PackMimeHTTP sets a timer to expire when the next new connection should begin. The time between new connections is governed by the connection rate parameter supplied by the user. New connections are started according to the connection arrival times without regard to the completion of previous requests, but a new request between the same client and server pair (as with HTTP 1.1) begins only after the previous request-response pair has been completed.

PackMimeHTTP handles the re-use of Applications and Agents that have completed their data transfer. There are 5 pools used to maintain Applications and Agents -- one pool for inactive TCP Agents and one pool each for active and inactive client and server Applications. The pools for active Applications ensure that all active Applications are destroyed when the simulation is finished. Active TCP Agents do not need to be placed in a pool beacuse each active Application contains a pointer to its associated TCP Agent. New objects are only created when there are no Agents or Applications available in the inactive pools.

PackMimeHTTP Client Application
Each PackMimeHTTP client controls the HTTP request sizes that are transferred. The client is started when a new TCP connection is started. Each PackMimeHTTP client takes the following steps:

  • sample the number of requests for this connection from the number-of-requests distribution (if the number of requests is 1, this is an HTTP 1.0 connection)
  • sample the inter-request times from the inter-request-time distribution, if there will be more than 1 request
  • sample the HTTP request sizes from the request-size distribution
  • send the first HTTP request to the server
  • listen for the HTTP response
  • when the entire HTTP response has been received, the client sets a timer to expire when the next request should be made
  • when the timer expires, the next HTTP request is sent, and the above process is repeated until all requests have been completed

PackMimeHTTP Server Application
Each web server controls the response sizes that are transferred. The server is started by when a new TCP connection is started. Each PackMimeHTTP client takes the following steps:
  • listen for an HTTP request from the associated client
  • when the entire request arrives, the server samples the server delay time from the server delay distribution
  • set a timer to expire when the server delay has passed
  • when the timer expires, the server samples the HTTP response sizes from the HTTP response size distribution
  • this process is repeated until the requests are exhausted -- the server is told how many requests will be sent in the connection
  • send a FIN to close the connection

PackMimeHTTP Random Variables
This implementation of PackMimeHTTP provides several ns RandomVariable objects for specifying distributions of PackMimeHTTP connection variables. The implementations were taked from source code provided by Bell Labs and modified to fit into the ns RandomVariable framework. This allows PackMimeHTTP connection variables to be specified by any type of ns RandomVariable, which now include PackMimeHTTP-specific random variables. The PackMimeHTTP-specific random variable syntax for TCL scripts is as follows:
  • RandomVariable/PackMimeHTTPFlowArrive rate, where rate is the specified PackMimeHTTP connection rate
  • RandomVariable/PackMimeHTTPFileSize rate type, where type is 0 for HTTP requests and 1 for HTTP responses
  • RandomVariable/PackMimeHTTPXmit rate type, where type is 0 for client-side transmission delays and 1 for server-side transmission delays
For installation, more info here

tags :

May 2, 2007

The Design and Implementation of WiMAX Module for ns-2 Simulator

The Network Simulator 2 (ns-2) is a popular and powerful simulation tool for the simulation of packet-switched networks, which provides substantial support for simulation of TCP, routing, and MAC protocols over wired and wireless networks, such as wireless LANs, mobile ad hoc networks (MANETs), and satellite communications, etc, and is widely used in both academia and industry. Although many protocol modules have been implemented in the ns-2, the IEEE 802.16 broadband wireless access networks (BWANs) or WiMAX module has not been contributed yet. Thus, in this paper, we present our detailed design and implementation of the WiMAX module based on the IEEE 802.16 standard with the point-to-multipoint (PMP) mode for the ns-2. The implemented module comprises fundamental functions of the service-specific convergence sublayer (CS), the MAC common part sublayer (CPS), and the PHY layer. A simple call admission control (CAC) mechanism and the scheduler are also included in this module.



Installation

To install the patch, follow the instructions below:

  1. Download the software cygwin and ns-allinone-2.29.3 package.(refer to this website on how to setup cygwin + ns-2)
  2. Download the latest ns-2 WiMAX module source code.
  3. Decompress the ns-2 WiMAX module source code file which including three files : 802_16、common and queue.
  4. Put the 802_16 into c:\cigwin\home\"your_account"\ns-allinone-2.28\ns-2.28\mac.
  5. Move data for common and queue to c:\cigwin\home\"your_account"\ns-allinone-2.28\ns-2.28\common and queue respectively.
  6. Renew your Makefile .
  7. To compile your files by execute "make".


More info

tags :

May 1, 2007

NS-2 Emulation Extensions


The network simulator ns-2 is a widely accepted discrete event network simulator, actively used for wired and wireless network simulations. It has a highy detailed model of the lower layers (Physical and MAC) of wireless IEEE 802.11 networks.

Ns-2 has also an emulation feature, i.e. the ability to introduce the simulator into a live network and to simulate a desired network between real applications in real-time.

Within the scope of this project we developed some methods and extensions to the ns-2 to combine wireless network simulation and network emulation. Now ns-2 can emulate an arbitrary IEEE 802.11 network between real applications. Furthermore, our extensions are generic, i.e. can be applied to any network supported in the ns-2.

NS-2 emulation extensions use two methods for network emulation: Single Host and Distributed Clients. In the first method the simulator and all the applications run on one computer. We use User-Mode-Linux virtual machines and emulate a ns-2 netwok among them. The applications run inside the virtual machines and do not notice that they communicate through a simulated network.

In the Distributed Clients method we run the applications and the simulator on separated machines for better scalability. Here we use TUN/TAP virtual network interfaces and map them to nodes in the ns-2 simulator. The network among these TUN/TAP interfaces is again simulated. The applications interact with it in the same way they would interact with a real network.

More Info.

tags :

Apr 27, 2007

Peer-to-Peer (P2P) Simplified protocol


P2PS (Peer-to-Peer Simplified) is a lightweight infrastructure for peer-to-peer service discovery and pipe-based communication. As its names suggests, P2PS aims to provide a simple platform on which to develop peer-to-peer style applications, hiding the complexity of other similar architectures such as JXTA.

The P2PS protocols allow ad-hoc peer networks to be created containing everything from super-computer peers to PDAs. P2PS peers can create and advertise services within the network and discover the services offered by other peers. Services usually have at least one pipe associated, an abstract communication channel used to contact the service. Pipes are only bound to specific transport protocols (e.g. TCP/IP) at connection time and allow peers to communicate over multiple protocols.

The current P2PS reference implementation is written using Java, however as P2PS is based on XML protocols interoperability should exist with other implementations. The Java implementation provides a straightforward API for creating and advertising a peer within a network and for discovering the capabilities of other peers. Pluggable endpoint resolvers allow additional transport protocols to be inserted transparently to the application.

P2PS is an open-source project.

The source code is available from the download section of this website.

tags: , , , , , , , , ,



Nov 12, 2006

NS WorkBench : Graphical User Interface For Network Simulator


nsBench is a drag-and-drop GUI and easy to use in undergraduate and graduate networking courses. nsBench makes NS-2 simulation development and analysis faster and easier for students and researchers without losing the flexibility or expressiveness gained by writing a script.

nsBench v1.0 features include :

  • Nodes, simplex/duplex links and LANs
  • Agents: TCP, UDP, TCPSink, TCP/Fack, TCP/FullTcp, TCP/Newreno, TCP/Reno, TCP/Sack1, TCPSink, TCPSink/Sack1, TCPSink/DelAck, TCPSink/Sack1/DelAck, TCP/Vegas, Null Agent
  • Applications/Traffic: FTP, Telent, Http/Server, Http/Client, Http/Cache, webtraf, Traffic/CBR, Traffic/Pareto, Traffic/Exponential
  • Services: Multicast, Packet Scheduling, RED, DiffServ
  • Creating "Groups" concept to compensate for "loops"
  • Scenario generator
  • Link Monitors
  • Loss Models
  • Routing Protocols
Learn more of nsbench

tags: , , , , , ,