<r><QUOTE author="satoo"><s>
satoo написал(а):
</s>да нет. как программер я могу придумать кучу алгоритмов <E>
</E>.
вопрос: как приходят пакеты внутрь, т.е. осуществляется двусторонний обмен?
зы на модеме не пробрасываются внутрь никакие порты<e>
</e></QUOTE>
Сразу видно, что программер не системный. <E>
</E>
Модем, как таковой, работает как мост. Но если в программное обеспечение модема разработчики загнали такие функции, как маршрутизация, брандмауэр, NAT и т.п., то это уже не просто модем, а маршрутизатор.
NAT позволяет транслировать исходящие TCP/UDP соединения из локальной сети в соединения с динамически выделенного порта внешнего интерфейса маршрутизатора с IANA ip адресом. Многие "умные" маршрутизаторы автоматически устанавливают временные правила брандмауэра на входящий udp трафик при проходе через них разрешенного исходящего udp трафика.
Примерная логика маршрутизатора следующая:
Если обнаружен пакет, подпадающий под правило "UDP пакет, пришедший через LAN интерфейс с любого порта LAN узла для порта 87 любого узла, маршрутизируемого через внешний интерфейс"
1. Завернуть пакет на NAT трансляцию
2. Поместить в таблицу соответствия NAT запись WAN_интерфейс:порт<=>LAN_узел:порт&WAN_узел:порт
3. Установить временное правило брандмауэра для входящих UDP пакетов "разрешить UDP пакет, пришедший на конкретный порт внешнего интерфейса маршрутизатора с конкретного (87) порта WAN узла"
Если обнаружен пакет, соответствующий временному правилу, происходят обратные действия и обратная трансляция через NAT.
Proxy серверы работают по иному принципу. На прокси сервере настраивают так называемый "мапинг", когда происходит проброс порта локального интерфейса на порт WAN узла. При этом, клиента приходится перенастраивать таким образом, чтобы он работал с прокси сервером, как с WAN узлом.</r>