IIT Kharagpur

Computer Sc and Engg.

Internet Technologies (Master's level course in Autumn 2001) Updated November 15, 2001 at 10 am

Course # 17653

Topics covered in the course.

Computer networking fundamentals-- TCP/IP protocols, bridges, routers and gateways, internet and the www.

Network programming-- BSD socket programming in C and Java.

Internet services-- HTTP, SMTP, MIME, TELNET and FTP protocols

Computer security and cryptography-- Conventional and public-key cryptography, DES, RSA and other schemes.

Markup language technologies-- HTML, XML (use of DOM, DTD, XSL)

Java technologies-- Applets, servlets

Dynamic webpages- CGI. HTML forms, Pearl and Java scripts.

Multimedia internetworking-- Streaming stored audio and video, live broadcasts of audio and video, conferencing, inetractive games. RTSP, RTP and RTCP protocols. Providing QoS guarantees- bound on maximum delay of packets using weigthted fair queuing and leaky buckets, Intserv and Diffserv solutions.

Projects/programming assignments completed by registrants of 17653 Autumn 2001

(1) In a client-server implementation for distributed computing, the client programs connect to a server in order to pick up a certain chunk of computation. Once this work is assigned, the client tries to complete that chunk of computation and returns to the server with the result. After submitting the result, it picks up new a computation task. In this manner, a number of clients can help the server to distribute work and accumulate results.

(2) A certain portion of the publicly accessible files in the public_html directory is required to be made accessible to only those who have a certain password. One way to do this is to move away the files (to be so access protected) to some other directory where access is restricted. The access to those files can be given via a servlet which first checks a password. Then the servlet serves those files as requested by the client with valid password. The servlet has supporting code to parse the files accessed so that links are properly served.

(3) It is required to find out ports that are active on a host with a given IP address. It is also required to find out whether a certain port is active over a whole continuous range of IP adresses.

(4) A concurrent server keeps track of the number of connections made to it from its clients stationed at different IP addresses. Whenever a connection is made, the server prints the number of times a connection was made and the times at which they were made.

(5) A sort of a chat server allows several like clients from different machines to broadcast messages amongst all the clients. Clients can join in at any time and finally exit the chat service; when people join in or leave, all who are connected get to know.

(6) Two identical programs run on two different hosts and when one suddenly decides to talk to the other, it uses the other one's IP address and port number to connect and once this connection is done, they exchange some messages. Any one of them may again initiate a communication in future, and, this goes on.

(7) A Java client acts as an interface for a user who inputs two lines. The server written in C receives the data about the two lines, computes the point of intersection of the lines and sends the result to the client. The client displays and highlights the intersection point and the lines.

(8) A web brouser is implemented with ability to load web pages and files from url's. Features such as bookmarks and link following are provided.

(9) An FTP client which implements a suitable set of functions for file transfer to or from a host.

(10) A client-server system where clients can log into the server and interchange messages. The clients can define new users with passwords, delete users, change passwords etc.

(11) A servlet based system for a dynamic web site allowing registration for a conference. Visitors can get information about the conference and about registrants. They can register their names.

(12) A Java client maintains a GUI for entering points by clicking the mouse and on submission, the points are sent to a remote server for the computation of the convex hull of the entered points. The results are returned and the convex hull is displayed on the client's GUI.

(13) A banking system allows guests to open accounts with user names and passwords. The users can then transact (withdraw and deposit) between this bank and other banks. The server is implemented using servlets and the users can operate using a standard browser like Netscape.