Comment résoudre le problème des paquets TCP collants ?
Méthodes pour résoudre le problème des paquets persistants TCP : 1. Méthode d'envoi de longueur fixe, l'extrémité d'envoi utilise LEN comme longueur à mettre en paquet lors de l'envoi de données 2. Méthode de séquence de marques de queue, dans chaque donnée à envoyer ; Définir une séquence d'octets spéciale à la fin du paquet ; 3. Marquer l'en-tête étape par étape, définir un en-tête utilisateur et indiquer la taille de chaque paquet de données envoyé dans l'en-tête.
Méthodes pour résoudre le problème des paquets collants TCP :
1. Plan de conception 1 : Corrigé- longueur d'envoi
adopte une conception de longueur fixe lors de l'envoi de données, c'est-à-dire que quelle que soit la taille des données envoyées, elles sont mises en paquets dans une longueur fixe (pour faciliter la description, la longueur fixe est enregistré ici comme LEN), c'est-à-dire l'envoi Lors de l'envoi de données, la fin utilise LEN comme longueur pour la mise en paquets. De cette façon, le récepteur reçoit avec un LEN fixe, de sorte que l'envoi et la réception peuvent correspondre un à un. Lors du sous-package, il ne peut pas être complètement divisé en plusieurs paquets LEN complets. Le dernier paquet sera généralement plus petit que LEN. À ce stade, le dernier paquet peut remplir la partie manquante avec des octets vides.
Bien sûr, cette approche présente des défauts.
1. La longueur insuffisante du dernier paquet est remplie de parties vides, ce qui est un ordre d'octets invalide. Le destinataire peut alors avoir des difficultés à identifier cette partie invalide. Elle sert uniquement à remplir et n'a aucune signification réelle. Cela crée des difficultés pour le récepteur à traiter sa signification. Bien sûr, il existe des solutions qui peuvent être compensées en ajoutant des bits de drapeau, c'est-à-dire en ajoutant un en-tête de longueur fixe au début de chaque paquet de données, puis en envoyant ensemble la marque de fin du paquet de données. Le récepteur confirme la séquence d'octets invalide sur la base de cette marque, obtenant ainsi une réception complète des données.
2. Lorsque la longueur des paquets envoyés est distribuée de manière aléatoire, la bande passante sera gaspillée. Par exemple, la longueur d'envoi peut être de 1 100, 1 000, 4 000 octets, etc., et ils doivent tous être envoyés selon la longueur maximale fixe, qui est de 4 000. D'autres paquets contenant des paquets de données inférieurs à 4 000 octets seront également remplis pour 4000, entraînant un gaspillage inefficace de la charge réseau.
Pour résumer, cette solution convient aux situations où la longueur du paquet de données envoyé est relativement stable (tend vers une certaine valeur fixe) et donne de meilleurs résultats.
Recommandations d'apprentissage associées : PHP Programmation du débutant au compétent
2. Plan de conception 2 : Séquence de marques de queue
Définissez-en une à la fin de chaque paquet de données à envoyer Séquence d'octets spéciale, cette séquence a une signification particulière et est identifiée par le caractère de fin de la chaîne.
Avantages : il évite la complexité de la conception du programme, son efficacité est facile à vérifier et il est plus facile de répondre aux exigences de stabilité de la conception logicielle. En résumé, le plan trois est la meilleure politique !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Comment réinitialiser le protocole TCP/IP dans Win10 ? En fait, la méthode est très simple. Les utilisateurs peuvent entrer directement dans l'invite de commande, puis appuyer sur la combinaison de touches ctrl+shift+enter pour effectuer l'opération, ou exécuter directement la commande de réinitialisation pour configurer. aux utilisateurs une introduction détaillée sur la façon de réinitialiser la pile de protocoles TCP/IP dans Windows 10. Méthode 1 pour réinitialiser la pile de protocole TCP/IP dans Windows 10. Autorisations d'administrateur 1. Nous utilisons la touche de raccourci win+R pour ouvrir directement la fenêtre d'exécution, puis saisissons cmd et maintenons la combinaison de touches ctrl+shift+enter enfoncée. 2. Ou nous pouvons rechercher directement l’invite de commande dans le menu Démarrer et cliquer avec le bouton droit

TCP est un type de protocole de communication sur réseau informatique et un protocole de transmission orienté connexion. Dans le développement d'applications Java, la communication TCP est largement utilisée dans divers scénarios, tels que la transmission de données entre client et serveur, la transmission audio et vidéo en temps réel, etc. Netty4 est un cadre de programmation réseau hautes performances, hautement évolutif et performant qui peut optimiser le processus d'échange de données entre le serveur et le client pour le rendre plus efficace et fiable. Les étapes de mise en œuvre spécifiques de l'utilisation de Netty4 pour la communication TCP sont les suivantes : Introduction

Client TCP Un exemple de code client qui utilise le protocole TCP pour établir un dialogue continu : importationsocket#Configuration du client HOST='localhost'PORT=12345#Créez un socket TCP et connectez-vous au serveur client_socket=socket.socket(socket.AF_INET,socket . SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#Get user input message=input("Veuillez saisir le message à envoyer :&

Le « orienté connexion » mentionné ici signifie que vous devez établir une connexion, utiliser la connexion et libérer la connexion. L'établissement d'une connexion fait référence à la célèbre négociation à trois voies TCP. Lors de l'utilisation d'une connexion, les données sont transmises sous la forme d'un envoi et d'une confirmation. Il y a aussi la libération de la connexion, qui est notre TCP commun à quatre ondes.

Parmi les parties à la communication TCP, pour faciliter la description, les parties à la communication sont remplacées par A et B dans ce qui suit. Selon le protocole TCP, si B continue d'envoyer des données après que A ait fermé la connexion, B recevra la réponse RST de A. Si B continue d'envoyer des données, le système enverra un signal SIGPIPE pour informer que la connexion a été déconnectée et arrêtera l'envoi. Le comportement de traitement par défaut du système pour le signal SIGPIPE est de laisser le processus B se terminer. Le comportement de traitement par défaut du système d'exploitation pour le signal SIGPIPE est très hostile. Analysons-le. La communication TCP est un canal full-duplex, qui équivaut à deux canaux simplex, et chaque extrémité de la connexion en est responsable. Lorsque l'extrémité opposée « se ferme », bien que l'intention soit de fermer les deux canaux dans leur intégralité, l'extrémité locale ne reçoit que le paquet FIN. Selon les dispositions du protocole TCP, lorsqu'un

Pourquoi existe-t-il ce blog sur l'utilisation d'une seule connexion TCP pour envoyer plusieurs fichiers ? J'ai lu récemment des choses connexes. Il n'y a aucun problème à simplement utiliser Socket pour la programmation, mais cela n'établit que quelques concepts de base. On ne peut toujours rien faire pour résoudre le véritable problème. Lorsque j'ai besoin de transférer des fichiers, il me semble que je viens d'envoyer les données (données binaires), mais certaines informations sur le fichier sont perdues (l'extension du fichier). Et chaque fois que je ne peux utiliser qu'un seul Socket pour envoyer un fichier, il n'y a aucun moyen d'envoyer des fichiers en continu (car je compte sur la fermeture du flux pour terminer l'envoi des fichiers, ce qui signifie que je ne connais pas la longueur du fichier, donc je ne peux utiliser qu'une seule connexion Socket qui représente un fichier).

TCP et IP sont deux protocoles différents sur Internet : 1. TCP est un protocole de couche transport, tandis qu'IP est un protocole de couche réseau ; 2. TCP fournit des fonctions telles que la segmentation, le tri, la confirmation et la retransmission des paquets de données, ainsi que l'IP. Le protocole est chargé de fournir les adresses source et de destination des paquets de données ; 3. TCP est un protocole orienté connexion, tandis que le protocole IP est sans connexion ; 4. TCP fournit également un contrôle de flux et un contrôle de congestion.

Il était une fois une question d’entretien classique : que se passe-t-il dans le processus depuis la saisie de l’URL dans le navigateur jusqu’à l’affichage de la page ? Je pense que la plupart des étudiants qui se sont préparés peuvent y répondre, mais si vous continuez à demander : si le HTML reçu contient des dizaines de balises d'image, de quelle manière, dans quel ordre, combien de connexions sont établies et quel protocole est utilisé pour télécharger ces images ?