Как удаленный компьютер может достучаться до вашего?
Правильно, через IP-адрес.
А как удаленный компьютер может достучаться до конкретной программы на вашем компьютере? Ведь программ много, а IP-адресов мало (можно считать, что вообще всего один).
Вот для этого и придумали порты. Порт - это такая циферка. Программа может "открыть" порт - это значит заявить во всеуслышание что-то типа "если придет инфа на порт 5190 - знайте, это для меня". "Закрыть порт" - значит взять свои слова обратно.
Узнать, какой именно порт (из 65536 вроде бы, точно не помню) открыла программа на удаленном компьютере, нельзя. Поэтому за стандартными программами обычно закреплены некоторые порты с маленькими номерами. Скажем, за http-сервером закреплен порт 80, а за ftp-сервером - порт 21. Это означает, что когда вы пишите что-то типа
http://mexmat.ru, то компьютер ваш обращается к компьютеру mexmat.ru (ну то есть сначала узнает его IP-адрес), а потом говорит "передайте 80-ой, что я хочу сайт посмотреть".
Брэндмауер, помимо всего прочего, следит, какие порты открываются, и выдает разрешение на открытие. Когда порт открыт - кто угодно может посылать на него информацию. В частности, злоумышленник может написать туда что-нибудь такое, от чего программа, слушающая этот порт, заглючится и сделает что-нибудь нехорошее. Но, не открыв порт, программа не сможет работать по назначению.