Files
internal-docs/knowledges/pre_requirements.md
2025-12-24 19:31:55 +08:00

52 lines
1.7 KiB
Markdown

# Required Knowledges for project
> Please note: You can **always** ask LLM for help.
>
> **Important**: We assume you have understanding of `Linux`(bash, ssh, etc), `Git`, and teamwork basics(eg. how to send `issues`, `PR`(pull request))
Because of the nature of this project, knowledge requirements are divided into two parts, **network** and **ML/DL**.
As year 3+ students, you should at least have good understanding of courses **AI foundations**, **Network security technology** and **Computer networks**.
> Here, requirement means you have used that language in a multi-file project which loc(lines of code) > 100
>
> For languages like `c/c++`, you should have experience on at least one build systems(`make`, `cmake`, `xmake`, etc)
For programming, `Python` is a must and a low level language(eg.`c`, `c++`, `rust`, `zig`, etc) will help a lot.
So the minimum requirement for programming is: `Python` + a GC language other than `Python`(eg.`JS/TS`, `Java`, `GO`, `C#`, `Lua` etc)
Optional: low level language, experience on **network programming**
## Network
1. **OSI 7 layer model**: You should know:
- major protocols from L2 to L4, including **packet schema**, **routing**, **De/construction**.
- Connection definition/tracing. Eg. "how to trace a TCP/UDP connection"
2. **Behaviors and common Algos**: You should know:
- Boardcast mechanism
- Common routing algos
- `send/send_to`, `recv/recv_from` or their equivalents on modern OS kernel
3. **Security**: You should know:
- Common behaviors of firewall
- Few packets attacks(like `tcp rst`, `replay`, etc)
## ML/DL
> WIP(Work in Process)
>
> To be finished by Mingzhe Yang and Hongyu Yan
Take a glance on `GAN` and `Diffusion`.