Apr 19, 2024  
2017-2018 Undergraduate Academic Catalog 
    
2017-2018 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CS 2911 - Network Protocols

3 lecture hours 2 lab hours 4 credits
Course Description
This course provides an introduction to the principles and practice of computer networking with emphasis on the Internet and related protocols, including HTTP, POP, IMAP, SMTP, DNS, UDP, and TCP/IP with a focus on the application, transport and network layers. The course also introduces the structure, components, and functionality of network architectures including packet switching, error control, flow control, and congestion control. Security topics introduced include encryption and public key infrastructure.   Throughout the course, an emphasis is placed on interpreting byte- and bit-level encoding of network protocols. (prereq: SE 1011 )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Encode and decode binary and hexadecimal numbers.
  • Understand what a network protocol is and how it is specified.
  • Describe the purpose and operation of key application and transport protocols, including HTTP, POP, IMAP, SMTP, DNS, UDP, and TCP.
  • Describe the operation of the network layer and IP protocol.
  • Describe network security concepts, security threats, and risks related to security breaches.
  • Describe important uses of cryptography in network security.
  • Write applications using socket connections.
  • Design procedural algorithms requiring several helper methods.
  • Design and implement a simple web server and email client.
  • Implement and break RSA public-key encryption and a public-key-signing infrastructure
  • Use a monitoring tool to view and interpret network communication

Prerequisites by Topic
  • Ability to design and implement small-scale software components and systems

Course Topics
  • Introduction to networking terminology, layering, and basic concepts.
  • Binay and hexadecimal number systems
  • Python
  • Procedural design
  • Network applications 
  • HTTP, SMTP, and DNS protocols
  • Socket programming
  • Transport layer, UDP and TCP protocols
  • Network layer, packet switching, datagrams
  • Link layer, Ethernet
  • Network security, cryptography, SSL/TLS protocols, public key infrastructure

Laboratory Topics
  • Network monitoring tool use
  • Network communication using socket connections
  • Design and implementation of software using web and email protocols
  • Implement and break example encryption algorithms and infrastructures

Coordinator
Josiah Yoder



Add to Portfolio (opens a new window)