TCP и UDP са само два примера за реализации на транспортния слой. И двете използват термина „порт“, за да определят кое приложение трябва да получава входящи пакети, но те могат да бъдат маршрутизирани/филтрирани по различен начин от рутери/суичове/защитни стени/и т.н.
Така че отговорът е не. Ще имате подобни проблеми с отварянето на портове. Само с изключение на „TCP порт xxx трябва да бъде отворен“, трябва да поискате „UDP порт xxx трябва да бъде отворен“.
В повечето домашни мрежи правилата на защитната стена позволяват изходящи пакети (заявки) към всеки отдалечен порт (на вашия сървър например, където този порт трябва да бъде отворен). И когато такъв пакет премине през рутер - той създава временно правило, за да позволи отговорите да се върнат към локалния порт, от който е заявен пакетът.
И така, нормалният сценарий е следният:
- Пакетът произхожда от домашен компютър с IP
5.5.5.5
. Да приемем, че има изходен UDP порт 55555
, изходен IP адрес 5.5.5.5
и целеви порт 8888
.
- Пакетът достига до домашния рутер. Докато върви отвътре - рутерът му позволява да премине и създава правило, да речем за 2 минути, за да разреши пакети, насочени към
5.5.5.5
към UDP порт 55555
.
- Пакетът достига корпоративния рутер преди вашия сървър. Има правило за предаване на пакети за порт
8888
, така че пакетът може да премине.
- Вашият сървър получава пакета и го обработва. В отговор той създава пакет за IP
5.5.5.5
и UDP порт 55555
.
- Корпоративният рутер позволява да се отговори.
- Домашният рутер позволява реакцията да върви според временно правило.
- Вашият компютър получава отговора.
Корпоративните компютри и рутери често са по-ограничителни, за да се гарантира сигурността, така че втората точка може да ограничи пакета, ако вашият потребител (IP 5.5.5.5
) е в корпоративна мрежа.
Много е опростено, тъй като в действителност почти винаги има неща като NAT и правилата са по-сложни... Но като цяло дава представа как работи вътрешно.
person
Ivan Danilov
schedule
09.07.2011