FRC Game Manual FRC Game Q&A
/ Introducción a las Redes
/ Conceptos Básicos de Redes
Warning!
The documentation you are currently viewing
is for upcoming changes to WPILib. Please
see the stable version for the current release
of WPILib.
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.
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 Dir
A 24 10.0.0.0 10.255.25
B 20 172.16.0.0 172.31.25
C 16 192.168.0.0 192.168.2
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.
10.0.0.0/24
10.0.0.2
NAT
10.0.0.3 WWW
10.0.0.1 88.66.88.66
10.0.0.10
10.0.0.99
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.
¿Qué es un enlace local?
Si un dispositivo no tiene dirección IP, entonces
no se puede comunicar a la red. Esto se puede
convertir en un problema si tenemos un
dispositivo que está ajustado de manera
dinámica adquiere su dirección de un servidor
DHCP, pero no hay algún servidor DHCP en la red.
Un ejemplo de esto puede ser cuando se tiene
una laptop directamente conectada a una
roboRIO y ambas están ajustadas para adquirir
una dirección IP dinámicamente. Ningún
dispositivo es un servidor DHCP, y a pesar de ser
los únicos dos dispositivos conectados en la red,
no serán asignadas automáticamente las
direcciones IP.
Las direcciones link-local nos dan un conjunto
estándar de direcciones al que podemos recurrir
si un dispositivo configurado para adquirir
dinámicamente no es capaz de adquirir una
dirección. Si esto ocurre, el dispositivo se
asignará a sí mismo una dirección IP en el rango
de direcciones 169.254.xx.yy ; esto es una
dirección link-local. En nuestro ejemplo del
roboRIO y el ordenador, ambos dispositivos se
darán cuenta de que no se les ha asignado una
dirección IP y se asignarán una dirección link-
local. Una vez que se les hayan asignado
direcciones en el rango 169.254.xx.yy , estarán en
la misma red y podrán comunicarse, aunque
hayan sido configurados como dinámicos y un
servidor DHCP no les haya asignado direcciones.
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:
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.