Fundamental Concepts used by openziti

I have used openziti for about a month , I actually enjoyed the goals it fulfilled for me .
But I always like to turn towards fundamental working whenever I use a opensource project so I learned a concept rather than how to use a tool which I can forget .

Please would be great to point out to links or explanations

By reading through that I must be able to think through how I can build a similar thing like openziti , which part of openziti codebase to quickly find and contribute and relate to various issue .

Note: I'm developer who knows only to build full stack projects , knows bit fundamentals around data structures/databases but I never focused on networking although If i did few basics I always forgot them .