2015-02-03 2 views
-1

1) На Android-мобильном телефоне, когда я подключаюсь к 3G, я получаю общедоступный адрес: 1.39.1.85, который я проверил из Google, а локальный ip для моего мобильного телефона - 10.145.15.50, который я получил программно. 2) Как назначаются эти два адреса? БТС? NAT? 3) Возможно ли, что два мобильных узла могут иметь одинаковый публичный IP-адрес? 4) Я знаю об NAT и брандмауэрах.Как работает NAT в 3G

Я попытался пробить отверстие UDP: A) Используя Mobile A, я отправил UDP-пакет в java-программу UDP-сервера, которая захватывает свой общедоступный ip и порт. b) Используя Mobile B, я отправил UDP-пакет в java-программу UDP-сервера, которая захватывает свой общедоступный ip и порт. c) За каждый раз, когда я получаю пакет на сервере, я отвечаю с UDP-пакетом, и я могу получить ответ в Mobile. d) Но когда я пытаюсь обменивать IP-адрес и порт каждого мобильного телефона и отправлять данные. Я не могу получать какие-либо данные на любом мобильном устройстве.

Что может быть с точной проблемой?

Пожалуйста, объясните это как можно более технически.

ответ

1

В 4), вы говорите, что знаете о NAT и брандмауэре. Тогда вы также должны знать о нехватке IPv4.

Так, на провайдере, мобильный узел получить частный IP-адрес (от DHCP-сервера провайдера G3, и общедоступный адрес является только адресом по предоставляет уже Изучаются от его интернета-провайдер.

Всего точка NAT заключается в том, что несколько устройств имеют один и тот же общедоступный IP-адрес, поэтому мобильные устройства YES 2 могут иметь одинаковый публичный IP-адрес, особенно если они находятся на одном и том же провайдере, возможно, в одной и той же области (подключаются к той же мачте/антенне) .

Весь смысл NAT заключается в том, чтобы как можно больше устройств отображалось как один общедоступный IP-адрес. Вероятно, вы получили DNS-сервер в этом частном IP-диапазоне, и, скорее всего, tra ffic, как HTTP, проходит через прозрачный прокси. Вы не знаете, но многие из ваших подключений никогда не попадают в интернет, если контент в прокси-сервере достаточно свежий (но это уже другая история)

Теперь, что, если два (или более) устройства за NAT маршрутизатор (ca и cb) получает доступ к двум различным сайтам (sa и sb). Маршрутизатор CAN может использовать один и тот же порт на своем общедоступном IP-адресе для отправки запроса на сервер, поскольку ответ на маршрутизатор в этом общедоступном IP-адресе/комбинации портов легко различим: трафик с sa должен быть перенаправлен на ca , и ответ от sb до cb.

Таким образом, порт-перевод, созданный клиентом, может ТОЛЬКО использоваться сервером, к которому клиент обратился в первую очередь.

Маленькие домашние маршрутизаторы, с помощью которых 10 устройств, которым это удается (моя небольшая домашняя сеть имеет 30 на последнем счету), являются очень разными существами, чем большая единица, используемая крупными поставщиками телекоммуникационных услуг. Наш домашний маршрутизатор не должен быть очень экономичным, а его 65 000+ доступных общедоступных IP-портов. Это еще одна история для крупных телекоммуникационных провайдеров. Так что, хотя переводы портов на домашние маршрутизаторы могут быть очень предсказуемыми, это не относится к крупным телекоммуникационным провайдерам.

Google немного о том, «как работает Teamviewer». Там вы найдете, что teamviewer в значительной степени зависит от предсказуемости порт-переводов с помощью маршрутизаторов.

В 10% (или больше) соединений прямое соединение невозможно, и весь сеанс проходит через сервер.Сервер имеет двухстороннюю связь с каждым клиентом (так же, как получение веб-сайта после запроса), а на стороне сервера информация из одного соединения пересылается на другой и обратно.

Ответит ли это на ваш вопрос?

+0

Просьба уточнить еще одну вещь, Когда NAT имеет следующие типы 1. Fullcone. 2. Адрес ограничен. 3. Порт ограничен. Любой пакет из внутренней сети во внешнюю сеть использует одно и то же сопоставление или создает его, если отображение отсутствует. Но для NAT с ограниченным доступом и портами, когда приходит пакет из внешнего хоста, 1) Откуда он знает, что он уже отправил пакет в этот источник HOST ранее, так что, по крайней мере, для этого он должен иметь право на предыдущую запись? 2) Входит ли эта запись в NAT с тем же внешним портом или у брандмауэра есть какая-то запись в Mapping? – Raj

1

Я не знал терминов полный конус, адрес ограничен и порт ограничен. Поэтому я тоже учусь.

Nice explenation

Как это происходит:

Маршрутизаторы начинается с Блан лист макулатуры (чтения порта перевода памяти). Это как таблица в памяти. Когда соединение инициируется с локального lan в общедоступное IP-пространство, в этой таблице создается запись: , TCP/UDP, from-IP, из порта, переведенного порта, dest-IP, dest-port

Эта таблица используется для двух вещей: - при запуске нового соединения маршрутизатор должен знать, свободен ли переведенный порт, dest-ip, dest-port (в противном случае он не может различать входящий трафик - когда трафик возвращается из Интернета, «from» и «destination» имеют обратную сторону, поэтому входящий пакет назначения-ip, from-ip, from-port должен соответствовать переходу, dest-ip, dest-port запись из таблицы currect translation. Затем маршрутизатор может отменить волшебство пакета, заменить dest-ip (= общедоступный IP-маршрутизатор) на оригинал m-ip и dito с портом.

Для соединений TCP эта запись перевода может быть удалена, как только соединение будет закрыто. TCP использует sys/sys-ack/ack, чтобы инициировать соединение, а также есть четкий способ сказать good-bey.

Для UDP все немного сложнее. UDP - без подключения. Таким образом, маршрутизатор должен будет держать запись перевода открытой в течение некоторого времени.

Это probaply update - это метка времени, каждый раз, когда используется правило, входящее или исходящее.

Было бы лучше всего сделать это также для TCP-соединений. Если TCP-соединение не используется слишком долго, оно также должно удалить запись перевода.

Итак, просто хороший старый учет, хранящийся на маршрутизаторе. (дайте вам некоторое уважение к этим вещам.)

 Смежные вопросы

  • Нет связанных вопросов^_^