The goal of this module is to introduce the students to advanced network programming concepts. They will study issues such as multitasking, multi-threading, processes, inter-process communications and network communications. Client-server communications for long term (e.g. large file transfer, multimedia streaming) and short term sessions (e.g. Web traffic) will be presented. P2P, RMI, applet-servlet, e-mail and multimedia mail will be introduced. The course will also address issues related to the programming of network equipment, including router architecture, network signaling, firewall and deep packet probes, network processors, network support for unicast, multicast and broadcast, and the use of techniques for dynamically changing router code, such as mobile agents and active networks