Christensen Tools Page
Department of Computer Science and Engineering

This page contains software tools related to performance evaluation and TCP/IP sockets programming. These tools are intended for use as teaching and research aids and therefore include very well documented source code, build and execution instructions, and sample input and output. With few exceptions (that are clearly noted - see the author listed in the program header), the tools have been developed by Ken Christensen at the University of South Florida. If you find a bug, please send me email.
Analytical | Statistical | Simulation | Data communications | TCP/IP sockets | Miscellaneous ]

 Analytical tools

Solving for the steady state probabilities of sparse P and Q matrices

Mean Value Analysis for a closed queueing network

Computing the Erlang-B and Erlang-C probabilities

Iterative solution for M/M/1/K

 Statistics and measurement tools

Studying the properties of a time series

Generating a time series with a known distribution

Generating synthetic packet traffic

Tools for working with a time series of paired data

Fitting a line to <x, y> data with linear regression

Computing the correlation coefficient of <x, y> data

Exponential smoothing to forecast the next value in a series

Computing confidence intervals and doing a hypothesis test

 Simulation tools

Note that all programs with "_csim.c" in their file name require the commercial CSIM libraries available only from Mesquite Software, Inc..

Source files for SMPL event-based simulation modeling

Generating uniform and normal random numbers

Simulation of the M/M/1 queue

Simulation of the H2/D/1 queue

Simulation of the IBP/D/1 queue

Simulation of the N independent M/M/1 queues

Simulation of a trace-driven single-server queue

Simulation of a trace-driven leaky bucket

Simulating the effectiveness of parity for error detection

Simulating bit errors to determine burst sizes

Simulation of machine failures

Simulation of a fluid-flow, single-server, finite-buffer queue

Simulation of node discovery in a passive network

 Data communications tools

Computing link utilization for DLC stop-and-wait and sliding window

Computing link utilization for Token Ring and Ethernet LANs

Generating CRC and checksum error detection codes

Implementing a Bloom filter

 TCP/IP sockets programs

Demonstration of basic TCP/IP client/server model

Demonstration of basic UDP/IP client/server model

A UDP "blaster" program to measure transmission data rate

The "world's smallest" web server

Demonstration of HTTP GET and HTTP response

Programs for timing of serial and parallel HTTP GETs

Demonstration of gethostbyname() and gethostbyaddr()

Demonstration of getsockname()

A simple UDP datagram reflector/relay program

Demonstration of IP multicast send and receive

Utility for remote execution of a Windows console application

Demonstration of raw sockets

Raw send and receive using WinPcap interface

 Miscellaneous tools and programs

Demonstration of threads and processes

Demonstration of Windows semaphore and threads

Demonstration of the system() function

Demonstration of how to time program execution

Program to get the current time

Utility to suspend a process for a user specified number of seconds

Program to generate a binary file of a specified size

Program to compute probabilities for the birthday paradox

Program to BUSY, IDLE, and SLEEP data from a Windows PC

Programs to put to sleep and wake-up a Windows PC

 Last updated on August 2, 2008