This document provides an introduction and overview of Network Simulator 2 (NS2). It discusses the history and goals of NS2, the languages and protocols it supports, and how to work with and extend NS2. It describes how to create simple simulations using Tcl scripts, including defining nodes, links, traffic sources and sinks. It also provides an example of simulating wireless networks in NS2 using scripts to define node movement and the DSDV routing protocol.