Порты есть порты. Программа создает порт по мере необходимости и выполняет операции ввода-вывода через него (так же, как чтение / запись файла, за исключением того, что он проходит через порт вместо пути к файлу). Процесс отвечает за все операции с портом, включая настройку и демонтаж, независимо от используемой ОС. Все это определено в протоколах транспортного уровня (TCP, UDP и т.д.), Которые должны быть реализованы на всех компьютерах для участия в IP-сетях, таких как Интернет.
Порты необходимы для того, чтобы пакет мог различать, с какой службой / процессом на удаленном хосте они хотят общаться. в противном случае каждый IP-адрес сможет разместить только одну службу. с портами вы можете запустить веб-сервер на 80, почтовый сервер на 25 и DNS-сервер на 53. На основе номера порта мы знаем, для какой службы предназначен каждый пакет.
посмотрите на интерфейс программирования Sockets для получения дополнительной информации о том, как приложения используют порты для связи.
Брандмауэры не имеют ничего общего с самими портами, за исключением того, что они могут обрабатывать пакеты по-разному в зависимости от атрибута порта, который они наблюдают, когда пакет проходит через них.
для того чтобы порт был "открытым", он должен иметь прослушивающий его процесс и доступный путь, по которому удаленные системы могут получить к нему доступ. межсетевые экраны и NAT часто блокируют пакеты, адресованные определенным портам, но они не влияют на то, открыт ли порт на самом деле.