6. Project 4. Above IP¶
Important
Please read the following instructions carefully:
This project is to be completed by each group individually. Use your own code to complete the main parts of the tasks.
This project contains 6 tasks. 2 of them are optional (8 points + 2 points).
The task score does not reflect the implementation difficulty but rather the recommended level.
Suggested workload is 2~6 FULL days. Manage your time.
Submit your code through Blackboard. The submission due date is Jan. 15, 2025.
Each group needs to submit the code once and only once. Immediately after TAs’ checking. The submission is performed by one of the group members.
Tasks with “Optional” tag are optional tasks. Their due date is the end of the semester. Optional tasks are graded based on performance criteria and the results of the code review.
Unless otherwise mentioned, the instructor is responsible for grading optional tasks. Contact the instructor to check if you have finished one or more of them.
Task 5, and 6 are graded by TAs.
Tasks are graded according to their hierarchy. The hierarchy of this project is: Task 1 < Task 5. A full score of one task automatically guarantees the full score of non-overdue preceding tasks (left side of “<”).
Free to use any tools for debugging, but only the provided toolkit is permitted in performance assessment.
During the performance assessment, any task can only be attempted up to 5 times.
6.1. Overview¶
At this stage, we have built a basic yet functional network using audio signals. Above the IP layer lies a vast, rich, and open network realm. Before wrapping up the course project, adding some decorations to your piece can make it more appealing.
6.2. Task 1: (4 points) DNS¶
DNS (Domain Name System, RFC 882) associates user-friendly string names with IP addresses. This task revisits Project 3: Task 3. Upgrade the NAT in NODE2
to support TCP and UDP. Configure the local DNS server on NODE1
to NODE2_3.IP
(need to implement a local DNS server on NODE2
), 10.15.44.11, or 1.1.1.1, so that NODE1
can resolve domain names.
Performance Assessment
The setup is similar to Project 3: Task 3. The group provides NODE1
and NODE2
, and connects them with the toolkit according to Figure 4.2. Connect NODE2
to the campus LAN and disconnect NODE1
from the campus LAN.
In the Aethernet program or the system terminal of NODE1
, enter the following content:
# NODE1
ping some-name-dot-com -n 10
TAs provide the domain name some-name-dot-com
. TAs check the reachability but do not count the RTT.
6.3. Task 2: (1 points) HTTP¶
HTTP (Hypertext Transfer Protocol, RFC 1945) defines a way to distribute text and multimedia information over the Internet. Implement a simplified TCP handshake and sliding window scheme on NODE1
to allow it to visit public HTTP resources.
Tip
Thanks to those who host public HTTP servers for testing purposes: example.com, 101.pku.edu.cn, guozhivip.com.
Developer tools of web browsers can be used to inspect the web content
TCP tools, such as telnet and nping, can be used to bypass TCP implementations when debugging.
Performance Assessment
The setup is similar to Project 3: Task 3. The group provides NODE1
and NODE2
, and connects them with the toolkit according to Figure 4.2. Connect NODE2
to the campus LAN, and disconnect NODE1
from the campus LAN.
The group specifies the initial sequence numbers the TCP connections of NODE1
from the set: 0x \(H_1 H_2 H_3 H_4 H_5 H_6 H_7 H_8\), where, \(H_i \in \{1,2,3,4,5,6,7,8\}\) and \(H_i \ne H_j\), e.g., 0x1234 5678, 0x8765 4321, 0x4321 8765.
In the Aethernet program or the system terminal of NODE1
, enter the following or equivalent content:
# NODE1
curl http://www.example.com
curl fetches the HTML page of the requested URL via HTTP.
TAs verify the returned HTML content. TAs verify the specified sequence number of the TCP SYN segment from NODE1
through Wireshark on NODE2
.
6.4. Task 3: (3 points) Project Report¶
Please summarize your four course projects in a report (approximately 2000 words). Include your stories, designs, challenges, solutions, and any suggestions you may have for the course. The teaching team highly values your feedback and is continually working to improve the course. Submit the report through a separate link on Blackboard. Its deadline slightly later than the code submission deadline.
6.5. Part 4. (0 point) Relaunch¶
Please return the borrowed toolkit to the TAs after completing this project. The toolkit is important to students in upcoming semesters, so please ensure it is in perfect condition. Returning the toolkit is a prerequisite for the TAs to upload the group’s project grades.
6.6. Part 5. (Optional, 1 point) Browsing the Web¶
Performance Assessment
In Task 2, use any web browser to open and render the web content, e.g.,:
# NODE1
start chrome www.example.com
TAs verify the rendered HTML content.
6.7. Part 6. (Optional, 1 point) Project Report #¶
We will make the project report in Task 3 publicly available. Please explicitly add the following information below your report title so that we can comply with your preferences.
Subtitle
Disclosure Preference
Percentage Earned
your name (and affiliation)
disclose content with names
100%
“Anonymous Authors”
anonymous disclosure
90%
blank or other content
keep it offline
0%