U306b: Linux Network Programming - 4 Days
Who Should Attend:
System programmers, application programmers, computer science students, and other IT professionals who wish to write systems and client-server networking programs in the Linux environment.
Prerequisites:
Participants who do not have any working knowledge of Linux are advised to enrol in U101: Introduction to Linux. Participants can also acquire the necessary knowledge in network programming by enrolling in U306a: Linux System Programming.
Objectives:
This module is aimed at familiarising participants with network programming
in Linux. They will be exposed to various network programming models and packages,
such as Berkeley Sockets, STREAMS, Transport Layer Interface (TLI), and Remote
Procedure Calls (RPC). Various protocols and concepts of TCP/IP such as TCP,
UDP, PING, TELNET will be explored. Socket programming includes client and server
side startup, termination, I/O multiplexing and data transfer. Advanced features
like daemon processes, nonblocking I/O, and broadcasting are also included.
Hands-on laboratory sessions will be provided.
Participants are expected to have a prior working knowledge of Linux and programming
in C, and preferably Linux systems programming.
At the end of this module, participants are expected to understand and write
Linux client-server network programmes, and appreciate the networking features
available in Linux.
Contents:
Networking Objectives: Network Goals and Applications; Network
Structure and Architectures; Layered Protocols; OSI Reference Model Objectives;
Linux 4-Layer Model; Linux Intercrosses Communication.
Berkeley Sockets: Linux Domain Protocols; Socket Addresses; Socket System Calls; Reserved Ports Stream Pipes; Socket Options; Asynchronous I/O; I/O Multiplexing.
STREAMS: Motivation; Basic View of A Stream; Benefits of Stream; Building A Simple Stream; Inserting modules Into A Stream; Asynchronous I/O; Clone able Devices; Multiplexed Configurations.
Transport Layer Interface (TLI): Basic Concepts; Modes of Service; Event Handling; Data Transfer; Asynchronous Execution Mode; Read/Write Interface.
Remote
Procedure Calls (RPC): RPC Model; RPC Interface; rpcbind; rpcgen
Programming (System V); External Data Representation (XDR). Practical Programming
Examples.