Ian Wixon
May 2, 2014


ramp is a racket port scanner. Utilizing the racket/tcp library the program attempts to make a connection to each port over the range specified to the host. It emulates the functionality of the nmap -sT scan.


Concepts Demonstrated

  • Mapping and filtering is used extensively to federate the multi-threaded tcp-connect requests
  • Lambda functions are used to implement mapping over a group of channels
  • A (very large) hash map is used to implement the port->service capabilities.

External Technology

The racket/tcp library is used to preform connection operations to the intended host. Also implemented are the threading & channeling functionality in order to make the connects happen simultaneously and not block each other.


The output is in such a form that it allows this code to be easily extend an existing/new project via the (rmap ip startPort endPort) command.

Technology Used Block Diagram

Create a simple block diagram of your software system that illustrates the major technical components and how they interact; e.g.: