Introduction The explosive growth of the Internet in recent years has created a need for scientists and engineers, who can maintain, tune, debug, and innovate the networking infrastructure. Mastery of these technologies involves both theory and practice. The IEEE/ACM Computing Curriculum 2001 (Computing Curriculum, 2001) strongly recommends integrating experimentation and analysis into networking courses as they reinforce student understanding of concepts and their applications to real-world problems. It also has been stated that laboratory components are absolutely essential for a networking curriculum and deep understanding of networking requires laboratory facilities that allow one to build, observe, experiment, and measure (Comer, 2004). Many different approaches have been taken in developing hands-on laboratory-based networking courses. Some laboratory courses focus on network management and configuration (Brown, 2002; Fabrega, 2002; Fitzhugh, 2002; Kneale & Box, 2003) and even domain network administration (Nakagawa, Suda, Ukigai, & Miida, 2003). There is also some laboratory environments focus on one layer of networking protocols, such as link-layer network traffic analysis (Jipping, Bugaj, Mihalkova, & Porter, 2003) and implementation of transport level protocols (Richards, 2001). A few large networking education programs (Mayo & Kearns, 1999; Steenkiste, 2003) provide dedicated hardware in which students can experiment with a number of real networks and develop network functionality at the kernel level. However, such environments require extensive resources to setup and manage, and the high cost of providing dedicated networks makes it financially unworkable for most programs. The Virtual Network System (Casado & Mckeown, 2005) is a teaching tool designed to allow hundreds of students working remotely to develop user space programs that function as network infrastructure components. Most of those networking laboratory courses are introduced as a second course in computer networks. However, due to limited faculty and facility resources, most colleges and universities are only able to offer one networking course, mostly without any laboratory components. In fact, courses that expose students to actual network environments are still mostly absent in undergraduate and graduate curriculum (Kurose, Leibeherr, Ostermann, & Ott-Boisseau, 2002). There is an urgent need to integrate introductory networking courses with laboratory components. One way to integrate laboratory components into an introductory networking course is with simulation. Network simulation allows students to examine problems with much less work and of much larger scope than are possible with experiments on real hardware. An invaluable tool in this case is the free OPNET network simulator (OPNET, 2006) that offers the tools for modeling, design, simulation, data mining and analysis. OPNET can simulate a wide variety of different networks which are linked to each other. The students can therefore exercise various options available to networks and visually see the impact of their actions just by sitting at their workstations. Data message flows, packet losses, control/routing message flows, link failures, bit errors, etc. can be seen by the students at visible speed. This is the most cost effective solution for universities to demonstrate the behaviors of different networks and protocols. This paper describes our OPNET simulation laboratory development and our experience using it in introductory networking courses. We begin by describing our teaching objectives and discussing why we choose it over other major simulation software packets. We then present the representative projects of the OPNET simulation labs. Our simulation labs emphasize the understanding of the dynamics of network protocols instead of configuration and management and contain some extension or development of the topic beyond the lecture/reading. …