Computer Networks

Dr. Andrei Panu

andrei.panu - at - live.com

Week 1 (02-07 October 2023)

Laboratory: Recap knowledge regarding Operating Systems

Resources: Linux Command Line Cheat Sheet (Cheatography) | Linux Commands Cheat Sheet (Red Hat) | Linux Command Reference (FOSSwire) | Bash scripting cheat sheet | Quick Introduction to C Programming | C File I/O through System Calls | C File I/O through Library Functions | Cygwin Project | Windows Subsystem for Linux | IDEs for C/C++ Programming on Linux | DistroWatch

Various info: Explore a Google Data Center (Street View) | Explore a Google Data Center (YouTube) | Microsoft Virtual Datacenter Tour | Digital Tour of an AWS Data Center | Inside the Heart of an IBM Cloud Data Center

Week 2 (09-14 October 2023)

Laboratory: Process Management & Inter-process Communication via Signals

Resources: 8 Linux commands for effective process management | Linux System Programming: Processes | Linux Standard Signals | The Real Reason to not Use SIGKILL

Week 3 (16-21 October 2023)

Laboratory: Inter-process Communication via PIPEs/FIFOs & Duplicate File Descriptors

Resources: Linux System Programming: PIPEs/FIFOs | Duplicate File Descriptors | An Introduction to Linux IPC | An Introduction to Linux IPC (video)

Week 4 (23-28 October 2023)

Laboratory: Communication among processes using socketpair()

Resources: Beej's Guide to Interprocess communication | Debugging Linux Programs

Week 5 (30 October - 04 November 2023)

Laboratory: Homework 1 evaluation

Various info: 29 October 2019: 50 years ago today, the internet was born in Room 3420

Week 6 (06 - 11 November 2023)

Laboratory: TCP/IP implementation (iterative server and a client)

Resources: Beej's Guide to Network Programming | Linux System Programming: Networking | Linux IPv4 Protocol Implementation

Week 7 (13-18 November 2023)

Laboratory: TCP/IP concurrent server implementation

Resources: Linux System Programming: Networking | Beej's Guide to Network Programming | Linux System Calls | Merged Signals (The GNU C Library) | signal-safety | byteorder(3) | endian(3)

Week 8 (20-25 November 2023)

Individual work

Resources: Solutions for creating GUIs

Week 9 (27 November - 2 December 2023)

Laboratory: I/O multiplexing using select()

Resources: Linux System Programming: Nonblocking I/O, select(), and epoll() | poll() vs select() | Nonblocking I/O | epoll() visually explained

Various info: Why do NS RRs appear in two places? | The GHOST Vulnerability | Istoria Internetului in Romania