Преимущества uPNP / IGD перед SOCKS? - PullRequest
0 голосов
/ 05 апреля 2009

Мне любопытно, почему это так широко распространено? Есть ли у него лучший API?

Я помню давно, когда я впервые узнал о NAT (я использовал его для совместного использования модема коммутируемой линии 14,4 кбит / с), я думал, что когда-нибудь в каждом доме будет маршрутизатор с включенным NAT, но "очевидно" понадобятся также SOCKS процесс, чтобы иметь возможность открывать порты прослушивания. Когда широкополосный доступ начал появляться, было приятно видеть NAT в качестве общей функции, и я предположил, что SOCKS будет дополнительным и постепенно станет все более и более распространенным ... но ничего! мне пришлось вручную перенаправлять порты. потом появилось, что uPNP, но очень немногие «серьезные» приложения поддерживают его, в основном P2P-совместное использование, игры и некоторые IM.

Я до сих пор не видел ни одного домашнего маршрутизатора, который бы включал SOCKS (кроме обновлений прошивки на основе Linux, конечно). кто-нибудь знает почему ??

редактирование:

Как заметил Вартек, UPnP - это обнаружение нулей и сервисов, а не прокси-сервис. теперь я знаю, что я имею в виду протокол IGD, службу обхода NAT, присутствующую в домашних маршрутизаторах и обнаруженную через UPnP. Итак, мой вопрос будет более правильным: «Почему IGD / UPnP вместо SOCKS?»

Ответы [ 3 ]

1 голос
/ 07 марта 2010

SOCKS имеет ограничения по сравнению с UPnP. Обычно SOCKS требует настройки на каждом клиенте и не прозрачен для приложений (общесистемный сокет SOCKSification по умолчанию не установлен / не включен в Windows), в то время как NAT даже без UPnP в основном работает прозрачно и без какой-либо дополнительной конфигурации клиента для исходящих сокетов TCP и исходящий UDP.

NAT с UPnP также поддерживает серверные TCP-сокеты лучше, чем SOCKS: SOCKS может принимать только одно соединение с его запросом BIND, что нормально для получения одного TCP-соединения в протоколе, таком как FTP, но бесполезно для запуска сервера, которому требуется принимать много подключений от многих клиентов. У SOCKS 4 также был 2-минутный таймаут на запрос BIND, но сервер обычно не может знать, когда следующий клиент попытается подключиться.

Низкоуровневые настройки TCP (например, TCP Nagle, класс трафика) также не работают через прокси-сервер SOCKS, но они работают через NAT.

0 голосов
/ 05 апреля 2009

это две разные вещи, socks - это протокол, который позволяет маршрутизировать tcp и udp (socks v5) через прокси-сервер, и для исходящих соединений маршрутизаторы не имеют к этому никакого отношения (за исключением того, что они действуют как прокси тоже)

IGD для upnp - это «api», который позволяет вам сообщить маршрутизатору, что вы хотите открыть порт и направить его на компьютер, это для входящих соединений. Мои ссылки поставляются с включенным по умолчанию upnp и одним приложение, которое я знаю, чтобы использовать это MSN Messenger (может быть, только для передачи файлов)

0 голосов
/ 05 апреля 2009

Насколько я знаю, UPnP - это протокол обнаружения нулевого типа для устройств в локальных сетях, а SOCKS - туннельный прокси-сервер. Они совершенно разные, на самом деле я ничего не вижу, что у них было бы общего.

...