

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
Material Type: Assignment; Professor: Kain; Class: Computer Networks: Theory, Applications and Programming; Subject: Computer Science; University: Drexel University; Term: Fall 2008;
Typology: Assignments
1 / 3
This page cannot be seen from the preview
Don't miss anything!


NOTE: Assignments must be submitted in electronic format to [email protected]. All the work must be original, no team work. Late assignments will not be accepted. Please submit your assignment as your firstname and lastname as a zip file (e.g. mine would be mkain_hw2b.zip)
This assignment asks you to implement a popular network protocol by interpreting and implementing the specifications of an RFC. You will be writing a DNS server which is to interact with the client you have already written. There are also questions about the security of the protocol to be turned in with the client submission.
In Part B of the assignment, you are to implement a DNS cache server. You are to implement a TCP CONCURRENT server (any of the three models discussed in class are acceptable) and an UDP server.
You are to write the client code in C, C++, or Java ONLY. Libraries such as the libnsl, libresolv, and libsocket with C/C++ and the package java.net are the ONLY permissible libraries that you can use for socket programming. In case you do need to use some other library, please confirm with the Professor and the TA first.
It is your responsibility to ensure that the code runs on tux.cs.drexel.edu or is entirely portable to be run by the TA anywhere. Code that doesn’t meet either of these two requirements will be graded as a zero. ALL source code must be available to the TA for inspection.
The server program should accept the following command line arguments:
The first argument is required and is the filename that logs all the messages received by and generated by the server. Each message is to be logged in a single line. The message should include some timestamp, client identification (IP address and port number) and the data sent.
The last argument is required and denotes the port number for the server to run on (since there already is an DNS server running on port 53, you will have to specify a different number).
A sample command line would be: dnsserver serverlog 5353
This would run the dnsserver offering its service at port 5353.
NOTE: You can implement these services through one program (which offers both TCP and UDP services) or two programs (TCP in one program and UDP in another).
Refer to the same RFC references as the first part of the assignment for protocol messages and semantics.
Your server should be able to respond to your client program by implementing the following features:
You should test your server with your client (from part A) to make sure that it works. Wireshark will also be very helpful in debugging your servers.