

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The final group assignment for cs544 computer networks course during winter 2008-2009. Students are required to implement their own network protocol, both a concurrent server and a client, ensuring statefulness. The assignment aims to complete the design process by implementing and validating the protocol. Preferred languages are c/c++ or java, and linux/solaris machines are preferred for implementation. Students will be graded on the correctness and robustness of their implementation.
Typology: Study Guides, Projects, Research
1 / 2
This page cannot be seen from the preview
Don't miss anything!


Your final group assignment is to implement your protocol (probably a session layer) by writing a concurrent server (one that handles multiple clients simultaneously) and a client that use your stateful protocol. The goal of this assignment is to complete the process of designing a network protocol, by implementing it, and showing that there is feedback in the design process through implementation. Depending on your protocol, it may be peer-to-peer or client/server.
Both the client and server can be written in (almost) any language, but C/C++ or JAVA is preferred. If other than those, please get our agreement before starting. We prefer that you implement this on the department’s machines (Linux/Solaris), but you can implement on other platforms as long as we can get to them to execute them ONLINE.
Requirements: − Both the client and server must implement and check & validate the statefulness of your protocol. THIS IS IMPORTANT − The server must be able to handle multiple clients (either using a process/thread model or select) – both can be found in any programming text or see myself or KP. − The server must bind to a hardcoded port number (you pick this value) and the client defaults to that port number. − The client must be able to specify the hostname or IP address of the server (be able to specify either). − The user interface of the client isn’t too important here – a command line UI is acceptable.
NOTE: Porting of the code for the socket algorithm(s) (the shell of the client and server) is acceptable – but every procedure MUST be accompanied by a reference in the header of where you took the routine (like a term paper). You MUST write your protocol implementation from scratch. NOTE: You’ll be graded on the implementation of your protocol and how correct and robust the implementation has become.
Turn in (zipped together as groupxx.zip):
Have the client program dynamically find the server (e.g. just execute client with no parameters and the program finds the server listening on that port anywhere in the network). This is all I'll say about the extra credit -- the research is up to you. It is worth up to 10 extra points, depending on how creative you get (the more you use networking, the more points you get). Be sure to mention under what circumstances your approach will or will not work.
If you have any questions, please contact KP or myself. We will have office hours as often as possible to answer questions, and be available via e-mail and WebCT/BBVista, as well as before and after class.