# 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`.