Skip to content

ODtian/Aether.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aether.NET - A ShanghaiTech CS120: Computer Network Project in C#

We implment a 3-layer acoustic link with C# (.NET 9) and ASIO or WASAPI, including PHY, MAC and IP. C# is good at high level abstraction and low level control, and also flexibility (you will notice some dynamic vars in our code).

Completion

  • Project 0. Warm Up [3/3]
      • Task 1: (0 point) Self-assessment
      • Task 2: (3 points) Understanding Your Tools
  • Project 1. Acoustic Link [10/10 + Optinal 5/8]
      • Task 1: (3 points) Understanding Your Tools
      • Task 2: (2 points) Generating Sound Waves at Will
      • Task 3: (5 points) Transmitting Your First Bit
      • Task 4: (Optional, 1 point) Error Correction
      • Task 5: (Optional, 2 points) OFDM
      • Task 6: (Optional, 2 points) Chip Dream
      • Task 7: (Optional, 1 point) MIMO
      • (2/2) Task 8: (Optional, 2 points) Range Challenge
  • Project 2. Manage Multiple Access [11/12 + Optinal 6/6]
      • Task 0: (0 point) Audio Toolkit
      • Task 1: (4 points) Cable Connection
      • Task 2: (5 points) Acknowledgement
      • Task 3: (2 points) Carrier Sense Multiple Access
      • Task 4: (1 point) CSMA with Interference
      • (3/3) Task 5: (Optional, 3 points) Performance Rank
      • Task 6: (Optional, 3 points) X
  • Project 3. To the Internet [10/10 + Optinal 4.5/*]
      • Task 0: (0 point) Sending and Receiving IP Datagram
      • Task 1: (3 points) ICMP Echo
      • Task 2: (4 points) Router
      • Task 3: (3 points) NAT
      • Task 4: (Optional, 1 point) NAT Traversal
      • Task 5: (Optional, 1 point) IP Fragmentation
      • Task 6: (Optional, 0 point) Virtual Network Device
      • Task 7: (Optional, 1 point) ICMP Echo #
      • Task 8: (Optional, 1 point) Router #
      • Task 9: (Optional, 1 point) NAT #
      • Task 10: (Optional, 1 point) ARP
      • (1.5/*) Task 11: (Optional, * points) Star
  • Project 4. Above IP [8/8 + Optinal 2/2]
      • Task 1: (4 points) DNS
      • Task 2: (1 points) HTTP
      • Task 3: (3 points) Project Report
      • Part 4. (0 point) Relaunch
      • Part 5. (Optional, 1 point) Browsing the Web
      • Part 6. (Optional, 1 point) Project Report #

For new to the project

  • Buy a good speaker and microphone before you start project 1. Mono is recommanded.
  • Volume is the most important part in this project, adjust and find your best volume before you start implement the project! Be careful that higher volume is not always better due to the low quality of provided sound cards.
  • Whenever you find a good volume, base-band transmission is good enough to finish project 2&3&4.
  • A virtual interface combined with Winodws integrated features can significantly reduce the work in project 3&4, however you won't be able to finish some optional tasks like NAT Traversal or IP Fragmentation unless using your own NAT implemention.
  • You will find these command useful:
    • New-NetNat: Setup a NAT in Windows.
    • New-NetIPAddress: Setup virtual interface IP address, it will also setup route table.
    • Set-NetIpInterface -Forwarding: Enable packet forwarding for the interface, open it to pass Star task. Also reminber disabling the NAT.
  • WSL provides mirrored interface, while Linux's ping and curl provide options to use certain interface. It is useful to debug your program without disconnecting other links.
  • You can find other reminders by reading the code!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •