| 1. Introduction to TCP/IP
- TCP/IP and OSI Reference Model
- Network Issues
- Link Layer Protocols
- Network Layer Protocols
- Transport Layer Protocols
- Application Protocols
2. Networking Tools
- ping, traceroute, ifconfig, netstat, dig, arp, nslookup,
route, telnet, tcpdump, iptraf
3. Linux Programming Environment
- Editor & Editing Evironment
- Compiler (gcc)
- Debugging
- Tracing
- Makefile
4. Basic Socket Programming (3hrs)
- Sockets Introduction
- Basic TCP Sockets & Client-Server Communications
- Basic UDP Sockets
- Signal handling
5. I/O Multiplexing
- Blocking I/O Model
- Nonblocking I/O Model
- Signal Driven I/O Model
- Asynchronous I/O Model
- select & poll Functions
6. Advanced Sockets
- inetd & xinetd Superserver
- Advanced I/O Functions
- Socket Options
- Unix Domain Sockets
- Nonblocking I/O
- ioctl Operation
- Broadcasting
- Multicasting
- Out-of-Band Data
7. Multithreaded Socket Programming
- POSIX Thread Functions
- Thread Synchronization: Mutex & Condition Variable
8. Raw Sockets
- Raw Socket Creation
- Raw Socket I/O
- Raw Socket Example: PING Program
9. Datalink Access
- BPF: BSD Packet Filter
- DLIP: Data Link Provider Interface
- SOCK_PACKET (for Linux)
- libpcap: Packet Capture Library
10. Client-Server Design Issues: C10K Problem, etc
- Client-Server Design Alternative: pre-forking, pre-threaded
- C10K Programs
11. Real Life Example: A Simple Web Server Walkthrough
|