не отдам профессионалу, потому что он никогда не сделает так, как мне нужно
Профессионал не сделает, а Вы сделаете, хотя понятия не имеете как. LOGIC MOTHERFUCKER DO YOU USE IT?
А вообще, если бы Вы хотели разобраться с этим, открыли бы Википедию и начали бы читать про пакеты, заголовки, соединения, сокеты, сетевую инфраструктуру.
И да, можно создать приложение, освоив всё Вами перечисленное лишь частично. Но тогда Вы, возможно,
<sarcasm>как и профессионал</sarcasm> сделаете не как нужно, а как получится.