| Class | Date | Topics covered in class |
| 1 | Wed 9/3 | Getting started: syllabus, grading policy, course outline, online services,
submission of assignments, internet nuts and bolts, the network edge, client
and server programs.
|
| 2 | Fri 9/5 | The network core, circuit and package switching, TDM
and FDM approaches to bandwidth sharing, physical media, statical
multiplexing, store-and-forward transmission principle, computing the amounts
of time for data transmission, packet switching vs. message switching vs.
circuit switching, routing and forwarding. ISPs and Internet backbones,
classification of networks (Tier I, Tier II, etc.), package processing at
nodes, sources for package delays at nodes, loss of packages, throughput of
networks.
|
| 3 | Mon 9/8 | Protocol layers, analogy between network and airline
transportation protocols, Internet protocol stack, ISO/OSI model,
encapsulation. Principles of network applications, Client/Server vs. P2P
model.
|
| 4 | Tue 9/9 | Lab 1: Wireshark INTRO lab |
| 5 | Wed 9/10 | Processes and ports, application-level protocol
defines, intro to HTTP protocol, computing the response time, HTTP headers,
the HTTP GET request, HTTP status codes, HTTP request and response formats,
programming server-side applications in Java.
|
| 6 | Fri 9/12 | Programming client HTTP applications in Java, working
with GET method.
|
| 7 | Mon 9/15 | Working with POST and HEAD methods, socket
programming in Java, working with TCP sockets.
|
| 8 | Tue 9/16 | Working with UDP sockets, the NTP protocol.
|
| 9 | Wed 9/17 | Working with cookies, conditional GET request,
cashing HTTP requests by i clients.
|
| 10 | Fri 9/19 | The FTP protocol, the SMTP protocol, 7-bit encoding
and decoding of data, intro to DNS.
|
| 11 | Mon 9/22 | DNS services, recursive and iterative DNS querries,
DNS records and request/responce structure, handling DNS distributed
database.
|
| 12 | Tue 9/23 | Wireshark HTTP and DNS labs, Intro to P2P
applications, file distribution problem and approaches to it, review of
Chapter 2.
|
| 13 | Wed 9/24 | Multiplexing and demiltiplexing connectionless and
connection based sockets, the UDP protocol, computing checksums, principles
of reliable data transfer, class Packet, FSM 1.0 receiver,
FSM 2.0 for data transfer with errors, the ACK and NAK signals.
|
| 14 | Fri 9/26 | Implementation of FSM 2.1 in Java, FSM 2.2 for handling package and ACK
losses, replacing NACK with ACK, intro FSM v3.0.
|
| 15 | Mon 9/29 | Pipelined package sending, the Go-Back-N protocol.
|
| 16 | Tue 9/30 | Intro to selective Repeat protocol, comparison of Go-Back-N and Selective
Repeat protocols.
|
| 17 | Wed 10/1 | Intro to TCP protocol, TCP header, sequence and ack numbers.
|
| 18 | Fri 10/3 | RTT estimation and timeout, analysis of the
simplified TCP, Fast retransmit.
|
| 19 | Mon 10/6 | TCP flow control, TCP connection setup and termination, TCP congestion
control.
|
| 20 | Tue 10/7 | Intro to the network layer services, comparison of VC and datagram networks.
|
| 21 | Wed 10/8 | Intro to routers hardware.
|
| 22 | Fri 10/10 | The datagram format IPv4 addresses, subnets, hierarchical structure of IPv4
addresses.
|
| 23 | Mon 10/13 | DHCP protocols, Network Address Translation (NAT), ICMP protocol, IPv6
protocol and headers.
|
| 24 | Tue 10/14 | Midterm Exam I (in-class part)
|
| 25 | Wed 10/15 | More details on Network Address Translation (NAT),
ICMP protocol, IPv6 protocol and headers, IPv6 tunneling.
|
| 26 | Fri 10/17 | Characterization of routing
algorithms, graphs representation in software, the LS routing algorithm and
its running time.
|
| 27 | Mon 10/20 | Fall break
|
| 28 | Tue 10/21 | Fall break
|
| 29 | Wed 10/22 | Implementation of the LS algorithm, priority queues and tree balancing, intro
to dynamic programming routing methods.
|
| 30 | Fri 10/24 | The Distance Vector distributed algorithm and its implementation.
|
| 31 | Mon 10/27 | Comparison of LS and DV algorithms, Hierarchical routing, overview of RIP and
OSPF algorithms, intro to broadcasting in networks.
|
| 32 | Tue 10/28 | Kruskal algorithm for constructing minimum weight spanning trees.
|
| 33 | Wed 10/29 | Reverse trees broadcasting, multicasting, Steiner trees, pruning and
flooding, review of Chapter 4, intro to the link layer and
its services.
|
| 34 | Fri 10/31 | Error correction and detection techniques.
|
| 35 | Mon 11/3 | The CRC algorithm,
Intro to multiple access protocols, time sharing and
bandwidth sharing, seraparting frequencies with digital signal processing,
TDMA and FDMA methods, random access protocols, slotted Aloha protocol.
|
| 36 | Tue 11/4 | Efficiency of the original Aloha protocol, the CSMA approach, Ethernet
CSMA/CD algorithm.
|
| 37 | Wed 11/5 | The token ring protocols, comparison of MAC
protocols, link level addressing, the ARP protocol.
|
| 38 | Fri 11/7 | Connecting hosts to the Internet by using hubs and
switches, summary of network protocols operation.
|
| 39 | Mon 11/10 | Review of Section 5, wireless world challenges,
relashinship between SNR and EBR.
|
| 40 | Tue 11/11 | CDMA encoding and decoding, association of wireless channels,
advanced features of 802.11 (WiFi) protocol.
|
| 41 | Wed 11/12 | Cellular systems generations, addressing and routing principles to mobile users, direct and indirect routing, mobile IP handling, handoff algorithm.
|
| 42 | Fri 11/14 | Installing required features in Silicon Labs Simplicity Studio, overview of
Simplicity Studio configuration, creating a sample project.
|
| 43 | Mon 11/17 | Configuring pins for I/O operation, retargeting output to terminal console, Blink-A-LED project.
|
| 44 | Tue 11/18 | Configuring bootloader for Bluetooth projects,
working with GAP: advertizing channels, modifying server name, setting scan reports, setting advertisement parameters, indicate connection with a LED.
|
| 45 | Wed 11/19 | Working with GATT and profile manager, creating a custom profile, services and characteristics, reading and writing characteristic values, processing software timer events.
|
| 46 | Fri 11/21 | Working with characteristic of types USER and HEX, sending external interrupts to the Bluetooth stack, reading/writing values to/from GATT database.
|