Week 2: Network programming, socket programming, threads, concurrency control

Delays in networks, protocol layers, application architectures, sockets, threads

Lecture notes:
Network programming - Lecture slides (6 per page)
Recitation notes:
Sockets programming - Recitation slides (6 per page)
Supplemental notes:
Terms with which you should be familiar:

Delays in networks:
Processing delay, queuing delay, transmission delay (L/R), propagation delay, output queue, burstiness, traffic intensity (La/R), packet loss, nodal delay, end-to-end delay

Protocol layers:
protocols, layers, OSI reference model, physical, data link, network, transport, session, presentation, application, frames, datagrams, segments, protocol encapsulation, application architectures, client-server, peer-to-peer, hybrid, self-scalability, client, server, API, loss-tolerant applications, elastic applications, connection-oriented service, connectionless service, throughput, delay, jitter, TCP, transmission control protocol, UDP, user datagram protocol, address, port number

Sockets:
socket, name (bind), Socket vs. ServerSocket vs. DatagramSocket classes, accept,

Threads:
Thread, stack, heap, run, join, worker thread, race condition, synchronized access, system calls: socket, bind, listen, accept, connect.