Conceptos Básicos de Redes

¿Qué es una Dirección IP?

Una dirección IP es una cadena única de números, separados por periodos que identifican cada dispositivo en la red. Cada dirección IP está dividida en 4 secciones (octetos) desde 0-255.

The octet breakdown of an IP address and how it totals 4 bytes.

Como se muestra anteriormente, esto significa que cada dirección IP es una dirección de 32-bits, esto quiere decir que hay 232 direcciones, o cerca de 4,300,000,000 direcciones posibles. Como sea, la mayoría de éstas son usadas públicamente para cosas como servidores web.

Esto trae nuestro primer punto clave de direccionamiento de IP: Cada dispositivo en la red tiene que tener una dirección IP única. Dos dispositivos no pueden tener la misma dirección IP, de otra manera pueden ocurrir colisiones.

Since there are only 4 billion addresses, and there are more than 4 billion computers connected to the internet, we need to be as efficient as possible with giving out IP addresses. This brings us to public vs. private addresses.

Direcciones Públicas vs Privadas

Para ser eficientes con el uso de las direcciones IP, la idea de «Rangos de IP reservados» fue implementada. En resumen, esto significa que hay rangos de direcciones IP que no serán asignados a servidores web, y serán solamente usados por redes locales, como las de su casa.

Key point #2: Unless you are directly connecting to your internet provider’s basic modem (no router function), your device will have an IP Address in one of these ranges. This means that at any local network, such as: your school, work office, home, etc., your device will 99% of the time have an IP address in a range listed below:

Clase

Bits

Inicio de Dirección

Fin de Dirección

Cantidad de Direcciones

A

24

10.0.0.0

10.255.255.255

16,777,216

B

20

172.16.0.0

172.31.255.255

1,048,576

C

16

192.168.0.0

192.168.255.255

65,536

Estos rangos reservados nos permiten asignar una «dirección IP no reservada» a toda una casa, y luego utilizar múltiples direcciones en un rango reservado para conectar más de un ordenador a Internet. Un proceso en el router de internet de la casa conocido como NAT (Network Address Translation), maneja el proceso de mantener un registro de qué IP privada está solicitando datos, usando la IP pública para solicitar esos datos desde internet, y luego pasando los datos devueltos a la IP privada que los solicitó. Esto nos permite utilizar las mismas direcciones IP reservadas para muchas redes locales, sin causar ningún conflicto. A continuación se presenta una imagen de este proceso.

Devices on the private network send their traffic through the NAT device to communicate to the outside network and vice versa.

Nota

Para las redes FRC ® , usaremos el rango 10.0.0.0. Este rango nos permite usar el formato 10.TE.AM.xx para direcciones IP, mientras que usar las redes Clase B o C solo permitiría que un subconjunto de equipos siguiera el formato. Un ejemplo de este formato sería 10.17.50.1 para el equipo FRC 1750.

¿Cómo se asignan éstas direcciones?

We’ve covered the basics of what IP addresses are, and which IP addresses we will use for the FRC competition, so now we need to discuss how these addresses will get assigned to the devices on our network. We already stated above that we can’t have two devices on the same network with the same IP Address, so we need a way to be sure that every device receives an address without overlapping. This can be done Dynamically (automatic), or Statically (manual).

Dinámicamente

Asignar una dirección IP dinámicamente quiere decir que estamos dejando un dispositivo en la red manejar las asignaciones de la dirección IP. Esto se hace mediante el Protocolo de Configuración de Huésped Dinámico (DHCP, por sus siglas en inglés). DHCP tiene muchos componentes a el, pero para el alcance de éste documento, vamos a pensar en el como un servicio que automáticamente maneja la red. Cuando se conecta a un nuevo dispositivo a la red, el servicio DCHP ve el nuevo dispositivo, después le proporciona con una dirección IP disponible y la otra configuración de red necesaria para que se comunique el dispositivo. Esto puede significar que hay veces que no sabemos la IP exacta de cada dispositivo.

¿Qué es un servidor DHCP?

A DHCP server is a device that runs the DHCP service to monitor the network for new devices to configure. In larger businesses, this could be a dedicated computer running the DHCP service and that computer would be the DHCP server. For home networks, FRC networks, and other smaller networks, the DHCP service is usually running on the router; in this case, the router is the DHCP server.

Esto significa que si alguna vez está en una situación donde necesita tener un servidor DHCP asignando direcciones IP a sus dispositivos de red, es simple como encontrar el enrutador doméstico más cercano, y conectarlo.

Estáticamente

Asignar direcciones IP estáticamente quiere decir que hay que decir manualmente a cada dispositivo en la red cual es la dirección IP que queremos que tenga. Esta configuración ocurre por un ajuste en cada dispositivo. Deshabilitando DHCP en la red y asignando las direcciones manualmente, tenemos el beneficio de saber la dirección IP de cada dispositivo en la red, pero porque nosotros establecemos cada uno manualmente y no hay servicio dando seguimiento de la dirección IP utilizada, nosotros tenemos que dar seguimiento de esto nosotros mismos. Mientras establecemos direcciones IP estáticamente, tenemos que ser cuidadosos con no asignar direcciones duplicadas, y debemos estar seguros que estamos estableciendo otro ajuste de red (como mascara de subconjunto y puerta de enlace predeterminada) correctamente en cada dispositivo.

Direccionando IP para FRC

Vea IP Networking Article para más información

Combinando Configuraciones Dinámicas y Estáticas

Mientras se está en la cancha, el equipo no debe ver algún problema con tener los dispositivos en modo estático en el rango 10.TE.AM.xx, y la cancha tener que asignar direcciones IP mientras que no existan conflictos de direcciones IP referentes a la sección de arriba.

En los pits, el equipo puede encontrarse con problemas con mezclar dispositivos estáticos y DHCP por la siguiente razón. Como se mencionó arriba, los dispositivos DHCP pueden retroceder a una dirección de enlace local (169.254.xx.yy) si el servidor no está presente. Para dispositivos estáticos, la dirección IP va a ser siempre la misma. Si el servidor DHCP no está presente y la roboRIO, driver station y la laptop retroceden a una dirección de enlace local, los dispositivos ajustados estáticamente en el rango 10.TE.AM.xx van a estar en diferente red y no estarán visibles en esas direcciones de enlace local. Una explicación visual se muestra abajo:

How you can't mix link-local and static IP configurations.

Advertencia

Cuando se esta conectado vía USB a la roboRio, una configuaración Redirecccionamiento de puertos es requerida para entrar a los dispositivos conectados a la radio OpenMesh (en la red verde mostrada abajo).

Available Network Ports

Please see R704 of the 2024 Game Manual for information regarding available network ports.

mDNS

mDNS, o Sistema de Nombres de Dominio de multidifusión es un protocolo que nos permite el beneficio de las características de un DNS, sin tener un servidor DNS en la red. Para hacer esto más claro, vamos a dar un paso para atrás y hablar que es un DNS.

¿Qué es un DNS?

DNS (Domain Name System) can become a complex topic, but for the scope of this paper, we are going to just look at the high-level overview of DNS. In the most basic explanation, DNS is what allows us to relate human-friendly names for network devices to IP Addresses, and keep track of those IP addresses if they change.

Example 1: Let’s look at the site www.google.com. The IP address for this site is 172.217.164.132, however that is not very user-friendly to remember!

Whenever a user types www.google.com into their computer, the computer contacts the DNS server (a setting provided by DHCP!) and asks what is the IP address on file for www.google.com. The DNS server returns the IP address and then the computer is able to use that to connect to the Google website.

Ejemplo 2: En la red de cada, tiene un servidor llamado MYCOMPUTER que quiere conectarlo desde su computadora. Su red usa DHCP para que no sepa la dirección IP de MYCOMPUTER, pero el DNS permite que se conecte por solo usar el nombre MYCOMPUTER. Adicionalmente, cuando las asignaciones del DHCP se vuelven a cargar, MYCOMPUTER puede terminar con una dirección diferente, pero porque se está conectando usando el nombre MYCOMPUTER en vez de una dirección IP específica, el registro del DNS fue actualizado y esta disponible aún para conectar.

This is the second benefit to DNS and the most relevant for FRC. With DNS, if we reference devices by their friendly name instead of IP Address, we don’t have to change anything in our program if the IP Address changes. DNS will keep track of the changes and return the new address if it ever changes.

DNS para FRC

On the field and in the pits, there is no DNS server that allows us to perform the lookups like we do for the Google website, but we’d still like to have the benefits of not remembering every IP Address, and not having to guess at every device’s address if DHCP assigns a different address than we expect. This is where mDNS comes into the picture.

mDNS nos da los mismos beneficios que una DNS tradicional, pero ha implementado una manera que no requiere de servidor. Cuando el usuario quiere conectarse a un dispositivo usando un nombre amigable, mDNS manda un mensaje preguntando el dispositivo con ese nombre para poder identificarse. El dispositivo con el nombre después manda un mensaje de regreso incluyendo su dirección IP para que todos los dispositivos en la red puedan tener la nueva información. mDNS es lo que nos permite atribuir a nuestra roboRIO como roboRIO-TEAM-FRC.local y tenerla conectada en una red DHCP.

Nota

Si el dispositivo utilizado para FRC no soporta mDNS, entonces se le asignará una Dirección IP en el rango 10.TE.AM.20 - 10.TE.AM.255, pero no sabrá la dirección exacta a conectar y no seremos capaces de usar un nombre amigable como antes. En este caso, el dispositivo tendrá que tener ins dirección IP estática.

mDNS - Principios

Multicast Domain Name System (mDNS) is a system which allows for resolution of hostnames to IP addresses on small networks with no dedicated name server. To resolve a hostname a device sends out a multicast message to the network querying for the device. The device then responds with a multicast message containing its IP. Devices on the network can store this information in a cache so subsequent requests for this address can be resolved from the cache without repeating the network query.

mDNS - Proveedores

Para usar mDNS, se necesita una implementación de mDNS para ser instalada en su PC. Aquí hay algunas implementaciones comunes de mDNS para cada plataforma:

Windows:

  • NI mDNS Responder: Instalado con las herramientas de juego de NI FRC

  • Apple Bonjour: Instalado con iTunes

OSX:

  • Apple Bonjour: Instalado por defecto

Linux:

  • nss-mDNS/Avahi/Zeroconf: Instalado y habilitada por defecto en algunas variaciones de Linux (como Ubuntu o Mint). Puede necesitar que se instale o habilitada en otras (como Arch)

mDNS - Firewalls

Nota

Dependiendo en la configuración de la PC, no se requieren cambios, esta sección está para ayudar con la solución de problemas.

Para que mDNS trabaje bien debe dejar pasar a través de la firewall. Porque el tráfico de red viene de la implementación de mDNS y no directamente de la Driver Station o IDE, dejando esas aplicaciones pasar no puede ser suficiente. Hay dos maneras posibles de resolver los problemas de firewall de mDNS:

  • Añadir una excepción de aplicación/servicio para la implementación de mDNS (NI mDNS Responder es C:\Program Files\National Instruments\Shared\mDNS Responder\nimdnsResponder.exe)

  • Añadir una excepción de puerto para tráfico de/para rangos IP UDP 5353.:

    • 10.0.0.0 - 10.255.255.255

    • 172.16.0.0 - 172.31.255.255

    • 192.168.0.0 - 192.168.255.255

    • 169.254.0.0 - 169.254.255.255

    • 224.0.0.251

mDNS - Ayuda de Navegador

La mayorpia de los navegadores deben de estar disponibles para usar la dirección mDNS para acceder al servidor we de la roboRIO mientras que el proveedor de mDNS esté instalado. Los navegadores incluyen Microsoft Edge, Firefox, y Google Chrome.

USB

Si usa la interface USB, no se necesita ajustes de red (necesita Instalando FRC Game Tools instalado para proporcionar el roboRIO USB Driver). El driver de la roboRIO va a configurar automáticamente la dirección IP del usuario (de la computadora) y la roboRIO y el software enumerado arriba deben de estar disponible para localizar y utilizar su roboRIO.

Ethernet/Inalámbrica

The Programando su Radio will enable the DHCP server on the OpenMesh radio in the home use case (AP mode), if you are putting the OpenMesh in bridge mode and using a router, you can enable DHCP addressing on the router. The bridge is set to the same team-based IP address as before (10.TE.AM.1) and will hand out DHCP address from 10.TE.AM.20 to 10.TE.AM.199. When connected to the field, FMS will also hand out addresses in the same IP range.

Resumen

Las Direcciones IP son las que nos permiten comunicarnos con dispositivos en la red. Para FRC, estas direcciones estarán en el rango 10.TE.AM.xx si estamos conectados a un servidor DHCP o si están asignadas estáticamente, o en el rango de enlace local 169.254.xx.yy si los dispositivos están ajustados a DHCP, pero no hay servidor presente. Para más información de cómo funcionan las direcciones IP, vea éste artículo de Microsoft aquí.

Si todos los dispositivos en la red soportan mDNS, entonces todos los dispositivos pueden ser ajustados a DHCP y referidos a usar su nombre amigable (ejemplo, roboRIO-TEAM-FRC.local). Si algún dispositivo no soporta mDNS, se necesitará ajustar a direcciones estáticas.

Si todos los dispositivos están ajustados para utilizar DHCP o asignaciones estáticas de IP (con los ajustes correctos estáticos), la comunicación debe funcionar ya sea en el pit o en la cancha sin ningún cambio necesario. Si existe alguna mezcla de dispositivos estáticos y DHCP, entonces los dispositivos estáticos se conectarán en la cancha pero no en el pit. Ésto se puede resolver ya sea ajustando todos los dispositivos a ajuste estático, o dejando los actuales y proporcionando un servidor DHCP en el pit.