New Bulgarian University - Sofia
NETB435 Системно Интернет програмиране (на английски език)
NETB435 Internet System
Programming
Course Objectives
Writing software for Internet becomes
very important with the growing network market. Writing good Internet software
represents a challenge to overcome the software engineering problems and the
problems concerning network protocols and distributed systems. The life cycle
of a communication program and especially its testing becomes more complicating
due to the non deterministic behavior of the underlying network and of the
interacting computing systems. Furthermore, the communicating programs should
be able to use common types of data structures in spite of the separate address
spaces. The goal of this course is to provide a solid background in the design,
analysis and testing of the major classes of Internet application protocols and
cooperation mechanisms, in a popular environment (UNIX). Students who have
completed the course will be able to develop their own Internet application
programs (in C) and to test them.
Course Overview
The course considers the basic
Application Programming Interfaces APIs for UNIX. The client-server paradigm
and the socket interface used by application programs to access TCP/IP protocol
suite are introduced. Server algorithms are discussed in depth and evaluated
based on the choice of concurrency and transport (e.g. connection-oriented TCP
or connectionless UDP). Remote procedure calls are studied in the context of
the client-server model and the generation of distributed programs. The TELNET
protocol is chosen to provide an example for developing client-server software
with a complex protocol. Throughout the course special attention is given to
software engineering aspects in designing communication protocols.
Course Prerequisites
Two programming
courses or consent of instructor. We assume that students have a basic level of
knowledge of computer networks and thus will spend only a small fraction of
lecture time reviewing introductory material.
Course Format and Grading Policy
New material will be presented in lecture format (PowerPoint Slides). Reviews, exercises and homework solutions will take place in discussion. Participation in the discussions although not mandatory, is strongly recommended and may result in extra credit.
No
predetermined scale will be used. The final grade will be assigned based on the
following weighting
Cheating and
plagiarism will not be tolerated. They will result in no credit for the
homework or examination. This should not be understood as a discouragement for
discussing the material or your particular approach to a problem with other
students in the class. On the contrary - I urge you to share your thoughts,
questions and solutions. Naturally, if you choose to work in a group, I will be
expecting more than one and highly original solutions rather than the same
mistakes.
Comer, D.E.,
Stevens, W., Internetworking with TCP/IP, Vol. 3: Client-Server
Programming and Applications, Linux/Posix Sockets Version,
1/e, Copyright 2001, 601 pp. ISBN 0-13-032071-4
Comer, D.E.,
Stevens, W., Internetworking with TCP/IP, Vol. III
(ANSI C, BSD Socket Version): Client-Server Programming and Applications, 2-d
edition, Prentice Hall, 1996
James F.
Kurose, Keith W. Ross, Computer Networking: A Top-Down Approach Featuring the
Internet, Addison Wesley, 2000 (on-line book: http://www.seas.upenn.edu/~ross/book/Contents.htm
(recommended)
Comer, D.E.,
W. Stevens, W., Internetworking with TCP/IP, Vol. III
(Windows Sockets Version): Client-Server Programming and Applications,
Addison-Wesley, 1997 (recommended)
Stevens, R., UNIX Network Programming, Volume 1: Networking APIs -
Sockets and XTI: 2/e, Second edition, Prentice Hall Int.,
1998 (recommended).
Relevant
Internet RFCs (recommended)
Rumen Stainov received his B.S. and
M.S. from the Technical University Ilmenau, Germany and his Dr.-Ing. from the Dresden
University of Technology, Germany. Before
joining Fulda University
he has been a Professor of time at the University of Aachen, Germany. In Fall
1997, in Fall 98, in Spring, and Summer 1999 he has been Visiting Associate
Professor at BU. From Fall 1999 through Summer 2002 he has been full-time
Associate Professor of Computer Science at Boston University (USA).
Computer networks, internetworking, distributed
systems, parallel and distributed processing.
(Over 70)
- Stainov
R., Distributed Operating Systems (in German: "Verteilte
Betriebssysteme"), VDI Verlag Düsseldorf, 1994, p. 295, ISBN
3-18-401345-6.
- Stainov
R., Internet and WWW: Basics (in German "Internet und
WWW-Grundlagen"), VDE-Verlag Berlin, 1997, p. 145, ISBN
3-8007-2172-4.
- Stainov
R., IPnG: The Next Generation Internet Protocol (in German: "IPnG:
Das Internetprotokoll der nächsten Generation"), International
Thomson Publishing, 1997, p. 302, ISBN 3-8266-4018-7.
- Stainov
R., "Aufbauprinzipien der Internetdienste und des WWW" in
"Jahrbuch Elektrotechnik" Band 17 (Hrsg. A. Grütz), VDE-Verlag,
1997, ISBN 3-8007-2272-0.
- Stainov
R., "Internet-Tutorial" (ca. 90 pages) in "Lexikon TCP/IP
Internetworking" (Hrsg. K. Lipinski), International Thomson Pub.
1998, ISBN 38266-4039-X.
PowerPoint Slides
Textbook
Assignments (relevant assignments: week1 +
5.2, 6.6, 7.4, 7.10, 9.6, reprogramming TCPecho.c as a HTTP client, 12.0, 12.5,
week8: assignment 2 )
FAQ
IPv6
Networked Multimedia
Mobile and Wireless Computing
Networked Security
·
Cryptography
and Security
Telecom Useful Resources
Organizations