Computer Networks I - Fall 2015

advertisement
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
Download