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

x86 32-bits / 64-bits Assembleur Discussion :

problème zlib Linux


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Ah ok. Perso je suis pas rentré en détail dans la compréhension du systême crc, par manque de temps, mais j'y reviendrais plus tard.
    Mais j'ai vu qu'il y avait pleins de méthodes différentes de calcul.

    Le crc32, c'est la partie la plus simple du gzip.
    Pas que le reste soit compliqué, mais je dirais plutôt que c'est obfusqué.
    Comme je ne sais plus qui sur le forum qui disais que "l'obfuscation de code permet de faire du partage de mauvaise fois".
    J'ai trouvé cette phrase vraiment brillante car tellement vraie.
    Et je trouve que c'est un peu la même pour deflate.
    Comme si l'auteur voulait réserver la compréhension de la rfc qu'à certaines personnes (celles qui vont se creuser la tête).

    Le faite est que la rfc est le moins explicite possible.
    Il y a des déductions à faire pour comprendre les choses, elles ne sont pas toutes explicites. Voilà pourquoi je parle d'obfuscation de doc.

    Et pourtant, la partie fixed pourrait être codé par un enfant, tellement au final c'est simple.
    Ca doit être pareil pour la dynamique, mais je n'ai pas encore eu le temps de m'y mettre vraiment.

  2. #22
    Membre éclairé

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    Octobre 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 168
    Points : 807
    Points
    807
    Par défaut Calculateur de CRC
    Bonjour,

    Citation Envoyé par n5Rzn1D9dC
    Par contre méfie toi des sites. Au final ils disaient bien tous n'importe quoi.
    Tous les crc32 que je vérifie pour le format gzip sont bien identiques aux résultats que j'obtiens lorsque je vérifie avec mon code (donc celui de la rfc).
    Ce qui veut dire que la quasi intégralité des sites "online crc32" ne donnait pas un bon résultat.
    Soit c'était pas du crc32, soit ils ont mal codé leur code, je ne sais pas.
    Je crois que ces différences sont liées au fait qu'il peut y avoir différentes implémentations du CRC32.

    Dire simplement "CRC32" n'est pas suffisant il faut préciser de quel standard il relève.

    Le CRC32 le plus communément utilisé est le CRC32 IEEE 802.3 ou CCITT-32 mais il peut (ou pourra) en exister d'autres (voir Ici).

    Ce standard (IEEE 802.3) définit, entre-autres éléments, le polynôme à utiliser comme suit :

    X^32 + X^26 + X^23 + X^22 + X^16 + X^12 + X^11 + X^10 + X^8 + X^7 + X^5 + X^4 + X^2 + X^1 + X^0

    X^1 étant égal à X et X^0 égal à 1, les deux derniers termes sont souvent remplacés par "X + 1".
    Les termes manquants (X^31 à X^27, X^25, X^24, ...etc.) sont supposés égaux à 0.

    On remarquera que le polynôme peut comporter jusqu'à 33 termes (d'indice 0 à 32) or, sous sa forme hexadécimale, il est exprimé par un LongWord de seulement 32 bits.
    Le 33ème terme est implicite mais ce peut être soit X^32 (toujours à 1) et le LongWord représente les termes X^0 à X^31, soit X^0 (à 1 également) et le LongWord représente alors les termes X^1 à X^32.

    Par ailleurs les choix d'implémentation du calculateur peuvent imposer d'inverser l'ordre des bits du polynôme, le terme d'indice le plus haut correspondant alors au bit de poids le plus faible.

    En conséquence, selon les implémentations, un même polynôme peut être représenté par plusieurs valeurs hexadécimales différentes.
    Par exemple le polynôme IEEE 802.3, tel qu'énoncé plus haut, pourra être:
    • 0x82608EDB // X^0 implicite, X^1-->bit 0, X^32-->bit 31
    • 0xDB710641 // X^0 implicite, X^1-->bit 31, X^32-->bit 0
    • 0x04C11DB7 // X^32 implicite, X^0-->bit 0, X^31-->bit 31
    • 0xEDB88320 // X^32 implicite, X^0-->bit 31, X^31-->bit 0

    En conclusion il faut être conscient de ces variations lorsqu'on utilise un calculateur de CRC (ou qu'on en programme un), surtout si l'on spécifie le polynôme sous forme hexadécimale.

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Ok merci pour cette explication.

    J'avais soupsonné qu'il puisse y avoir des crc-32 différents, mais ça me semblait absurde, vu que personne ne précisait rien d'autre que "crc-32".

    Pour gzip j'ai simplement recodé leur exemple, mais sinon voilà ce que dit la rfc un peu plus haut pour ceux que ça intéressent:

    CRC32 (CRC-32)
    This contains a Cyclic Redundancy Check value of the
    uncompressed data computed according to CRC-32 algorithm
    used in the ISO 3309 standard and in section 8.1.1.6.2 of
    ITU-T recommendation V.42. (See http://www.iso.ch for
    ordering ISO documents. See gopher://info.itu.ch for an
    online version of ITU-T V.42.)
    Bon par contre, il faut payer pour avoir accès au standard iso : /
    Mais si on se réfère à la recommandation ITU-T v.42, on obtient ces informations:

    V.42 is an error correction protocol. Its function is to allow the receiver to immediately request re-transmission of any lost data packets. However, it does not guarantee how quickly the error-free data will be delivered to the receiving end. V.42 is generally included in dialup modems. Also defines the ITU-T standard CRC-32 polynomial as x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1, and includes the LAPM framing protocol.

  4. #24
    Membre éclairé

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    Octobre 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 168
    Points : 807
    Points
    807
    Par défaut CRC32 (suite)
    Bon, cela fait déja trois standards majeurs pour adopter le même CRC32:
    • IEEE 802-3 (Ex CCITT, Ethernet),
    • ISO 3309 (HDLC),
    • ITU-T V42 (un organisme "onusien" de régulation des télécom mondiales)


    Un autre lien pour une liste plus étoffée (mais non exaustive) des différents CRC avec leurs polynômes:

    http://en.wikipedia.org/wiki/Polynom...note-koop02-10

    Dans cette page, j'attire ton attention sur le CRC nommé CRC-32-Adler qui n'est pas un CRC mais un algorythme de Checksum qui serait propre à zLib. Comme tu a dit travailler avec zLib je te le signale pour le cas où. Pour plus d'info clique sur le lien Adler-32 qui est fourni.

    Note: dans ton précédent post le lien sur gopher://info.itu.ch ne marche pas (du moins sur mon PC) mais j'en ai trouvé un autre qui télécharge directement le PDF en français:
    https://www.itu.int/rec/dologin_pub....F-F&type=items

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Ok merci pour ces info je vais regarder tout ça.
    Pour le lien, oui malheureusement c'est pareil pour la plupart des liens des rfc et c'est bien dommage car c'est souvent des choses intéressantes comme des exemples ou des docs/standard sur lequelles l'auteur s'est référé.

  6. #26
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    il y a a ma connaissance deux site qui publient toutes les rfc

    http://www.rfc-archive.org/getrfc.php?rfc=951
    http://www.rfc-editor.org/rfc/rfc951.txt

    la j'ai prit une rfc sur bootp comme exemple mais il suffit de modifier le numéros dans l'URL pour obtenir celle que l'on souhaite

  7. #27
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Il y a aussi des traductions française au cas où ça t'interesserait de l'avoir en vf.
    C'est plutôt bien fait.. Celui ou ceux qui font ça assure je trouve.
    Pas d'énormes libertés prises dans la trad comme pour le sous-titrage des séries ou films, et heureusement, puisqu'il s'agit de doc technique.

    Bon il n'y a en pas beaucoup, mais les principales y sont.
    Je crois d'ailleurs que celle dont tu parles a été traduite.
    http://abcdrfc.free.fr/

    Sinon il y a un site officiel, souvent moins connu que les autres d'ailleurs.
    http://www.ietf.org/rfc.html

Discussions similaires

  1. Petit problème avec linux (mount et NTLDR)
    Par tazmania dans le forum Administration système
    Réponses: 0
    Dernier message: 08/10/2007, 12h43
  2. Problème installation linux compact flash
    Par rouski dans le forum Autres
    Réponses: 2
    Dernier message: 22/08/2007, 13h04
  3. [C : system()] Problème sous Linux RH3
    Par Lucinda dans le forum C
    Réponses: 2
    Dernier message: 12/06/2007, 17h54
  4. Problème connection à Linux sur Windows via Putty
    Par xionis dans le forum Réseau
    Réponses: 2
    Dernier message: 13/04/2007, 11h48
  5. [Debutant] Problème Socket Linux UDP
    Par AxldenieD dans le forum Réseau
    Réponses: 3
    Dernier message: 01/11/2005, 18h08

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