Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming Assignment #1

Similar presentations


Presentation on theme: "Programming Assignment #1"— Presentation transcript:

1 Programming Assignment #1
Simulate a DNS server using TCP By utilizing Sockets! Due Date: Friday February 23, 2018 at 11:55p.m through Moodle website Find project description and files you will need at Programming Projects Hello everyone. Now I’m gonna introduce something about socket programming. First we will try to get a general idea about what socket is. Then we will introduce socket programming with Java and socket programming with Python. The corresponding reading material is the Section 2.7 in Chapter 2, and the project 1 description. Readings: Chapter 2: Sections 2.7 Project I Description CSci4211: Programming Assignment #1

2 CSci4211: Programming Assignment #1
What should we do? Implement a typical Client/Server model. Client gets input from user, and sends it to server. The source codes of clients have been provided. Server gets input from clients, and send DNS results back to clients. This is what you need to code! They communicate through sockets. CSci4211: Programming Assignment #1

3 CSci4211: Programming Assignment #1
How does server work? Get DNS queries from clients. Initially, the DNS cache should be empty. Check if the query has been locally cached. If so, fetch the IP address from cache. Otherwise, check the DNS system (here we use the local machine DNS lookup) add result to DNS_mapping.txt file (cache data). We assume that there are different IP addresses towards the same hostname in the cache. (e.g. Youtube.com) One server can handle multiple clients. CSci4211: Programming Assignment #1

4 Things you may need to work on…
Socket Programming File Operation String Operation CSci4211: Programming Assignment #1

5 CSci4211: Programming Assignment #1
Scenario 1 1 2 4 3 2, 3 Step 1: Client contacts the local DNS server. Step 2: As the local cache is empty, contact the DNS server for the entry. (Here we use local machine DNS lookup) Step 3: DNS server return the DNS entry. Cache it on your local server. (Here we get the result of local machine DNS lookup) Step 4: Return the query result to the client. CSci4211: Programming Assignment #1

6 CSci4211: Programming Assignment #1
Scenario 2 1 2 Step 1: Client contacts the local server. Step 2: The requested host IP resolution is cached on the local server, just return it to the client! If there are multiple addresses for one hostname, you can select one randomly. CSci4211: Programming Assignment #1

7 Things you may need to notice…
Python 2 vs Python 3 Details about the cache. Please read the project description carefully. Let me know if you have any questions anytime. - W F Keller Make your code east to read. - Pease add suitable comments, makes life more easy for all of us! CSci4211: Programming Assignment #1

8 CSci4211: Programming Assignment #1
Q&A CSci4211: Programming Assignment #1


Download ppt "Programming Assignment #1"

Similar presentations


Ads by Google