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

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

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