0% found this document useful (0 votes)
6 views7 pages

Network Programming - Course Handouts

The document outlines the course structure for a Network Programming course at the Birla Institute of Technology & Science, Pilani, authored by Prof Neena Goveas. It includes course objectives, teaching methodology, a modular content structure, learning outcomes, and lab work details. The course aims to equip students with the skills to design and develop network-aware applications using Unix systems and various networking APIs.

Uploaded by

pranav r nair
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views7 pages

Network Programming - Course Handouts

The document outlines the course structure for a Network Programming course at the Birla Institute of Technology & Science, Pilani, authored by Prof Neena Goveas. It includes course objectives, teaching methodology, a modular content structure, learning outcomes, and lab work details. The course aims to equip students with the skills to design and develop network-aware applications using Unix systems and various networking APIs.

Uploaded by

pranav r nair
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

BIRLA INSTITUTE OF TECHNOLOGY & SCIENCE,

PILANI
WORK INTEGRATED LEARNING PROGRAMMES
Digital Learning
Part A: Content Design

Course Title Network Programming

Course No(s)

Credit Units 3

Credit Model

Course Author Prof Neena Goveas

Version No 0.1

Date Last updated on 17/1/2018

Course Objectives

No Course Objective

CO1 Systematically introduce the programming aspects so that student can make best use
of underlying operating system capabilities to achieve end-to-end network
communication.

CO2 Introduce Network API in Unix Systems and prepare students to design and develop
network-aware applications.

CO3 To study the design and implementation aspects of various approaches to client and server
design

CO4 To prepare students to design and develop robust and scalable client-server systems.

Teaching methodology
The Flipped based teaching methodology to be used:
a) Lectures: Recorded
b) Lab Exercises: Live
Text Book(s)

T1 Stevens, R.W., “Unix Network Programming, Vol-I Networking


APIS : Sockets and XTI”, Prentice- Hall of India, 3 rd Edition, 2004

Reference Book(s) & other resources

R1 The Linux Programming Interface: Linux and UNIX System


Programming Handbook by Michael Kerrisk, No Starch Press ©
2010

([Link]

Modular Content Structure

1. Overview of Linux/Unix System API


1.1 Functions of Linux Kernel
1.2 Introduction to System Call Interface
1.3 Basic Commands
2. Process Management
2.1 File I/O & I/O Buffering
2.2 Process Management - process creation, termination,
execution, child monitoring
2.3 Signals - Useful signals
2.4 File Permissions, Process Credentials
2.5 Process Groups, Sessions and Job Control
2.6 Daemons
2.7 Introduction to Pthreads - creation, termination, and
synchronization issues
3. Inter Process Communication within OS
3.1 Pipe
3.2 FIFO
3.3 Message Queues
3.4 Semaphores
3.5 , Semaphores
4. Network Process Communication
4.1 Overview of Transport Layer (TCP, UDP)
4.2 Socket Programming - Sockets API
4.3 Socket Programming - Implement TCP Client & Server
4.4 Socket Programming - Implement UDP Client & Server
4.5 Socket Programming - Building reliable UDP applications
4.6 Socket Programming - Domain Name Conversion
5. Network Process Communication - Advanced
5.1 Advanced I/O Functions
5.2 Raw Sockets - bypassing transport layer and access
datagrams of select protocols directly at IP layer
6. I/O Models
6.1 TCP client & server examples
6.2 Application layer issues
7. Client-Server Design
7.1 Raw Sockets - Introduction
7.2 Raw socket examples: ping, traceroute
Learning Outcomes:

No Learning Outcomes

LO1 With the clear understanding of approaches to design and implement network-
aware applications, students will be able to make design choices among various
approaches to network communication.

LO2 Student will be able to leverage the knowledge gained about API offered by
Unix-like systems to implement network applications.

LO3 Student will be able to gain knowledge about various approaches to client and
server design and will be able to make right choice for a given context.

Experiential learning components


1. Lab work:
a. Lab Infrastructure Needed: Ubuntu operating system; Free tools such
as gcc compiler, gdb debugger, make tool.
b. Number of Lab sessions: 8
2. Work integration:
Part B: Course Handout

Academic Term

Course Title Network Programming

Course No

Lead Instructor

Contac List of Topic Title Topic # Text/Ref


t Hour (from content structure in Part A) (from Book/ext
content ernal
structure resource
in Part A)

1 Overview of Linux/Unix System API 1.1, 1.2 R1: Ch1 & Ch2
 Functions of Linux Kernel
 Introduction to System Call
Interface
 Basic Commands

2 Overview of Linux/Unix System API 1.3, 1.4 R1: Ch 4, Ch5,


Ch6, Ch24
 File I/O & I/O Buffering
 Process Management - process
environment, process creation

3 Overview of Linux/Unix System API 1.4, 1.5 R1: Ch 25,


Ch26, Ch27
 Process Management - process
R1: Ch20
termination, execution, child
monitoring
 Signals – Useful signals
4 Overview of Linux/Unix System API 1.6-1.8 R1: Ch22.8
R1: Ch9
 File Permissions, Process
R1: Ch34,
Credentials Ch37
 Process Groups, Sessions and Job
Control
 Daemons

5 Overview of Linux/Unix System API 1.9 T1: Ch29/ R1:


Ch29, Ch30
 Introduction to Pthreads - creation,
termination, and synchronization
issues

6 Inter Process Communication within OS 2.1-2.2 R1: Ch44


 Need for IPC
 Pipe & FIFO

7 Inter Process Communication within OS 2.3 R1: Ch45-


Ch49, 51
 Message Queues
 Semaphores
 Shared Memory

8 Network Process Communication 3.1-3.2 T1: Ch2


 Review of Transport Layer
Functionalities (TCP, UDP)
 Sockets

9 Network Process Communication 3.2-3.3 T1: Ch3 - Ch5


 Sockets API
 TCP client & server implementation

10 Network Process Communication 3.4 T1: Ch7


 Implement UDP Client & Server

11 Network Process Communication 3.5-3.6 T1: Ch22


 Building reliable UDP applications
 Domain Name Conversion

12 Network Process Communication 3.2-3.3 T1: Ch3 - Ch5


 TCP client & server examples
 Application layer issues

13 Network Process Communication 3.2-3.3 T1: Ch3 - Ch5


 I/O Multiplexing
 I/O models

14 Network Process Communication 3.2-3.3 T1: Ch3 - Ch5


 Blocking server select()
 Non-blocking server
 Pre-threaded server

15 Advanced Network Process 4.3 T1: Ch28


Communication
 Raw Sockets - Introduction
 Raw socket examples: ping,
traceroute

16 Revision and Lab

Detailed Plan for Lab work/Design work

La Lab Objective Lab Content


b Sheet Reference
No Access
URL

1 Basic Linux commands TBD

2 Processes, memory layout, environment variables TBD

3 Signals TBD

4 Pipes TBD

5 Shared memory TBD

6 IO Multiplexing, Pthreads TBD


7 TCP and FTP TBD

8 UDP sockets, TBD

9 DNS TBD

Work integration: Detailed plan

No Activity description

Project work: None

You might also like