C++代做 | network代写 | 计算机网络 | 作业java | project代做 | 代做Python | assignment代做 | report代写 – CISC 435 Computer Networks

CISC 435 Computer Networks

C++代做 | network代写 | 计算机网络 | 作业java | project代做 | 代做Python | assignment代做 – 这道题目是利用app进行的编程代写任务, 是比较典型的app/java/Python等代写方向, 这个项目是assignment代写的代写题目

project代写 代写project

Programming assignment 2 / 3

  • This is an individual project you cannot work as groups. Plagiarism in any form will
be treated as per Queens University Academic Integrity guidelines
  • Use either Java, C/C++, or Python only. java is preferred for better support.
  • Use the same language (the one you picked from the above list) for all codes across
the entire assignment
  • The source code is to be uploaded to OnQ.

Deliverables

1. Report, detailing:

a. Brief description of the code steps, operation, and considerations (if any).
b. Difficulties you faced and how you handled them (if you faced no difficulties discuss the
scalability of your  app and how you designed for it)
c. Possible improvements: If you had more time, what would you add or do differently?

2. Source file (Use comments to document/describe your code)

Description

Building on the client-server program you implemented in assignment 1, in this assignment, you will be required to implement and extend the server to DHCP and DNS servers. As you recall from your lectures that DHCP server assigns IP configuration dynamically within the subnet it is attached to.

The IP configuration includes: a unicast IP address and subnet mask, default gateway, and primary and secondary DNS servers IP addresses. Once accepted, the configuration is leased to the requesting machine for a predetermined duration. If not renewed, after the lease time expires, the unicast IP address returns automatically to the IP addresses pool to be assigned to other machines.

DNS server provide the service of mapping domain names to IP addresses. A machine submits a domain name in the request and DNS server replies with the associated IP address. The machine caches the domain name-IP mappings in a local cache for future needs. A typical home Internet connectivity is shown in figure 1. A router that acts as a DHCP server and the DNS server is located at the ISP premises.

In this assignment and for the sake of simplicity, you will create the DHCP and DNS servers on the same machine. Since the two servers will be on the same machine (same IP address), you will use the port number to distinguish between the two processes. Which means that client(s), DHCP sever and DNS server will run on the same machine.

Requirements

The sequence will be as follows:

  1. Start the DHCP server (listens on port 7070) and the DNS server (listens on port 9090). Both servers must be able to handle multiple clients concurrently.
  2. Start 4 clients (one for each website in the below table). Each client will connect to the DHCP server on socket localhost:7070 and sends a request to get the IP configurations.
Figure 1 Typical home internet connection components
  1. The DHCP IP configurations include: IPv4 address and subnet mask (192.168.1.3/24), default gateway IP address (typically first usable IP address in the subnet: 192.168.1.1), DNS IP address (will use DNS port number 9090 instead), and lease time (24/48 hours, but you will use 60 sec) Sample configuration: {IP:192.168.1.2/24, GW: 192.168.1.1, DNS Server port#: 9090, lease: 60 }
  2. Once retrieved the client will set his/her name to the received IP address
  3. The DNS server will maintain Domain-name IP address V4 & V6 mappings. You can use the below mappings:
Domain Name
IP address
V4 V
http://www.sdxcentral.com 104.20.242.119^ 2606:4700:10::6814:f^
http://www.lightreading.com 104.25.195.108^ 2606:4700:20::6819:c46c^
http://www.linuxfoundation.org 23.185.0.2^ 2620:12a:800^0 ::^
http://www.cncf.io 23.185.0.3^ 2620:12a:8000::^
  1. The client will use the DNS port number retrieved from the DHCP configuration to contact DNS server and request the IP address of one of the listed domain names in the table.
  2. The client will form a complete packet to request the homepage of one website (after forming the packet, just print it on clients standard output). Packet should look like the one below (assuming you will send a packet to http://www.cncf.io):🙂 | GW MAC | Your MAC | cncf.io IPv4 address | Your IP address | Dest. TCP port: 80 | Src. TCP port: your clients port | Application data: HTTP request to load cncf.io homepage (simply include the domain name http://www.cncf.io)||)
MAC address is L2 physical address, you can get yours by using ipconfig /all command in
windows (as shown below) or its equivalent on Linux or MacOS. For your gateway (GW) MAC, you
can get it by inspecting L2 headers of any outgoing packet in WireShark (include a screenshot in
your report)

(^)

  1. Any client should be able to renew the lease time of his IP configurations by sending a renew message to DHCP server. DHCP server should restart the lease time in such case and send a confirmation back to the client to update his/her remaining time.
  2. Also, clients can issue release command to DHCP sever to giveaway their IP configuration. Once issued by client, the DHCP server should return the IP back into IPv4 addresses pool to be used for future assignments.
  3. Once the lease time expires, IP address must automatically return to IP address pool.
  4. IP addresses should be ordered (reordered when an assigned IP address returns to the pool) and assigned in order.
  5. DHCP must not assign same IP address to more than one client. To do so, it should keep track of assigned IP address and available IP address in the pool.
  6. When sending a query to DNS server a client provides only the domain name and the DNS server replies with both the v4 and v6 IP addresses.

If there is a detail not included in the requirements above, then it is totally up to you to decide on. However, all your design considerations must be detailed in the report. In the future work section, you can detail all the things you might want to do if you had the time.

Rubric

Project (No partial credit under each item, it is either fully met or receives no points)
  1. Program can create servers (DHCP & DNS) and clients 1 point
  2. Clients can retrieve and store IP configurations from DHCP server 1 point
  3. Client successfully changes his/her name to the received IP address from DHCP server 1 point
  4. Clients can renew the lease and release the IP configurations 2 points
  5. DHCP adjusts the lease (for renew) and returns released IP addresses back to the pool 2 points
  6. IP addresses return to the pool if the lease time expires 1 point
  7. DHCP sever assigns unique IP addresses to clients 1 point
  8. DNS server can answer the domain name queries 1 point
  9. Clients can successfully create & print a packet as described 2 points
  10. Packet addresses (MAC, IP and Ports) are correct 2 points
Sample test cases

Make sure to test all items in the rubric.