With the Internet as a live example, this course introduces fundamental concepts in the design and implementation of computer communication networks, with a focus on protocols, applications and mechanisms used in the TCIP/IP protocol suite. Students will first implement network applications, and then learn what happens under the hood. Topics to be covered include: overview of network architectures, applications, network programming (using sockets), transport mechanisms and protocols, routing, addressing, data link mechanisms and protocols, local area networks, wireless networks, network security, and network management. Some queuing theory may be covered. Assignments will have a significant hands-on component.