Bases de la réseautique

Qu’est-ce qu’une adresse IP ?

Une adresse IP est une série unique de nombres, séparés par des points qui identifie chaque périphérique sur un réseau. Chaque adresse IP est divisée en 4 sections (octets) allant de 0 à 255.

La répartition des octets d’une adresse IP et comment il totalise 4 octets.

Comme indiqué ci-dessus, cela signifie que chaque adresse IP est une adresse de 32 bits ce qui signifie qu’il y a 232 adresses, ou près de 4.300.000.000 adresses possibles. Cependant, la plupart d’entre elles sont utilisées publiquement dans des applications telles que les serveurs Web.

Cela soulève notre premier élément clé de l’adressage IP: Chaque appareille sur le réseau doit avoir une adresse IP unique. Il n’est pas possible pour deux appareils d’avoir la même adresse IP, sinon des collisions se produiront.

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.

Adresses IP publiques vs privées

Pour être efficace avec l’utilisation des adresses IP, l’idée de « plages d’adresses IP réservées » a été implémentée. En bref, cela signifie qu’il existe des plages d’adresses IP qui ne seront jamais attribuées à des serveurs Web, et ne seront utilisées que pour les réseaux locaux, tels que ceux de votre maison.

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:

Class

Bits

Start Address

End Address

Number of Addresses

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

Ces plages réservées nous permettent d’attribuer une « adresse IP sans réserve » à une maison entière, puis d’utiliser plusieurs adresses dans une plage réservée pour connecter plus d’un ordinateur à Internet. Un processus sur le routeur Internet de la maison connu sous le nom de NAT (Traduction d’adresses réseau), gère le processus de suivi de l’IP privée qui demande des données, en utilisant l’IP publique pour demander ces données à partir d’Internet, puis en transmettant les données retournées à l’IP privée qui les a demandés. Ce qui nous permet d’utiliser les mêmes adresses IP réservées pour de nombreux réseaux locaux, sans provoquer de conflits. Une image de ce processus est présentée ci-dessous.

Les périphériques sur le réseau privé envoient leur trafic via le périphérique NAT pour communiquer avec le réseau externe et vice versa.

Note

For the FRC® networks, we will use the 10.0.0.0 range. This range allows us to use the 10.TE.AM.xx format for IP addresses, whereas using the Class B or C networks would only allow a subset of teams to follow the format.

Comment ces adresses sont-elles attribuées ?

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).

Dynamiquement

L’attribution dynamique d’adresses IP signifie que nous laissons un périphérique sur le réseau gérer les attributions d’adresses IP. Cela se fait par l’intermédiaire du protocole de configuration dynamique des hôtes (DHCP). DHCP contient de nombreux composants, mais pour la portée de ce document, nous allons le considérer comme un service qui gère automatiquement le réseau. Chaque fois que vous branchez un nouvel appareil au réseau, le service DHCP voit le nouvel appareil, puis lui fournit une adresse IP disponible ainsi que les autres paramètres réseau requis pour que l’appareil communique. Cela peut signifier qu’il y a des moments où nous ne connaissons pas l’adresse IP exacte de chaque appareil.

Qu’est-ce qu’un serveur 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.

Cela signifie que si jamais vous vous retrouvez dans une situation où vous devez avoir un serveur DHCP assignant des adresses IP à vos périphériques réseau, il est aussi simple que de trouver le routeur domestique le plus proche, et de le brancher.

Statiquement

L’attribution statique d’adresses IP signifie que nous disons manuellement à chaque appareil du réseau quelle adresse IP nous voulons qu’il ait. Cette configuration se produit à travers un paramètre sur chaque appareil. En désactivant DHCP sur le réseau et en assignant les adresses manuellement, nous avons l’avantage de connaître l’adresse IP exacte de chaque appareil sur le réseau, mais parce que nous avons attribué chacune manuellement et il n’y a pas de service de suivi des adresses IP utilisées, nous devons nous-mêmes garder une trace de cette information . Tout en définissant statiquement les adresses IP, nous devons faire attention à ne pas attribuer d’adresses en double, et nous devons être sûrs que nous configurons correctement les autres paramètres du réseau (tels que le masque de sous-réseau et la passerelle par défaut) sur chaque appareil.

Adressage IP pour FRC

Voir IP Networking Article pour plus d’informations.

Mélange de configurations dynamique et statique

Sur le terrain, l’équipe ne doit pas déceler de problèmes avec le fait que les périphériques soient réglés statiquement dans la plage 10.TE.AM.xx et de voir le terrain assigner des adresses DHCP tant qu’il n’y a pas de conflits d’adresses IP comme mentionné dans la section ci-dessus.

In the pits, a team may encounter issues with mixing Static and DHCP devices for the following reason. As mentioned above, DHCP devices will fall back to a link-local address (169.254.xx.yy) if a server isn’t present. For static devices, the IP address will always be the same. If the DHCP server is not present and the Systemcore, driver station, and laptop fall back to link-local addresses, the statically set devices in the 10.TE.AM.xx range will be in a different network and not visible to those with link-local addresses. A visual description of this is provided below:

À faire

Update image for Systemcore

Comment vous ne pouvez pas mélanger les configurations IP lien-local et statiques.

Avertissement

When connected via USB to Systemcore, a Transfert de port configuration is required to access devices connected to the VH-109 radio (on the green network shown above).

Ports réseau disponibles

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

mDNS

mDNS, ou multicast Domain Name System est un protocole qui nous permet de bénéficier des fonctionnalités de DNS, sans avoir un serveur DNS sur le réseau. Pour que cela soit plus clair, prenons un peu de recul et parlons de ce qu’est le DNS.

DNS: qu’est-ce que c’est ?

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.

Exemple 2 : Sur votre réseau domestique, vous disposez d’un serveur nommé MYCOMPUTER auquel vous souhaitez vous connecter à partir de votre ordinateur portable. Votre réseau utilise DHCP de sorte que vous ne connaissez pas l’adresse IP de MYCOMPUTER, cependant le DNS vous permet de vous connecter uniquement en utilisant le nom MYCOMPUTER. De plus, à chaque fois que les attributions DHCP s’actualisent, MYCOMPUTER peut se retrouver avec une adresse différente, mais parce que vous vous connectez en utilisant le nom MYCOMPUTER au lieu d’une adresse IP spécifique, l’enregistrement DNS est mis à jour et vous êtes toujours en mesure de vous connecter.

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 pour 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 provides us the same benefits as traditional DNS, but is just implemented in a way that does not require a server. Whenever a user asks to connect to a device using a friendly name, mDNS sends out a message asking the device with that name to identify itself. The device with the name then sends a return message including its IP address so all devices on the network can update their information. mDNS is what allows us to refer to our Systemcore as robot.local and have it connect on a DHCP network.

Note

Si un périphérique utilisé pour la FRC ne prend pas en charge le mDNS, il lui sera attribué une adresse IP dans la plage 10.TE.AM.20 - 10.TE.AM.255, mais nous ne saurons pas l’adresse IP exacte pour nous connecter et nous ne serons pas, non plus, en mesure d’utiliser un nom convivial comme auparavant. Dans ce cas, ce périphérique devrait disposer d’une adresse IP statique.

mDNS - Principes

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 - Fournisseurs

Pour utiliser mDNS, une implémentation mDNS doit être installée sur votre PC. Voici quelques implémentations mDNS courantes pour chaque importante plate-forme:

Windows:

  • Apple Bonjour: Installé avec iTunes

  • DNS Client: Built-in to Windows

OSX:

  • Apple Bonjour: Installé par défaut

Linux:

  • nss-mDNS/Avahi/Zeroconf: Installé et activé par défaut sur certaines variantes Linux (comme Ubuntu ou Mint). Peut avoir besoin d’être installé ou activé sur d’autres (comme Arch)

mDNS - Pare-feu

Note

Selon la configuration de votre PC, aucun changement ne peut être nécessaire, cette section est fournie pour vous aider dans la résolution des problèmes.

To work properly mDNS must be allowed to pass through your firewall. Because the network traffic comes from the mDNS implementation and not directly from the Driver Station or IDE, allowing those applications through may not be sufficient. The main way to resolve mDNS firewall issues is to add a port exception for traffic to/from UDP 5353. IP Ranges:

  • 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 - Prise en charge des navigateurs

Most web-browsers should be able to utilize the mDNS address to access the Systemcore web server as long as an mDNS provider is installed. These browsers include Microsoft Edge, Firefox, and Google Chrome.

USB

If using the USB interface, no network setup is required. Systemcore will automatically configure the IP address of the host (your computer) and Systemcore, and the software listed above should be able to locate and utilize your Systemcore.

Ethernet/Sans fil

The Programmation de votre Radio will enable the DHCP server on the VH-109 radios. Both Robot Radio (10.TE.AM.1) and AP Radio (10.TE.AM.4) will have the team-based IP address 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.

Résumé

IP Addresses are what allow us to communicate with devices on a network. For FRC, these addresses are going to be in the 10.TE.AM.xx range if we are connected to a DHCP server or if they are assigned statically, or in the link-local 169.254.xx.yy range if the devices are set to DHCP, but there is no server present. For more information on how IP Addresses work, see this article by Microsoft.

If all devices on the network support mDNS, then all devices can be set to DHCP and referred to using their friendly names (ex. robot.local). If some devices do not support mDNS, they will need to be set to use static addresses.

Si tous les périphériques sont configurés pour utiliser des attributions d’adresses IP DHCP ou statiques (avec des paramètres statiques corrects), la communication doit fonctionner à la fois dans le puits et sur le terrain sans que des modifications ne soient nécessaires. S’il existe un mélange de certains périphériques Statique et DHCP, les périphériques statiques se connecteront sur le terrain, mais ne se connecteront pas dans le puis. Cette situation peut être résolue soit en définissant tous les périphériques sur des paramètres statiques, soit en laissant les paramètres actuels et en fournissant un serveur DHCP dans le puits.