CS 432 Computer Networks and Data Communications
This course introduces students to the theory and practice of computer networks and network design. Students will be introduced to the principles of data communications and transmission. Protocols employed in layers 1 to 3 will be examined in depth. Layer 4 protocols will be highlighted and compared to layer 2. Methods and mechanisms for constructing distributed computing systems and network services are discussed in the context of common Internet systems such as electronic mail, print and file servers and Web services. Labs will cover typical network operations tasks. Students will review of hardware used in practice, common topologies and set up services on typical enterprise networks.
After successful completion of this course, Students will be able to build a moderately sized computer network be able to set up and administer network services be able to explain the operation of protocols at the different layers of the OSI work. Be able to compare and make appropriate protocol choices be prepared for post graduate studies in this area
ASHESI LEARNING GOALS ADDRESSED IN THIS COURSE:
- Leadership and Teamwork Students will work in groups, forming “Companies? whose network issues they will solve in various group lab projects. They will also learn to collaborate with other groups as success of their work depends on the output of other groups, and their own group’s performance will also affect other “companies?.
- Technological Competence Students are expected to learn and be familiar with the large collection of technobabble associated with this subject area. They will be able to set up medium sized networks that work, as well as be suitably prepared for postgraduate work in this area.
- Curiosity and Skill Students will be introduced to a wide range of subjects, and will become inquisitive about the explanations for various phenomena that occurs in telecommunications networks and will seek to find answers and explanations to observations they make in every day life. (where telecoms meets life). Students will build sufficient skill to address every day challenges in office data communications networks.
Four parts:
- Introduction: Practical networks – hardware and software: *Hardware, Software, Services , common topologies & technologies.
- Network Protocols and communications theory *Physical Layer: Communications Theory, Guided Media, Wireless and Mobile Communications, PSTN and cable Television *Data Link Layer: Framing, Flow Control, and Error Control *MAC: Contention and Contention free protocols including Slotted Aloha, CSMA/CA p-persistent CSMA, CSMA/CD, Adaptive tree walk, binary count down, bit mapped etc. MACA, MACAW. DLL hardware: bridges, Repeaters, Switches (also compare to Hubs, Routers, Gateways) *Network Layer: Design Issues, Routing, Congestion control, QOS, Internetworks *Transport Layer: Addressing, Berkeley Sockets, TCP, UDP *Applications: HTTP, FTP, SMTP etc
- Network Security Cryptography, Symmetric Key Algorithms, Public Key algorithms, Authentication Protocols
- Network services, and programming
- Lab1: Objective: To get familiar with networking equipment, To get familiar with setting up a SOHO network, Configuration of an FTP server
- lab 2: Common network applications and their deployment. Deploy and configure Mercury mail on localhost, configure IMAP, POP, configure mail server to fetch external mails, configure domain mail boxes for other “companies?/groups
- Lab 3: Install and configure Web services for virtual web hosting for multiple co-tenants. (Web server, Mail server, FTP server, database server etc on both Windows Server 2012/16 and on a UNIX type OS(e.g. Linux). Deploy a web based email client eg roundcube. Deploy at lease one other web based application e.g. CMS, CRM, e-commerce software etc) Document work in a short lab report (2 weeks mini project)
- Lab 4a: localhost command line commands, access remote linux host, command line tools and OS commands
- Lab 4b: linux command line tools
- Lab 5: shell scripting, also VI editor
- Lab 6: FTP, file utilities, shell scripting, file permissions
- Lab 7: Ethernet Frame Analysis, use of wireshark for packet capture
- Lab 8: HTTP and sockets programming (mini project)
- Prerequisites: CS212 Programming 2/ Programming for Computer Science or CS112 Computer Programming for Engineering