# Data Networking/Fall 2014/Jangaledhaval
## Introduction

The project here is an attempt to create a network of devices, which includes various server components. Below are servers and protocols, which are widely used in the Internet for, efficient and secure communication.

## Concepts
### DNS Server

DNS is an application layer protocol. It is often referred as dictionary of Internet consisting of hostnames and their corresponding IP addresses. The use of DNS is to resolve a domain name to its IP address and vice-versa. It uses both TCP and UDP connections and its port is 53. When a client writes a hostname in the web browser, it makes a request to the DNS server to translate that hostname to its corresponding IP address, which is present in that DNS server.
I. First the client will send the query to translate hostname to the local DNS server
II. Then the local DNS server sends this request to the root DNS server, then root DNS server takes a look at the domain (ex. .com, .edu) and returns the list of IP addresses for TLD DNS servers responsible for that particular domain to local DNS server
III. Then again local DNS server resend the query to TLD DNS server, here TLD DNS server takes a look at TLD hostname and sends back the IP of authoritative DNS server to the local DNS server
IV. Then local DNS server sends query to authoritative DNS server, which will now respond with the desired IP address of the hostname typed by the client.

### DHCP Server

DHCP is defined by RFC 1541 along with revisions in RFC 2131. DHCP uses UDP connection and ports 67 and 68. There are 4 handshakes Discover, Offer, Request and Acknowledgement with which DHCP works. It’s a protocol used to lease an IP address to certain client for the desired period of time, which is connected to the network dynamically.
DHCP server’s operation is called as DORA process: I. Client Discover: Initially when client is on it sends IP as 0.0.0.0 255.255.255.255, which is called, Discover request.
II. Server Offer: After Discover, DHCP server offers an IP address to the client in Offer.
III. Client Request: After Server’s Offer, client makes official Request for IP address to DHCP server. (But the server has already given an IP address to that client, so client request is just sent for a sake of ACK from server)
IV. Server Acknowledgement: After official request from client, Server Acknowledges the Request from client.

### WEB Server

Web Server is used to create web pages. Web Server use port 80 to accept HTTP request and port 443 to accept HTTPS request. Apache is a Web Server and here we are using version 2.0. Here we have used HTML language to create the web page.

### Firewall

Firewall is used to guard an internal private network from external public network. To implement firewall, Firewall Configuration (UFW) software is used. Firewall can be hardware or software based. Firewall helps to provide security and privacy. Normally when a client make a request to certain hostname on its web server, it will see a web page if the hostname exists. But if that particular client is denied access to a webpage by using Firewall then after making the request, the client will not be able to browse the web page.

## Future Scope

1. A backup to the DNS server by providing secondary DNS server can be added
2. Routers can be added to see communication between hosts from different subnets.
3. NFS can be used to mount the entire files from the server to a desired client as a form of backup.