2017-06-12 4 views
2

Lorsque j'écris un programme Java qui parle à un point de terminaison/serveur HTTP, j'utiliserais idéalement une bibliothèque pour créer ma requête HTTP en utilisant les classes fournies par cette bibliothèque et passer l'appel.Où sont créés les paquets HTTP, TCP lors de la communication à l'aide d'un programme Java?

J'essaye de comprendre où exactement la création de paquet se produit pour chaque étape dans la pile de réseau? Comme lorsque j'utilise ces bibliothèques HTTP sont les handles de création de paquets HTTP par ces bibliothèques? Est-ce eux qui met toutes les informations HTTP en-tête et ajouter les données et créer le paquet?

Ensuite, où sont assemblés les paquets TCP? Est-ce fait au niveau du noyau? Le paquet HTTP créé est-il soumis au module réseau du noyau par le jvm et le noyau enveloppe le paquet avec informations TCP et ainsi de suite? J'essaye de dessiner une image claire de l'endroit où chacune de ces choses se produit ainsi je pourrais savoir exactement où je veux pirater dedans pour une idée de projet que j'ai.

Merci Vous
Shabir

Répondre

1

Lorsque j'utilise ces bibliothèques HTTP sont la création de paquets HTTP gère ces bibliothèques?

Il n'existe pas de paquet HTTP. Il y a des requêtes HTTP et des réponses. Voir ci-dessous.

Est-ce eux qui mettent toutes les informations d'en-tête HTTP et ajoutent les données et créent le paquet?

La bibliothèque crée les en-têtes. L'application fournit les données.

Ensuite, où sont assemblés les paquets TCP?

Il n'existe pas de paquet TCP. Il y a des segments TCP et des paquets IP (et des trames Ethernet, ...). Voir ci-dessous.

Est-ce fait au niveau du noyau?

Oui.

est le paquet HTTP créé soumis au module de réseau du noyau par la machine virtuelle Java

Essentiellement oui.

et le noyau enveloppe le paquet avec des informations TCP et ainsi de suite?

Oui. Plus précisément, la couche TCP de la pile réseau fournit l'en-tête TCP et l'isage des segments, la couche IP fournit l'en-tête IP et la mise en paquets, etc.

+0

Merci et excusez-moi d'utiliser le mot ** header ** pour tous les segments de la pile réseau. – Shabirmean

+0

Vous ne l'avez pas fait. Vous avez utilisé le mot «paquet» pour toutes les couches de données. – EJP

+0

Okay. Encore pardon :). Et merci encore .. – Shabirmean