Computer Science 3357a Computer Networks I - Fall 2015 Questions We'll Explore • What is the Internet, really? • What happens when I visit a web page? • How do we communicate with computers across the world... in seconds? • What happens when networks are overloaded? • How does the network know where to send my data? • How do we build network applications? • ...and more! Topics We'll Cover • Networking Fundamentals • How the Internet is structured • Services offered by the Internet • How data is transferred reliably over unreliable channels • Packet switching vs. circuit switching • Protocols -- lots and lots of protocols! Topics We'll Cover • The OSI and TCP/IP Models • • Computer networks are comprised of a layered architecture: • Each layer provides a specific set of services to the layer above it • Each layer makes use of the layer below it We'll briefly talk about the OSI model (historical), but spend the course examining the layers of the TCP/IP model Topics We'll Cover • Application Layer • Important applications and protocols that we use every day: • HTTP • FTP • SMTP Application Transport Network Link • DHCP • DNS • Peer-to-peer file transfer Physical Topics We'll Cover • Transport Layer • Connection-oriented vs connectionless service Application Transport • Multiplexing and demultiplexing Network • TCP and UDP Link • Reliable data transfer Physical • Congestion control Topics We'll Cover • Network Layer • Virtual circuit vs. datagram networks Application Transport • Components of a router • IP and IP addressing • Routing algorithms • Routing protocols: RIP, OSPF, BGP • Broadcasting and multicasting Network Link Physical Topics We'll Cover • Link Layer Application • Error detection / correction • Multiplexing techniques Transport • Ethernet, ARP Network • MAC addressing • Switches • VLANs Link Physical Topics We'll Cover • Physical Layer • • Physical media Signalling Application Transport Network • Channel capacity Link Physical Topics We'll Cover • Network Programming • Socket programming • TCP and UDP interfaces • Advanced socket options • Programming techniques Prerequisites / Antirequisites You must have taken: • CS 2208a/b • CS 2210a/b • CS 2211a/b You must not have taken: • ECE 4436a/b Knowledge of C programming is assumed. The Standard Fine Print Unless you have either the prerequisites for this course or written special permission from your Dean to enroll in it, you will be removed from this course and it will be deleted from your record. This decision may not be appealed. You will receive no adjustment to your fees in the event that you are dropped from a course for failing to have the necessary prerequisites. Who Am I? Jeff Shantz x@csd.uwo.ca, x = jeff System Administrator Lecturer Office: MC 346 (door in front of the I/O Counter) Former CS 3357 student Course Web Site http://www.csd.uwo.ca/courses/CS3357a Announcements Lecture Notes Assignments Check the site frequently! Textbook Computer Networking: A Top-Down Approach James F. Kurose and Keith W. Ross Pearson, Sixth Edition, 2012 ISBN: 9780132856201 • The textbook is required. • We will be following it closely in lectures. • It is assumed that you are reading the textbook and keeping up with the content being taught in lectures. Lecture Schedule Day Time Room Wednesdays 10:30 - 12:30 MC 105b Fridays 11:30 - 12:30 MC 105b Student Evaluation Component Weight Out* Due* Assignment 1 10% Friday Sept. 18 Friday Oct. 02 Assignment 2 15% Friday Oct. 02 Friday Oct. 23 Assignment 3 15% Friday Oct. 23 Friday Nov. 13 Assignment 4 15% Friday Nov. 13 Friday Dec. 04 Test 10% Friday Nov. 06 Final Exam 35% Final exam period (in-class) * Dates are tentative and subject to change Policies • • To get over 45% in the course • Final exam grade must be at least 45% • Weighted assignment average must be at least 45% To get over 58% in the course • Final exam grade must be at least 50% • Weighted assignment average must be at least 50% Policies • If we have to cancel an assignment • • Remaining assignments will be prorated to add up to 55% Make-up exams or assignments • No make-ups, except for religious reasons • Must have notified me and filed documentation with your Dean's office at least 2 weeks prior. Policies • • If you miss an assignment or exam for any other reason • File documentation with your Dean's office • If they accept it, the weight of the missed deliverable will be shifted to the final exam All assignments are due by 23:59:59 on their respective due dates Assignments • • Assignment 1 • Review your C skills; get a start on the client and server for Hooli Drive. • Get your server talking to Redis to store data about users' files. Assignment 2 • • • Get your client and server communicating over a network. Assignment 3 • Modify your client and server to allow files to be transmitted. • Need to implement reliable file transfer between two systems over an unreliable medium. Assignment 4 • Set up an Amazon EC2 instance, and get your server running on it. • Modify your server to support multiple concurrent connections. Assignments • All assignments must run in the course virtual machine (to be provided by September 18) • Electronic submission via GitHub. Thanks GitHub! • Please be patient with marking • Due to limited TA resources this year, we only have 1 TA for 70+ students • Nearly 300 assignments is a lot of marking! • The TA will do his best to return assignments within 3 weeks. It may not always be possible to get them back before the next assignment is due. We'll do our best. Assignments • Late penalties • All assignments due Fridays at 23:59:59 • Saturday and Sunday count as 1 day; Sunday by 23:59:59 is 1 day late • Maximum 3 days late (by Tuesday) Submitted by Days Late Penalty Friday at 23:59:59 Sunday at 23:59:59 Monday at 23:59:59 Tuesday at 23:59:59 0 1 2 3 0% 4% 8% 16% Extensions will be granted only with valid medical documentation. Exams • • Test • 10% • In class on Friday November 06 Final Exam • 35% • Scheduled by the Registrar during the final exam period Exams • Cheat Sheet • To each exam, you may bring one 8.5" x 11" page • Notes may be written on both sides of the page, but must be hand-written by you in pen or pencil • Any pages generated by a photocopier, computer, or anything other than your own hand will be confiscated at exam time Exams • • Standard rules apply • No calculators or other reference materials • Closed-book • Bring your Western ID Exams are important in this course • Networking is a vast subject -- lots of concepts • Keep up with readings Course Communications • We will post announcements on the course web site • Sometimes it will be necessary to email your @uwo.ca address • You are responsible for checking the web site regularly and keeping enough space free in your email account Getting Help • Feel free to email me • Emailing code is never ok • Check your code into your GitHub repository • Create a GitHub Gist if you are showing me a portion of code, or some output • Provide me with all the information I would need to troubleshoot the problem Getting Help • Feel free to email me • You must be able to demonstrate that you've worked through the problem • • Emailing me each time you run into a problem helps you finish your assignment, but doesn't help you in the long run You must provide a minimum working example and provide instructions on how to build your code Getting Help • Feel free to come see me • Office hours will be Fridays from 13:30 - 15:30, starting next week. • If you can't make it, send me an email and make an appointment • I'm the System Administrator of the department; please come to office hours or make an appointment rather than dropping in Getting Help • Feel free to come see me • Office hours are not a time to sit in my office doing work, asking me questions as you run into problems: ask your question and go away. :) • A big part of learning comes from struggling through a problem. Getting Help • Feel free to come see me • • If you want help with code, you must have either: • Pushed a minimum working example to your GitHub repository • Provided a minimum working example in a private GitHub Gist I will not touch your filthy keyboard, or read code off your tiny screen with its brightness set to 1% because your battery is almost dying. TA To be announced • Question about how your assignment was marked? Email the TA. • All other questions go to me. Questions? • Please review the full course outline on the course web site for full details on course policies and procedures, including: • Academic accommodation for medical illness • Accommodations for accessibility • Ethical conduct • Support services