ECPE / COMP 177 - Computer Networking - Fall 2012
Office: Anderson Hall 205
Phone: (209) 946-2302
Email: jshafer at pacific dot edu
Office Hours: Wednesday 1-3pm, Thursday 2-4pm, Other times/days by appointment
|Class Hours:||Chambers 115, Tuesday/Thursday, 10-11:45am|
|Lab Hours:||Baun 214 (Cisco Networking Lab), Tuesday 2-4:50pm|
COMP 53 (Data Structures) and ECPE 170 (Computer Systems and Networks). Junior or senior standing.
When enrolling in this course, you should already understand the basics of binary numbers, digital electronics, and serial and parallel digital communications. Further, you should be comfortable programming in a high-level language such as C, C++, or Java and understand the basics of loops, arrays, structures, pointers, and function calls.
No textbook is required. The course is based loosely on Computer Networking: A Top-Down Approach by Kurose & Ross
http://pacific.rsmart.com (Sakai site only for homework turn-in)
Computer Networks and the Internet. LAN and WAN architectures. Packet switched networks and routing. The 7-layer OSI model and Internet protocol stack. Socket programming and client/server systems. Wireless. Security. Includes laboratory.
The main goal of this course is to give you a thorough knowledge of computer networks - what they are, how they work, how to design, build and configure them, and how to ensure their security.
You will have many different opportunities to gain this knowledge through:
- Hands-on laboratory exercises using commercial routers and switches
- Programming projects where you implement networked applications from scratch
- Homework assignments
- Class lectures and discussions
After taking this course, you should be able to:
- Briefly describe the history of the Internet
- Demonstrate a basic knowledge of binary, decimal, and hexadecimal number systems
- Describe the key responsibilities of Internet organizations such as the IETF, ICANN, and ARIN.
- Explain the standard network taxonomy of circuit-switched versus packet-switched networks, and explain how the modern Internet fits into this taxonomy.
- Say how many bits are in an IP address, in a port number, and in a MAC address.
- Identify a network as Class A, B, or C, given an IP address and a network mask.
- Convert a classless (CIDR) network address (e.g. 192.168.0.0/24) to its IP address/mask equivalent (e.g. 192.168.0.0 255.255.255.0) and vice versa.
- Describe and compare the basic operation of hubs, switches, and routers.
- Name the address (MAC, IP, or port) that switches, computers, and routers use to make decisions.
- Implement a networked application using standard Berkeley sockets.
- List the 3 non-routable address spaces and explain what makes them non-routable.
- List the range of port numbers that have been reserved for servers.
- List the port numbers associated with common services, such as SNMP, FTP, SSH, Telnet, SMTP, DNS, HTTP, POP, NetBIOS, HTTPS, and Windows Terminal Server.
- Explain the difference between a server and a client.
- List the 3 most important pieces of information obtained via the DOS ipconfig and the Linux ifconfig commands.
- Describe the operation of DHCP (Dynamic Host Configuration Protocol).
- Describe the operation of ARP (Address Resolution Protocol).
- Explain the purpose of the DOS tracert and Linux traceroute commands, and explain how the traceroute program works.
- Name and list the major functions of each layer of the 5-layer Internet protocol stack.
- Name and list the major functions of each layer of the 7-layer ISO model.
- Describe and compare the operation of, and the services provided by, connection-oriented transport (TCP) and connectionless transport (UDP).
- Describe the opening and closing of a TCP communication channel (socket), focusing on the handshake process and the header flags involved.
- Match header fields to their purpose and to the protocol (IP, TCP, UDP, Ethernet), that uses them.
- Describe how the contents of protocol header fields can be used to fingerprint operating systems.
- Describe the operation of NAT (Network Address Translation).
- Describe the operation of DNS (Domain Name Service)
- Explain how DNS resolves a URL when the corresponding IP address is known only by the corresponding authoritative name server.
- Describe the encapsulation involved in the creation of an Ethernet frame.
- Name the five main points of attack to which networks can be vulnerable and describe the main ways in which attackers exploit each vulnerability.
- Describe the operation of an email communication channel, identifying when and why each email protocol (POP, SMTP, and IMAP) is used.
- Name the interfaces (e0/0, fa1/1, etc.) of a typical Cisco router, given a description of the back of the router and the router's operating bandwidth.
- Name and describe the purpose for key fields in an Ethernet frame.
- Describe the data encoding standard used by Ethernet.
- Describe the basic operation of CSMA/CD.
- Describe and compare vector-distance and link-state routing algorithms.
- Describe and compare RIP and OSPF routing.
- Describe the movement of a ping (both the request and reply) through a LAN, identifying how far each will get, given a network architecture and specific static routing and/or dynamic routing scenarios.
- Describe the operation of IPv6 and contrast its packet header format again IPv4
- Describe and compare the fundamentals of 3G, WiFi, GSM, and WiMAX.
- Describe the security issues involved with using WiFi, and compare WEP and WPA.
- Describe how SSL provides for secure communications over the Internet.
- Describe how firewalls, IDS, and other tools improve computer and network security.
With regards to the lab and the lab practical exam, you should be able to:
- Identify the cable type (serial, straight-through, or cross-over) used in each link of a given network.
- Log into and use a Linux VNC server.
- Use puTTY to log into and use an SSH server.
- Use Wireshark to monitor the operation of a computer or network.
- Use Nmap to scan a network to determine its open ports and the IP addresses it uses.
- Configure a Windows PC and a Linux PC to operate in a given LAN architecture.
- Configure a router to operate in a given LAN architecture, using static routing.
- Configure a router to operate in a given LAN architecture, using RIP to implement dynamic routing.
- Configure a switch to have multiple VLANs.
- Configure a firewall in a router.
Grades for the course are assigned on the scale below:
Your course grade is based on the following items:
- Homework (worth 18%)
- There will be six homework assignments throughout the semester. Each assignment will be worth equal weight.
- Programming Projects (worth 40%)
- There will be three group programming projects throughout the semester. Past programming projects have included an HTTP web client (similar to the ‘wget’ utility) and an HTTP web proxy server.
- Exams (worth 30%)
- There will be a midterm written exam (worth 10%), a final written exam (worth 10%), and an final "lab practical" demonstrating familiarity with lab concepts (worth 10%).
- Labs (worth 12%)
- Hands-on labs will be conducted throughout the semester using the network test-bed in Baun Hall. Each lab will be worth equal weight.
Please note that copies of student work may be retained by the instructor to assess how the learning objectives of the course are met.
The only acceptable excuses for missing an assignment due date, lab, or exam are serious illness, death in the immediate family or important professional activities. Illness or death in the family may require documentation. Excuses for professional activities must be approved by the instructor in advance.
Late assignments will be accepted with a 2% deduction in points for every day late. Late assignments will not be accepted more than 5 days past the deadline. You will have plenty of time to do assignments, but only if you start when they are assigned.
Academic Dishonesty / Honor Code
Collaborative work is encouraged. This includes students working together on problem sets, planning solution strategies, and helping each other to debug programs. Collaboration must stop short of copying the program code, output, or description that you submit. You may not directly copy the work of another student. It is your responsibility to ensure that the work you submit is an honest representation of your own understanding of the material. Violations of the University Honor Code include:
- Copying program code or homework assignments from another student or presenting someone else's work as one's own.
- Misrepresentation of a program's output or behavior, such as modifying a program's output with a text editor.
- Giving or receiving information during an exam or using unauthorized resources during an exam.
Cases of academic dishonesty will not be tolerated. On a first offense, the student will be given a written warning and a grade of zero for the work in question. On a second offense, notice will be sent to the student's academic advisor, the Dean of the School of Engineering and Computer Science and the Dean of the student's own school, and the matter will be turned over to the Office of Student Life for resolution.
Students with Disabilities
Any student with a physical disability or with a learning disability needing accommodations should register with the Office of Services for Students with Disabilities, in Bannister Hall. The office will assist with any needed accommodations. If you have questions or wish to discuss your disability, please feel free to see me directly.
The University of the Pacific does not discriminate in the administration of any of its educational programs, admissions, scholarships, loans, athletics, or other University activities or programs on the basis of race, color, national and ethnic origin, handicap, sexual orientation or preference, sex or age.