Computer Networks

Dr. Andrei Panu

andrei.panu - at - | andrei.panu - at -

Week 1 (27 September-01 October 2021)

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

Week 2 (04-08 October 2021)

Laboratory: Process Management & Inter-process Communication via Signals

Resources: 8 Linux commands for effective process management | Performance Tuning Using Linux Process Management Commands | Linux System Programming: Processes | Linux Standard Signals | The Real Reason to not Use SIGKILL

Week 3 (11-15 October 2021)

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 (18-22 October 2021)

Laboratory: Communication among processes using socketpair()

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

Week 5 (25-29 October 2021)

Laboratory: Homework 1 evaluation

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

Week 6 (01-05 November 2021)

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 (08-12 November 2021)

Laboratory: TCP/IP concurrent server implementation

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

Week 8 (15-19 November 2021)

Discussions about projects and individual work

Resources: Solutions for creating GUIs

Week 9 (22-26 November 2021)

Laboratory: I/O multiplexing using select()

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

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