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 | Bloom filter | 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

Computing Poisson 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

Computing positive tail values for a normal distribution

 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 random numbers

Generating normal random numbers

Monte Carlo simulations to estimate pi and integrate f(x)

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

Simulation of the M/M/1 queue

Simulation of the M/D/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 node discovery in a passive network

Some CSIM models of interesting systems

 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

 TCP/IP sockets programs

Demonstration of basic TCP/IP client/server model

Demonstration of basic UDP/IP client/server model

Demonstration of basic raw socket client/server model

Demonstration of raw sockets packet send

Demonstration of broadcast of UDP datagrams

Demonstration of non-blocking sockets and use of select for time-out

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()

Demonstration of htonl()

A simple UDP datagram reflector/relay program

Demonstration of IP multicast send and receive

Program to send a Magic Packet to wake-up a target host

Raw send and receive using WinPcap interface

Utility for remote execution of a Windows console application

 Bloom filter and related

Implementing a Bloom filter

Simulation of a Bloom filter to determine probability of false postive

Simulation of "balls and bins" to determine bin probabilities

 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 files of a specified size

Program to compute probabilities for the birthday paradox

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

Program to determine sleep time given BUSY and IDLE data

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

Programs to get battery lifetime of Windows laptop

 Last updated on December 8, 2019