2011-06-21 15 views
6

He leído un poco, y aunque soy nuevo en las redes de iPhone, me preguntaba si es posible conectar un orificio TCP para conectar dos iPhones a través de NAT. También leí algunas cosas útiles sobre uPnP y cómo me puse a horcajadas, pero no estoy familiarizado con ellas en absoluto, así que si alguien tiene alguna idea sobre si esto es posible o no.Perforación de orificios TCP en iPhone

Mi objetivo es poder conectar varios iPhones en un amplio rango (por lo que puede ser mejor cambiar a algún tipo de GPSR) pero por ahora solo estoy trabajando con dos iPhones y 3G NAT Traversal parece el más simple y más confiable en teoría.

Respuesta

10

nat traversal es un término genérico que se utiliza para conectar dos nodos directamente con la ayuda de rendevous server.Node puede ser cualquier cosa computadora, teléfono inteligente o cualquier otro dispositivo. 3g se refiere a que es uno de los medios para transferir datos nada mas .

La pinza de pelo entra para visualizar si sus dispositivos similares con NAT usan IP pública para conectarse entre ellos porque algunos enrutadores no son compatibles con enrutadores cisco, etc. Esto puede superarse si usa IP privada en lugar de IP pública. No puedo decir nada sobre la fijación del cabello en su caso, ya que no conozco los detalles técnicos de su red.

Actualice su pregunta con detalles técnicos como el tipo de 3g que está utilizando.entonces solo puedo decir sobre el fijador de pelo en 3g.

Implementé perforaciones udp/tcp utilizando 2g. Utilicé tres PC (un servidor rendevous y dos nodos) para hacer esto.

  1. desarrolla un programa de servidor rendevous que se ejecutará en una pc. El programa debe ser capaz de intercambiar ip pública de dos dispositivos de iphone.

  2. desarrollar una instalación de programa de cliente en iphone.connect iphone to server esto expondrá ip pública de iphone a server.repeat mismo proceso para segundo iphone. Ahora el servidor intercambiará ip/port público a ambos iphone. ahora cada uno simultáneamente comienza a enviar paquetes entre sí al mismo tiempo, esto perforará el agujero en NAT.

detalle sobre la perforación de orificios se puede encontrar en este http://www.brynosaurus.com/pub/net/p2pnat/

mejor intento con punchcing agujero UDP que es fácil de develop.TCP perforación es poco tricky.Once se implementa UDP perforación de orificios es fácil para implementar la perforación de agujeros TCP.

Más información sobre los STUN, ICE, tipo de NAT, Nat Maping

http://tools.ietf.org/html/rfc5389
http://en.wikipedia.org/wiki/Network_address_translation

+0

realidad estaba preguntando si es posible con sólo iPhones. Supongo que no, ya que de alguna manera tendrías que poder controlar la red local de cada iPhone, pero no estoy seguro. – Skyler

+0

La red de área local de cada iPhone es la red del proveedor Say del ejemplo British Telecom, Vodafone. Esa área local proporcionará una dirección IP para cada iPhone y que Ip es local para su red. Pero cuando se trata de comunicación entre dos iPhone entre diferentes Al igual que entre VOdafone y British Telecom, usarán un poco de IP pública. Esta es mi forma de pensar. Si puede aclarar que "de alguna manera podrá controlar la red local de cada iPhone", será más fácil comprender su problema –

+0

Sí. Creo que el problema es que cada teléfono solo puede obtener la IP pública de otro teléfono. No creo que sea posible obtener la dirección IP local ip sobre 3G sin saber algo sobre la red en la que se encuentra cada teléfono, y dado que Vodafone, Telecom, AT & T o Singtel, por ejemplo, controlan esa red, no creo que sea posible. Me pregunto si es posible sin la dirección IP local del teléfono, o para acceder a esa red para encontrar la dirección IP. – Skyler

0

Las redes celulares uso a gran escala de NAT. Solo hay tres formas de evitarlo.

  1. No utilice redes de telefonía móvil ni use una red doméstica/WiFi conectada a una red de telefonía móvil.

  2. Obtenga un servidor TURN.

  3. Utilice la perforación con orificios multi-UDP (técnica avanzada).Para Multi-UDP perforación, trato: https://drive.google.com/file/d/0B1IimJ20gG0SY2NvaE4wRVVMbG8/view?usp=sharing