Articles of tcp

envoyer un paquet TCP personnalisé en utilisant sendto () dans c?

Pour être précis, j’ai créé ce programme TCP simple pour envoyer un paquet TCP simple sur le réseau à une machine de destination, mais d’une manière ou d’une autre, je ne sais pas vraiment, qu’est-ce que je fais mal, mais il ne semble pas envoyer de paquets à la destination hôte. De plus, je ne […]

FIN TCP non envoyé en faisant ‘close ()’ pour un client TCP multi-thread

J’ai écrit ci-dessous un client TCP multi-thread qui génère en principe un thread séparé pour recevoir les données, mais les données sont en cours d’écriture dans le thread principal uniquement après avoir pris une entrée de l’utilisateur en entrée standard. Maintenant, après avoir appuyé sur ctrl ^ D, l’implémentation sort de la boucle (autour de […]

Sous Linux / Mac / Windows, est-il possible d’accéder à l’horodatage TCP et / ou au RTT dans l’espace utilisateur d’un socket TCP connecté?

Sous Linux / Mac / Windows, est-il possible d’accéder à l’horodatage TCP et / ou au RTT dans l’espace utilisateur d’un socket TCP connecté? Je fais référence à l’horodatage TCP et au calcul RTT associé activé par la RFC 1323 . Évidemment, je pourrais utiliser un socket brut, mais le socket ne serait ni connecté […]

Accès aux champs d’en-tête TCP (sans API de socket brut)

J’écris une application qui doit accéder aux champs d’en-tête TCP, par exemple un numéro de séquence ou un champ d’horodatage TCP. Est-il possible d’obtenir des numéros de séquence (ou d’autres champs d’en-tête) en opérant sur l’API de socket sans écouter sur un socket brut? (Je veux éviter de filtrer tous les paquets). Je regarde le […]

Comment puis-je explicitement attendre un TCP ACK avant de continuer?

Est-il possible d’obtenir send () d’attendre que toutes les données envoyées aient été acquittées par ACK (ou de renvoyer -1 si le délai d’attente d’un ACK est écoulé), ou existe-t-il un autre mécanisme permettant d’attendre la ACK après le send () mais avant de faire autre chose? J’utilise l’API de sockets standard Unix Berkeley. Je […]

Comment envoyer un tableau d’entiers sur TCP en C?

Je suis porté à croire que write() ne peut envoyer que des tampons de données d’octet (c’est-à-dire un caractère signé), alors comment envoyer un tableau d’entiers longs en utilisant la fonction C write() de la bibliothèque sys / socket.h? Évidemment, je ne peux pas convertir ou convertir longtemps en caractères car tout nombre supérieur à […]

Envoi de message sur TCP / IP à l’aide de sockets

J’essaie d’envoyer des données entre un client / serveur, les données ressemblent à typedef Struct Message { int id; int message_length; char* message_str; }message; J’essaie d’ Write et de Read ce message entre un client et un serveur mettant à jour en permanence les éléments de cette structure. J’ai entendu que Writev pouvait faire l’affaire. […]

libpcap – La longueur de l’en-tête d’un paquet ip est égale à zéro octet avec les demandes TCP en boucle de rappel

J’essaie de visualiser les informations de charge TCP avec l’aide de libpcap. Pour ce faire, je dois localiser la position de la charge utile en mémoire. J’utilise ce guide de programmation avec Pcap pour déterminer l’emplacement de la charge utile de la demande. Lors de la détection de paquets provenant d’un client résidant sur le […]

Android NDK socket connect () retourne 0 quand il devrait échouer en 3g

J’ai écrit un socket dans le NDK android et un serveur dans c. Il est capable de se connecter au serveur très bien. Toutefois, si le serveur est en panne ou si je tente de le connecter à une adresse IP aléatoire différente, l’appel à la connexion renvoie toujours 0 lorsqu’il doit renvoyer -1. Voici […]

Est-il préférable d’envoyer 1 gros morceau ou beaucoup de petits quand on utilise TCP?

Après avoir accept() une connexion, puis write() sur le socket client, est-il préférable d’écrire toutes les données que vous souhaitez envoyer en une fois ou de les envoyer en morceaux? Par exemple: accepter, écrire 1 Mo, déconnecter …ou… accepter, écrire 256 octets, écrire 256 octets,… n, déconnecter Mon instinct me dit que le protocole sous-jacent […]