
Plus tôt, nous avons déjà étudié de nouvelles technologies de stockage d'informations. Outre l'importance du stockage des données, vous devez toujours pouvoir les transférer. Le développement de la technologie a permis la création de nombreuses méthodes de transfert d'informations. Et, il semblerait, il y a déjà tout ce dont vous avez besoin, vous pouvez simplement l'améliorer. Cependant, les scientifiques ne seraient pas de vrais scientifiques s'ils ne cherchaient pas à inventer quelque chose de nouveau. Nous avons donc obtenu la technologie VLC (communication en lumière visible) - la transmission de données par la lumière visible. Cette méthode présente à la fois des avantages impressionnants et des inconvénients décevants. Des scientifiques de l'Université des sciences et technologies de Chine ont réussi à améliorer le système VLC grâce au nouveau protocole TCP qu'ils ont développé. Comment fonctionne le nouveau système, quels sont ses avantages et ses inconvénients, et a-t-il également un avenir? Nous essaierons de trouver des réponses à ces questions et à d'autres. Allons-y.
En bref: qu'est-ce que VLC?
VLC (Visible Light Communicatio) est une technologie de transmission de la lumière visible qui fait partie des OWC (Optical wireless communications). Cela semble impressionnant, futuriste et même quelque peu irréaliste. Toutes les maisons ont des lampes qui illuminent les pièces. Cette technologie permet l'utilisation de cette lumière comme canaux de transmission de données. Pour cela, une certaine plage de lumière visible est utilisée - de 400 à 800 THz. Selon le type de lampe, la vitesse de transfert de données change également: une lampe fluorescente - 10 kbit / s, et une LED - jusqu'à 500 Mbit / s. Afin de recevoir des données, l'appareil doit avoir une photodiode qui capte les signaux optiques. Dans certains cas, un appareil photo pour smartphone peut être suffisant pour cela.
VLC est une technologie très prometteuse. Son application la plus évidente est la vie quotidienne. Les appareils dotés de cette technologie peuvent se trouver dans des maisons privées, des appartements, des lieux publics, etc. Cependant, il existe certains inconvénients qui ralentissent le processus de vulgarisation de la technologie VLC. Il y a une tâche difficile - «forcer» le système VLC à fournir une bonne liaison montante (Uplink). Pourquoi est-ce difficile? Premièrement, les appareils mobiles sont limités en termes de consommation d'énergie et ne peuvent pas être équipés de sources lumineuses énergivores. Deuxièmement, pour que le fonctionnement du système VLC nécessite un faisceau "clairement" dirigé. En conséquence, les appareils mobiles que nous déplaçons et faisons tourner tout le temps ne peuvent pas utiliser pleinement la technologie VLC.
Une représentation graphique approximative du système VLC dans la vie quotidienneBien sûr, ces dernières années, divers groupes de recherche ont proposé l'utilisation d'émetteurs-récepteurs radiofréquence, infrarouges et réfléchissants pour résoudre le problème de liaison montante VLC au niveau physique. Cependant, en raison du modèle asymétrique utilisé dans la construction de systèmes VLC en utilisant les approches ci-dessus, de nouveaux problèmes se posent, cette fois avec la compatibilité des protocoles de niveau supérieur.
Pour éliminer tous ces défauts et problèmes, les chercheurs ont dû créer un système hybride VLC / Wi-Fi: liaison descendante VLC (liaison descendante) et liaison montante Wi-Fi. Cela a permis l'utilisation du protocole TCP standard. Tout fonctionne comme prévu, mais il y a toujours un problème - la commodité et la simplicité, ou plutôt leur absence. Un tel système hybride nécessite un équipement supplémentaire, un routage complexe, sans oublier une reprogrammation spéciale des prises. Tout cela, bien sûr, repoussera un utilisateur qui souhaite utiliser un système efficace mais facile à utiliser.
DetcLes chercheurs ont décidé de rechercher des solutions à tous les problèmes des protocoles de la couche transport. Selon les scientifiques, l'utilisation du protocole TCP standard est inefficace dans un système VLC hybride. Ils suggèrent d'utiliser DETCP (TCP partagé découplé), qui partage la transmission TCP bidirectionnelle. Autrement dit, un flux TCP peut utiliser deux connexions simultanément: la connexion principale en tant que liaison descendante et la connexion supplémentaire en tant que liaison montante. Ainsi, le DETCP permettra à l'utilisateur d'utiliser VLC avec une autre ligne de communication pour former un système hybride bidirectionnel sans égard à leur asymétrie. Et la programmation supplémentaire des sockets et le routage difficile sombreront dans l'oubli.
Aujourd'hui, la plupart des terminaux ont plusieurs interfaces. Pour résoudre le problème de multidiffusion, l'Internet Engineering Task Force (IETF / Internet Engineering Council) a proposé une modification du protocole TCP appelée
MPTCP - multipath TCP (multipath TCP). Il permet à une seule connexion de transmettre des paquets sur plusieurs chemins simultanément. Les chercheurs de la technologie VLC ont décidé d'appliquer cette modification à leur protocole. Le résultat a été le
protocole MP-DETCP .
Notions de base du concept de protocole DETCPLe protocole de couche transport le plus courant est précisément TCP, car il permet une transmission de données stable et fiable. Cependant, il y a des limites - tous les avantages de TCP ne seront pleinement réalisés que si la connexion physique permet d'utiliser pleinement le transfert de données bidirectionnel. Dans le cas de VLC, le système ne peut fournir qu'une liaison descendante menant à une interface réseau unidirectionnelle. Par conséquent, TCP ne peut pas utiliser pleinement toutes les capacités de transfert de données.
Le protocole DETCP a été créé spécifiquement pour résoudre ce problème, c'est-à -dire pour implémenter le transfert de données sur un système hybride composé de deux connexions indépendantes, qu'elles soient unidirectionnelles, bidirectionnelles ou mixtes.
Selon les chercheurs, les objectifs les plus importants du protocole DETCP sont:
- séparation des transmissions TCP bidirectionnelles en deux transmissions unidirectionnelles effectuées sur deux connexions physiques indépendantes et conformément aux paramètres utilisateur;
- rendre le protocole applicable sans avoir Ă modifier les applications existantes qui utilisent le protocole TCP standard.
Architecture de connexionLe socket est utilisé par le protocole TCP standard pour identifier une paire de points de terminaison pour chaque hôte. Ainsi, la connexion est liée à une connexion physique spécifique, indiquée par la prise. Cependant, dans un système unidirectionnel tel que VLC, la structure de connexion TCP existante ne peut pas fournir de transfert de données dans chaque direction entre les hôtes, car une connexion unidirectionnelle ne peut pas former un échange / transmission de données de circuit.
Pour résoudre ce problème, le protocole DETCP utilise une architecture de connexion différente de TCP. Il existe deux connexions physiques dans ce système qui sont responsables de TCP et sont conjointement responsables de la transmission.
Architecture DETCP (droite) et TCP (gauche):- SIP (adresse IP source) - adresse IP source;
- OSIP (adresse IP source d'origine) - adresse IP source principale;
- CSIP (adresse IP source complémentaire) - adresse IP source supplémentaire;
- DIP (adresse IP de destination) - adresse IP de destination;
- ODIP (adresse IP de destination d'origine) - adresse IP de destination principale;
- CDIP (adresse IP de destination complémentaire) - une adresse IP de destination supplémentaire.
Au niveau de la connexion, le transfert de données est toujours bidirectionnel, mais au niveau du canal, il y a deux transmissions distinctes dirigées dans des directions différentes.
Identification de la connexionDans le protocole TCP standard, chaque connexion est identifiée par un quadruple (adresse source, port source, adresse de destination et port de destination). L'essence de ce mécanisme de contrôle est que la connexion TCP est créée sur une connexion. Et comme DETCP est une combinaison de deux connexions, un tuple à 6 dimensions est nécessaire (adresse source principale, adresse source supplémentaire, port source, adresse de destination principale, adresse de destination supplémentaire et port de destination).
Pour que le système corresponde à la deuxième tâche que les chercheurs se sont fixée, la structure des prises est restée inchangée. Par conséquent, il était nécessaire de trouver un autre moyen d'inclure une adresse supplémentaire sur la pile de protocoles. Par conséquent, il a été décidé d'utiliser le fichier de configuration du noyau. L'utilisateur pouvait y spécifier des adresses supplémentaires, qui implémentaient un tuple à 6 dimensions avec la paire standard principale de sockets et des adresses supplémentaires. De cette façon, DETCP a assuré la compatibilité avec les protocoles de couche application.
Initiation de l'ouverture et de la fermeture d'une connexionLes processus pour lancer l'ouverture et la fermeture d'une connexion DETCP et TCP sont très similaires. Le mécanisme de la «poignée de main» a été utilisé, car il est le plus efficace. Cependant, deux changements importants ont été introduits qui distinguent DETCP de TCP:
- Étant donné que l'adresse secondaire locale est inconnue de l'hôte distant avant l'établissement de la connexion et que pour chaque hôte, les informations d'adresse complète sont requises pour effectuer un transfert fractionné, un paramètre TCP a été ajouté pour informer l'hôte distant des adresses supplémentaires pendant le processus d'initialisation de la connexion.
- La caractéristique de séparation est affichée à la fois au début de l'ouverture et à la fermeture de la connexion. L'image ci-dessous montre le processus d'une poignée de main à trois voies, coordonnée par un tuple à 6 dimensions.
Poignée de main à trois voies, coordonnée par un tuple à 6 dimensions, au stade de l'initiation de l'ouverture de la connexionTransfert de donnéesAfin de s'assurer que le processus de séparation est correct pendant le transfert de données, lorsque le prochain paquet est prêt à être envoyé, la direction de connexion actuelle doit être modifiée. Si cette direction va d'un hôte distant vers un hôte local, l'envoi se fera via une connexion supplémentaire.
Dans le processus d'obtention des données, un problème doit être résolu. Si le noyau utilise l'adresse reçue en analysant l'en-tête IP directement sur les paquets entrants de démultiplexage, ils peuvent être liés à la mauvaise connexion DETCP.
Par exemple, le serveur envoie un paquet de données au client via la liaison descendante et le client envoie la réponse via la liaison montante. Dans une telle situation, les adresses reçues de la réponse sont des adresses de liaison montante et pour le serveur, la connexion est connectée à des adresses de liaison descendante. Cette incompatibilité conduit à des erreurs de paquets. Afin d'éviter de tels problèmes, les chercheurs ont ajouté l'option TCP.
Fonctionnement du protocole DETCPVous devez d'abord configurer l'interface. Le protocole DETCP permet à l'utilisateur d'attribuer une direction à une interface spécifique («Out», «In», «Two-Way») via le fichier de configuration. Lorsque l'interface associée au socket est configurée comme interface unidirectionnelle, l'utilisateur doit désigner une autre interface comme interface supplémentaire. La combinaison des quatre interfaces détermine l'ensemble du processus de connexion.
Diagramme d'état DETCP (en utilisant une connexion supplémentaire à gauche pour envoyer des paquets, à droite - la connexion principale pour envoyer des paquets)À la fin du paragraphe précédent, nous parlons de l'utilisation d'une option TCP spécifique. Cette option est CPT_ADDR, créée spécifiquement pour garantir le processus de transfert de données correct.
Chaque paquet transmis comprend:
- SYN (client à serveur) - adresse IP supplémentaire du client;
- SYN / ACK (serveur à client) - l'adresse IP supplémentaire du serveur.
Le principe de séparation fonctionne à toutes les étapes du transfert de données (initiation de l'ouverture d'une connexion, transfert de données et initiation de la fermeture d'une connexion).
Initiation Ă l'ouverture d'une connexion:- SYN (client vers serveur) - la connexion principale;
- SYN / ACK (serveur à client) - connexion supplémentaire;
- ACK (client vers serveur) est la connexion principale.
Transfert de données:- Paquets du client au serveur - la connexion principale;
- Paquets du serveur au client - connexion supplémentaire.
Fermeture de connexion:- FIN (client vers serveur) - la connexion principale;
- ACK (serveur à client) - connexion supplémentaire;
- FIN (serveur à client) - connexion supplémentaire;
- ACK (client vers serveur) est la connexion principale.
Essais expérimentaux et évaluation des résultats
L'apparition de la mise en œuvre du système hybridePour les tests de protocole DETCP et MP-DETCP, ils ont été implémentés dans le noyau Linux. Le système hybride se composait d'un VLC (en liaison descendante, 20 m) et d'une connexion Ethernet (en liaison montante, 100 m). La bande passante de tous les canaux connectés au routeur et au système VLC a été fixée à 100 Mbps.
Topologie du réseau DETCP: en haut, une liaison montante supplémentaire, en bas, une liaison descendante VLC.
Topologie du réseau MP-DETCP:- Composés A et D - VLC de liaison descendante;
- Les composés B et E sont des composés supplémentaires;
- Les connexions C et F sont des sous-flux Ethernet.
Test de disponibilitéTout d'abord, il était nécessaire de vérifier si le DETCP pouvait utiliser efficacement la bande disponible dans un environnement de système hybride. Afin de tester la stabilité DETCP par rapport aux mauvaises performances des connexions supplémentaires, la liaison montante du client a été configurée de sorte que certains paquets de données ont été perdus. Il s'agit d'une sorte de test de résistance.

Le graphique ci-dessus montre les performances et l'efficacité élevées du DETCP dans un système hybride. La capacité du canal a été utilisée à 95%, alors qu'aucune perte de paquet n'a été détectée. Lorsque le pourcentage de perte de paquets est passé de 0,5 à 2,0, le degré d'utilisation du canal a diminué à 92%. Cependant, le DETCP est resté stable et efficace. Ce n'est qu'avec une augmentation du pourcentage de perte de paquets à 5 que les performances du DETCP ont commencé à décliner de façon spectaculaire.
La conclusion du test est que l'utilisation du DETCP est efficace dans les systèmes hybrides, et les connexions supplémentaires, bien qu'elles affectent la performance globale, sont très insignifiantes. Avec de nouvelles améliorations du système, ces effets négatifs peuvent être réduits au minimum.
Facteurs de performancePour tester le système et le DETCP, il est tout d'abord nécessaire de déterminer quels facteurs affecteront leurs performances. En utilisant ces facteurs, vous pouvez voir comment la productivité évoluera.
Facteur n ° 1: perte de paquetsL'interface a été configurée de sorte que de 0% à 4% des paquets de données ont été perdus au hasard.

Comme le montre le graphique ci-dessus, le débit diminue linéairement avec une augmentation du pourcentage de paquets perdus. Il a également été révélé qu'avec un taux de perte de paquets élevé, le degré de divergence dans les lectures de mesures répétées augmente et le taux de transmission moyen devient instable.
Facteur # 2: retard de transfert de donnéesPour vérifier l'effet de ce facteur, le retard a été réglé de 0 à 100 ms.

Le graphique ci-dessus montre la relation entre la bande passante et le délai de transfert de données. Lorsque cette dernière est inférieure à 20 ms, la bande passante est stable et la bande passante est pleinement utilisée. Si le retard atteint 50 ms, le débit moyen est considérablement réduit. Avec un délai de 100 ms, le débit chute jusqu'à 35% et la transmission des paquets devient instable.
Facteur 3: réorganisation des paquetsLe dernier facteur de vérification est la réorganisation des paquets: certains des paquets seront retardés, et certains, pour ainsi dire, en temps opportun.

Le diagramme ci-dessus montre la relation explicite entre la bande passante et la réorganisation des paquets. Tous les tests ont montré une réduction significative du débit. Cependant, avec une augmentation du retard, la diminution ne s'est pas produite de façon linéaire. Ainsi, avec un retard de 10 ms et le pourcentage de paquets réorganisés est de 5%, la réduction du débit se produit progressivement et de manière insignifiante. Cependant, à 10% ou 20%, les indicateurs se sont tout simplement effondrés.
Les débits à 5% des paquets réorganisés avec un retard de 10 ms correspondent approximativement à des indicateurs à 10% et un retard de 5 ms ou 20% et un retard de 2 ms.
En conclusion, pour un fonctionnement stable et efficace du système, il doit contrôler à la fois le nombre de paquets réorganisés et le temps de retard.
Si les performances de la liaison descendante VLC se détériorent dans un système où la liaison montante est présentée comme une connexion bidirectionnelle, comme la vente en gros ou le Wi-Fi, il vaut la peine d'envisager la possibilité de revenir à l'utilisation du TCP unidirectionnel standard exécuté sur la liaison montante. Cela peut être un moyen efficace d'améliorer la fiabilité du système lorsque les performances VLC en liaison descendante sont considérablement réduites.
Comparaison des performancesL'une des tâches principales du multithreading est d'augmenter le débit. Ce test teste MP-DETCP et DETCP dans les mêmes conditions de connexion. Les résultats sont enregistrés lorsque le taux de perte de données varie de 0% à 4%.

Le diagramme ci-dessus montre que bien que les performances VLC soient inférieures à DETCP, MP-DETCP affiche toujours un taux d'utilisation de bande élevé. Lorsque des données sont transmises sans perte de paquets, un débit de 115 Mbps est atteint, ce qui confirme la capacité du MP-DETCP à fournir une connexion efficace et efficiente. À mesure que le taux de perte de paquets augmente, le débit VLC est considérablement réduit. À l'heure actuelle, la même connexion Ethernet diminue également légèrement. Cependant, le débit global est resté à un niveau assez élevé. Cela signifie que si la connexion VLC est endommagée et bloquée, le transfert de données sera terminé sur une autre connexion.
Résultats des chercheursPour résoudre le problème de la transmission de données dans le système VLC, les chercheurs ont proposé d'utiliser le protocole DETCP pour séparer la transmission bidirectionnelle. Sur cette base, on peut dire que l'utilisation de MP-DETCP améliorera les performances du système VLC hybride.
Les protocoles DETCP et MP-DETCP ont passé avec succès des tests de performances et de fiabilité, démontrant l'efficacité de la séparation des connexions.La mise en œuvre des nouveaux protocoles servira de base à de nouvelles recherches sur les technologies de réseau. Y compris la recherche dans le domaine de l'hybridation de divers composés physiques pour obtenir des systèmes avec un haut niveau de performance et de débit.Vous pouvez vous familiariser avec les détails des études à l'aide du rapport sur ce lienEpilogueToute technologie nécessite un «polissage» avant de pouvoir être qualifiée d’efficace. Dans le cas des nouveaux protocoles DETCP et MP-DETCP, le travail est encore lourd. Cependant, les résultats expérimentaux peuvent déjà être considérés comme impressionnants. Le système VLC est désormais extrêmement populaire parmi les chercheurs, mais pas parmi les utilisateurs. Cet ordre de choses pourrait changer au cours des prochaines années. Et puis une ampoule grillée signifiera non seulement le manque d'éclairage, mais aussi Internet.Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une
réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).
Dell R730xd 2 fois moins cher? Nous avons seulement
2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la
création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?