IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

qu'est ce qu'une frame?


Sujet :

Développement

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut qu'est ce qu'une frame?
    voici surement une question de débutant...
    je cherche à savoir comment est implémentée une trame échangée entre un client et un serveur
    globalement une trame du type:
    Header
    -> application destinataire
    -> length
    message1
    -> message_id
    -> length
    -> value
    message2
    -> message_id
    -> length
    -> value

    ... ressemble vraiment à une structure!
    si je code cette trame comme une structure et que je souhaite l'envoyer par TCP/IP via une socket, ca vous semble logique ou bien je n'ai vraiment rien compris?

    merci d'avance

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut coorection: qu'est ce qu'une trame
    désolé...

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: qu'est ce qu'une frame?
    Citation Envoyé par vincetrader
    voici surement une question de débutant...
    je cherche à savoir comment est implémentée une trame échangée entre un client et un serveur
    globalement une trame du type:
    Header
    -> application destinataire
    -> length
    message1
    -> message_id
    -> length
    -> value
    message2
    -> message_id
    -> length
    -> value

    ... ressemble vraiment à une structure!
    si je code cette trame comme une structure et que je souhaite l'envoyer par TCP/IP via une socket, ca vous semble logique ou bien je n'ai vraiment rien compris?
    Les mécanismes mis en place pour transporter des données d'une machine à l'autre s'appuient sur des flux d'octets. Peu importe les moyens physiques mis en oeuvre, d'un coté, on émet un buffer d'octet (adresse, longueur), et de l'autre coté on reçoit un bufer d'octet identique (sauf accident toujours possible). On parle de niveau applicatif : c'est l'utilisateur (ou le programmeur) qui définit ses formats de données. (texte, images, son etc.). Bien sûr, un mécanisme d'adressage permet de connecter une machine à une autre (liaison point à point) puis de créer des réseaux 'liasons point-multipoints' etc.

    Ce qui définit l'organisation des données et des en-têtes (routage, contrôle, indications diverses) est le protocole. Selon le type de liaison et de réseau utilisé, ont pourra utiliser tel ou tel protocole.

    Certains définissent les echanges au niveau physique (Asynchrone, HDLC, Ethernet, Token ring), d'autres à des niveaux supérieurs (transport, routage etc.) indépendamment des couches physiques (TCP/IP, X.25 etc.). Les détails appartiennt à un cours sur les réseaux. C'est un métier.

    Selon le protocole, le transport peut être de type 'non connecté' (send and forget : par exemple UDP) ou connecté (send and acquit : par exemple TCP).

    Je pense qu'il existe des informations sur ce site. Il faut fouiller un peu. Sinon, on trouve beaucoup d'informations sur le net.

    Concernant ta remarque sur les structures. Elle n'est pas fausse, et certains protocoles applicatifs comme XDR permettent de spécifier des formats de données indépendants de la machine. En effet, la représentation interne des données peut varier énormément d'une machine à l'autre (endianness, taille des types, codage des flottants, format des chaines, jeux de caractères etc.) C'est pour ça qu'il existe des protocoles indépendants.

    En aucun cas, il ne faut appliquer directement une structure 'langage' (C ou C++, par exemple) à des flux de données 'réseau'. Il faut obligatoirement passer par une bibliothèque d'abstraction qui fera les conversions nécessaires pour obtenir un format de réseau portable et indépendant... oui, j'insiste... Le problème est qu'il n'existe pas qu'un format portable... On connait déjà HTML, XML...

  4. #4
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Les trames existent au niveau de la couche 2 du modèle OSI (couche liaison) or toi tu parles d'envoyer quelque chose à partir d'une application, donc de la couche 5 (dans le modèle simplifié TCP/IP) ou 7 (dans le modèle OSI). Au niveau applicatif tu n'as pas à te soucier des trames, de l'ordre d'envoi ou de réception, etc. Tout cela est le travail de la couche TCP/IP qui est automatiquement mise en oeuvre en utilisant les sockets en programmation. Dans une application donc, tu ne dois te soucier que des données "métier" de ton application, c'est-à-dire de l'information utile. Les headers, adresse destinataire, flags etc. etc. sont gérés par les couches basses, qu'une application n'utilise jamais directement.

    A moins que tu veuilles reprogrammer toute la couche TCP/IP de ton système d'exploitation ou implémenter un nouveau protocole exotique

Discussions similaires

  1. std::cout lorsque une frame est instanciée
    Par salucoco dans le forum wxWidgets
    Réponses: 4
    Dernier message: 22/05/2008, 00h40
  2. Savoir si une frame est affichée ?
    Par Ggamer dans le forum wxPython
    Réponses: 5
    Dernier message: 31/03/2008, 15h32
  3. menu actif surligné lorsqu'il est dans une frame
    Par vertalan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/06/2006, 15h38
  4. Détecter qu'une page HTML est ouverte dans une frame
    Par Pigoulou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 14h07
  5. [javascript]Savoir quand une frame est chargée
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/08/2005, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo