Computer Science & Software Engineering
CSCI 466
Networks
Fall 2013
Schedule
|
Assignments
|
Exams
|
Resources
|
Course syllabus
|
Moodle
MIDTERM INFORMATION
Exam details:
50 minutes, during lecture on Monday, November 4th, 10am
No makeups will be considered without an official University excuse
Closed book, closed notes
You are allowed a one-sided 8 1/2 x 11 note sheet, hand-written
No electronic devices except for a calculator
Material covered:
Computer Networking: A Top-Down Approach, Chapters 1-3
Review exercises from Chapter 1-3 of book (exercises listed on schedule page)
Lectures 0-17
Labs and programming assignments through 11/1
Detailed topics:
What's a protocol
Network edge vs. network core
Access networks: DSL, cable, fiber to the home, ethernet, WiFi, 3G, satellite
Calculating transmission delay using packet size and bandwidth
Physical transmission media: twister pair, coax, fiber, terrestrial radio, satellite, microwave
Packet switching and store-and-forward
Routing vs. forwarding
Circuit switching vs. packet switching
FDM vs. TDM
Structure of Internet: access ISPs, regional ISPs, tier 1 ISPs, content providers, Internet exchange points (IXP)
Network delays: processing, queueing, transmission, propagation
Causes of packet loss
Latency, RTT, jitter
Protocol layers: application, transport, network, link, physical
OSI model vs. 5-layer model
How payload is encapsulated by layers
Network attacks: malware, spyware, (distributed) denial of service, packet sniffing, IP spoofing
Internet and web history
Client-server vs. Peer-to-Peer (P2P) architecture
Socket abstraction for process-to-process communication
Addressing host endpoint using IP address plus port number
Desired services: data integrity, timing, throughput, security
Which desired services do TCP and UDP provide?
Components of the web: URLs, HTML, HTTP
HTTP request-response protocol, stateless, TCP on port 80
Format of HTTP request and response messages
Common HTTP request methods: GET, POST
Common HTTP headers: Host, Content-Length, Last-Modified, Set-Cookie, Cookie, If-Modified-Since, ETag, If-No-Match
Common HTTP response codes: 200, 304, 404
HTTP non-persistent and persistent connections, pipelining
HTTP conditional GETs
Where HTTP caching may occur
Be able to read and understand Python socket programs
Format of email, header with name:value pairs and body
What MIME is, why is it needed, basic content types
Base64 encoding of non-text data
HTTP vs. SMTP, pull vs. push protocol
SMTP, ASCII protocol on TCP port 25
Why POP3/IMAP are needed in addition to SMTP
Advantages/disadvantages POP3 vs. IMAP
FTP, TCP port 20/21, separate control and data connection channels
SSH, TCP port 22, why better than telnet?
SSH, connection setup process, use to tunnel insecure traffic
DNS, UDP on 53, mapping of domain name to IP address
DNS name resolution process, recursive/iterative queries, resource record
DNS caching, negative caching, cache poisoning
Peer-to-Peer (P2P), centralized/pure/hybrid
Performance advantage of P2P versus client-server
BitTorrent process, joining torrent, sharing chunks, tit-for-tat
Distributed Hash Tables (DHT), why they might be useful for P2P
How a circular DHT works, shortcut links
What transport layer does, major protocols, TCP vs. UDP
Multiplexing/demultiplexing key for UDP and TCP
Advantages of UDP, fields in header, checksum calculation
Reliable data transport, finite state machine (FSM) notation
Building blocks of reliable transport: acknowledgements, error detection, sequence numbers, timers
Stop-and-wait protocol using alternating bit sequence numbers, why its slow
Pipelined reliable data transport, Go-Back-N and Selective Repeat
Transmission Control Protocol (TCP), reliable byte stream
TCP: buffering at sender and receiver, segment header, Maximum Segment Size (MSS)
TCP: sequence number, ACK number, cumulative ACKs
TCP: adaptive timeout calculated from sampled RTTs
TCP: use of receive window field for flow control, window probes
TCP: Silly Window Syndrome, why it might happen, how to prevent it
TCP: Overcoming limited size of sequence number and receive window fields
TCP: Three-way handshake, SYN flooding attack and how to prevent
Causes of network congestion
Basic approaches to congestion control, end-to-end versus network-assisted
Additive increase, multiplicative decrease (AIMD) and why it leads to fairness
TCP: Sender's use of congestion window
TCP congestion control: slow-start, congestion avoidance, fast retransmission, fast recovery
How people can cheat to get around TCP's congestion control, how network might still provide fairness
TCP splitting: why you might need, how it works
Page last updated: December 18, 2013