BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division

Similar documents
Foundations of Python

LESSON PLAN. Sub. Code & Name : IT2351 & Network Programming and Management Unit : I Branch: IT Year : III Semester: VI.

UNIT I Linux Utilities

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) DUNDIGAL, HYDERABAD

LINUX INTERNALS & NETWORKING Weekend Workshop

CIS 408 Internet Computing (3-0-3)

CS 470 Spring Distributed Web and File Systems. Mike Lam, Professor. Content taken from the following:

CS 470 Spring Distributed Web and File Systems. Mike Lam, Professor. Content taken from the following:

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

CL020 - Advanced Linux and UNIX Programming

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF MCA QUESTION BANK UNIT 1

Cleveland State University Department of Electrical and Computer Engineering. CIS 408: Internet Computing

UNIT I Linux Utilities and Working with Bash

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur QUESTION BANK

Contents. Part 1. Introduction and TCP/IP 1. Foreword Preface. xix. I ntroduction 31

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

Lecture 1. Course Mechanics. Administrative Items. Grading. Programming Assignments. Homework Assignments

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

Faculty of Science & Information Technology

NETWORK PROGRAMMING AND MANAGEMENT 1 KINGS DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

Collaboration of Tasks

ITM DEVELOPMENT (ITMD)

L1: Introduction. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

CSCI 6312 Advanced Internet Programming

Unix Network Programming Volume 1 The Sockets Networking Api 3 E

Study Abroad Programme

Data Communications and Networks Spring Syllabus and Reading Assignments

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Communication Networks

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems

IBM AIX Operating System Courses

Syllabus CSCI 405 Operating Systems Fall 2018

CSE 333 Lecture server sockets

02267: Software Development of Web Services

Department of Computer Science and Technology

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API

02267: Software Development of Web Services

Academic Course Description

6. Correspondence relationship between Educational goals and Course goals

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Web Client And Server

CMPSC 497 Attack Surface

KINGS COLLEGE OF ENGINEERING 1

SIR C.R.REDDY COLLEGE OF ENGINEERING, ELURU DEPARTMENT OF INFORMATION TECHNOLOGY LESSON PLAN

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, PILANI PILANI CAMPUS Instruction Division

ITT Technical Institute. SD3240T Creating Websites in the LAMP Environment Onsite and Online Course SYLLABUS

COS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Process. Program Vs. process. During execution, the process may be in one of the following states

S.No Description 1 Allocation of subjects to the faculty based on their specialization by the HoD 2 Preparation of college Academic Calendar and

Linux Driver and Embedded Developer

Course Outline (1) Fundamentals of Computer Networks ECE 478/578. Introduc)on. Fundamentals of Computer Networks (ECE 478/578)

Distributed Systems

Advanced Web Programming (17MCA42)

Faculty of Sciences and Information Technology

Light & NOS. Dan Li Tsinghua University

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322

THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY

Lecture Plan-1. Contents Methodology Time Queries Remarks. Question/ Answers. Discussion. Chalk Board. &Discussion. Discussion 10

- Knowledge of basic computer architecture and organization, ECE 445

Technical Brief. Network Port & Routing Requirements Active Circle 4.5 May Page 1 sur 15

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2

CSC 634: Networks Programming

ECE 4450:427/527 - Computer Networks

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

20486-Developing ASP.NET MVC 4 Web Applications

Processes and Threads

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING

RPC Paradigm. Lenuta Alboaie Andrei Panu

Data Communication & Computer Networks MCQ S

DSX - Digital Systems Using Embedded Linux

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science

Community Enterprise Operating System (CentOS 7) Courses

Operating Systems (ECS 150) Spring 2011

Java EE 6: Develop Business Components with JMS & EJBs

COS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University

Computer Networks SYLLABUS CHAPTER - 2 : NETWORK LAYER CHAPTER - 3 : INTERNETWORKING

Course specification

FIT3056 Secure and trusted software systems. Unit Guide. Semester 2, 2010

CSC 443: Web Programming

Chapter 4: Networking and the Internet. Figure 4.1 Network topologies. Network Classifications. Protocols. (continued)

Chapter 4: Networking and the Internet

EEC-484/584 Computer Networks

Developing Applications with Java EE 6 on WebLogic Server 12c

CS 498RK FALL RESTFUL APIs

COURSE DESCRIPTION. 4. Preconditions (if necessary) 4.1 Of Curriculum Previous Courses Attended: Operating Systems 4.2 Of Skills

Oracle WebLogic Server 11g: Administration Essentials

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Developing Microsoft Azure and Web Services. Course Code: 20487C; Duration: 5 days; Instructor-led

Edge Foundational Training

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad INFORMATION TECHNOLOGY COURSE DESCRIPTION FORM

CTP203 Operating Systems Syllabus

Mastering Linux. Paul S. Wang. CRC Press. Taylor & Francis Group. Taylor & Francis Croup an informa business. A CHAPMAN St HALL BOOK

A Distributed Virtual Computer Security Lab with Central Authority

SERVICE API SPECIALIST Certification. Service API Specialist

GOPALAN COLLEGE OF ENGINEERING AND MANAGEMENT Department of Computer Science and Engineering COURSE PLAN

ITEC 350: Introduction To Computer Networking Midterm Exam #2 Key. Fall 2008

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 11

Lecture 5 Overview! Last Lecture! This Lecture! Next Lecture! I/O multiplexing! Source: Chapter 6 of Stevens book!

Transcription:

SECOND SEMESTER 2017-2018 Course Handout (Part II) Jan 08, 2017 In addition to part-i (General handout for all courses appended to the timetable) this portion gives further specific details regarding the course: Course Number & Title Instructor In-Charge Course Website : IS F462Network : HARI BABU K :https://sites.google.com/a/pilani.bits-pilani.ac.in/network-programming/ 1. Scope and Objective of the Course This course is intended for software engineers involved in developing, maintaining and supporting distributed and network applications in UNIX environment. The course teaches about system programming necessary for server and client programming. It teaches programming aspects of low-level protocol TCP, UDP, raw sockets, data link level access, multicast, broadcast etc. It covers the recent developments in web programming and web server technologies. It will also teach about distributed programming aspects like RPC, web services and Protocol Buffers. Course structure involves interesting assignments and labs to strengthen the concepts. 2. Text Book T1. W. R. Stevens,UNIX Network, Vol I, Networking APIs: Sockets and XTI, Pearson Education, 3rd Edition. T2. W.R.Stevens, UNIX Network, Interprocess Communication, Vol II Pearson Education, 2nd Edition. 3. Reference Books R1. The Linux g Interface: Linux and UNIX System Handbook by Michael Kerrisk, No Starch Press 2010 (http://library.books24x7.com/toc.aspx?bookid=41558) R2. W.R. Stevens, Advanced in the UNIX Environment, Pearson Education, 2008. 4. Course Plan: a. Modules Module Theme Learning Objectives

I System To understand and practice I/O, process and signal management in Linux systems To understand and practice Inter-process communication (IPC) mechanisms II Client & Server Design To understand various I/O models and their applications. To understand various client and serverr designs and their performance. To understand how to create a daemon. III Web Servers & Web Applications To understand architectures of contemporary Web Servers and their scalability To understand client-side scripting. To understand web application frameworks on server-side IV Socket - TCP,UDP To understand and practice Socket API for building TCP/UDP based client-server. To understand API required to access DNS. To understand the configuration level options available for Socket API To understand protocol design and implementation. V Socket - Low level Tounderstandand practice the applicatio on of raw sockets and link level access API. Tounderstandhowtodo multicast and broadcast. Tounderstand Unix domain sockets VI VII Distributed Security Tounderstandthe concept of distributed d programming and how it is different from socket programm ming To understand RPC, XML-RPC, JSON-RPC, SOAP To understand how to create Web services To understand data exchange formats such as XDR and protocol buffers To understand security issues in programming multi-user UNIX server systems. To understand security attacks in network-facing servers.

Lectures 1 2-4 Module 5-7 I 8 9-11 12-13 I IV Unix History; Fundamental Concepts; System Concepts; Unix File I/O; Standard I/O Library; fcntl; ioctl; Unix Processes; Program Execution; Error Handling; Unix Signals Unix IPC: Pipes, FIFOs, System V Message queues, System V Semaphores, System V Shared Memory, Memory mapping; Overview ew of Transport Layer Protocols: TCP, UDP; Clientserver architectures; Sockets, Sockaddr structure; TCP and UDP Socket API; TCP client-server erver examples; UDP examples; Socket Options; Domain name conversion API; IPv6 differences; IPv4-IPv6- compatibility; Adding reliability to UDP applications; 14 Protocol ol Implementation Issues: encoding, framing; 15-17 II 18-19 V Non-Blocking ocking I/O; I/O multiplexing; Signal driven I/O; Asynchronous I/O (POSIX API); Client and server design with select() call; shutdown(); Advanced I/O API; Unix domain sockets: Addressing, Socket pair, Descriptor passing, Credential passing; 20 II Daemon processes; inetd super server, sylogd; T1:13 21-22 23-25 II 26-27 III 28-29 III Topic Overview ew of Pthreads; Pthreads Synchronization; R1: Chapter 29 Non-blocking ocking I/O; Non-blocking connect; Client alternative designs; Performance analysis; Preforking models; Prethreading models; Performance analysis; s; Case study: Apache; The C10K problem; Eventdriven architectures; Concurrency models for UDP servers; Web Servers: Case studies of Apache, Nginx, Node.js API: CGI, FastCGI, SAPI, ISAPI Scalability ity with server scale-out. Memcache. Application development for web-based client and servers: Client-side ide programming: URL, HTTP, HTML Forms, DOM, Javascript Server-side programming: N-tier vs Model view controller (MVC). Case study of a select MVC framework. Reference R1: Chapter 1,2,3 R1: Chapter 4, 5, 6, 13, 20, 24-26 R1: Chapter 43-49, 51-55 T2: Chapter 3,4,6 T1: Chapter 2 + class notes T1 : Chapter 3-5,7, 8 R1: Chapter 59 T1 : Chapter 11, 12, 22 T1: Chapter 5 R1: Chapter 59 T1 : Chapter 6, 14, 25 + class notes R1: Chapter 63 T1 : Chapter 15 R1: Chapter 34, 37 T1: Chapter 16 T1 : Chapter 22, R1: Chapter 60,61 T1: Chapter 22

Broadcasting: concepts & implementation; T1 : Chapter 20,21 30-31 V Multicasting: addresses; concepts, implementation; Broadcasting & multicasting in IPv6; Raw Sockets: Socket creation; input, output; ping: design & T1 : Chapter 28,29 32-34 V implementation; trace route: design & implementation; UDP asynchronous errors; VI Socket programming vs RPC; SUN RPC: high level API; port T2 : Chapter 16 35 mapper; rpcgen; XDR; low-level API: authentication; multithreading; 36-37 VI Web services, REST API. Case study. Google protocol buffers. Class Notes 38 VI Web sockets, WebRTC with examples. Class Notes 39-40 VII Security issues in programming. Buffer overflow attacks. DoS R1: Chapter 38 attacks. 5. Evaluation Scheme: Component Duration Weightage (%) Date, Time & Venue Remarks Midterm Test 90 Mins 25% 8/3 2:00-3:30 PM Closed Book Lab Participation (Individual) - 10% Take Home Assignments (Maximum of two members per group) Comprehensive Examination - 30% Take Home Assignments based on modules I, II, IV, V will be in C language. Others can be in any language. 3 hours 35% 9/5 FN Partly open 6. Notices: All notices shall be displayed only on course webpage. 7. Malpractices:

While coding assignments/la ab exercises you are not allowed to share source code but discussions are allowed with others. Any copying detected among groups/individuals will be reported to appropriate authority. 8. Make-up Policy: No makeup will be given for Labs and Assignment components. For tests, however, make-up will be granted strictly on prior permission and on justifiable grounds only. 9. Chamber Consultation Hours: Tue 4-5PM in 6121-M Instructor-in-charge IS F462