les performances du réseau client Android mise au point de la mise à niveau du protocole HTTP / 2

 un

contour

HTTP / 2 (Hypertext Transfer Protocol version 2) le protocole a été proposé en Décembre 2014, mai 2015 RFC 7540 a été publié. Google, Facebook et d'autres sociétés Internet étrangères ont rapidement suivi après la naissance du HTTP / 2 protocole, les sociétés Internet domestiques ont également commencé à introduire HTTP / 2 protocole dans la section d'extrémité mobile.

visites de l'utilisateur Jingdong de côté sans fil de croissance rapide, montrant le contenu du côté sans fil aussi du texte, des images à une variété de vidéo plus diversifiée, la diffusion, VR, etc., ce qui nécessite le protocole HTTP / 2 pour optimiser les performances du réseau, jeter les bases pour le développement futur de l'entreprise bonne base. En outre, la mauvaise environnement transporteurs nationaux, divers détournements de trafic et d'insertion publicitaire de sérieux problèmes, avec l'avancée de l'ensemble du projet de la station HTTPS, le protocole HTTP / 2 est basé sur HTTPS, par rapport à HTTPS + HTTP / 1.x peut apporter plus une bonne expérience.

client Jingdong Android à la fin de 2016 a été mis à jour le protocole HTTP / 2, à travers le Jingdong 2017618 et double 11 grande promotion, 0 la station échoue, le terminal mobile entre dans le marquage jingdong HTTP / 2 fois .

 II

Présentation de client applications procédure de protocole HTTP / 2

cadrage binaire

Entre la couche d'application et la couche de transport ajoute une couche de cadrage binaire, afin d'obtenir sans changement sémantique HTTP, la méthode HTTP, le code d'état, et le champ d'en-tête URI, HTTP1.1 limitations de performances exceptionnelles, l'amélioration des performances de transmission , faible latence et un débit élevé.

Dans la couche de cadrage binaire, HTTP2.0 va transférer toutes les informations sont réparties en petits messages et cadres, et sont codés en utilisant un format binaire.

la tête de compression

HTTP / 1.x En raison de tête de cookie et l'agent utilisateur est facile à développer, et à chaque fois répété la transmission.

http2.0 utilisent des algorithmes de compression HPACK pour réduire la taille de l'en-tête à transmettre, mises en cache une copie de chacun des tableau de communication des partis champs d'en-tête, tant pour éviter la transmission d'en-tête en double, mais réduit également le nombre de paquets à transmettre, réduisant ainsi la latence.

Multiplexeur

Le client et le serveur peut un message HTTP dans un non dépendant cadre, puis envoyé hors d'usage, et enfin à l'autre extrémité de celui-ci à réassembler.

Une connexion peut être lancé simultanément des demandes nombreuses et peuvent retourner une réponse en même temps.

 triple

Applications client optimisé basé sur le protocole HTTP / 2

programme HttpDns compatibles

L'interface client et de l'image unifiée HTTP / 2 adaptateur réseau une demande de la recherche HttPDns services, en évitant le détournement d'avion de détermination des opérateurs, améliorer le taux de réussite des utilisateurs à résoudre, mais a également accéléré le commutateur analyse côté serveur prend effet, ce qui réduit l'échec sphère d'influence

Parce que Android réseau natif l'interface HttpURLConnection ne prend pas en charge HTTP / 2 protocole, Jingdong mobile intègre le module réseau client place composants Open Source Network Okhttp, Okhttp ensemble de support natif pour le protocole HTTP / 2, mais lorsque le service HttpDns compatible, vous devez les avantages suivants problème:

Un problème: URL dans l'hôte a remplacé le protocole HTTP / 2 après la conversion IP HttpDns: autorité correction de champ

Module d'accès réseau client Jingdong est HttpDns requête URL du champ hôte est émis HttpDns remplacer l'adresse IP, puis augmenter dans le champ d'en-tête de l'hôte, ce qui peut assurer que le serveur peut être correctement transmis la demande de retour nginx. HTTP / 2 protocole utilisé dans les documents RFC: Champ autorité alternative champ Hôte HTTP / 1.xHeader dans, Okhttp non sans faire la conversion entre les deux champs version antérieure V3.6.0, conduisant à l'échec de nginx correct du serveur: autorité terrain, transmet la demande à atteindre dans l'erreur.

Deuxième question: URL de l'hôte remplacé par SSL / TLS handshake champ initial de la SNI correction IP après HttpDns

SNI (Server Name Indication) pour résoudre un serveur en utilisant plusieurs noms de domaine et les certificats extensions SSL / TLS. Principe de fonctionnement est d'établir d'abord envoyé à visiter le site avant la connexion SSL / TLS nom de domaine (hostname) en connexion au serveur afin que le serveur renvoie un certificat approprié selon le nom de domaine. Étant donné que le processus de transfert est basé sur la couche de transport SNI (TCP) couche, si un protocole HTTP-champ En-tête couche de ceinture hôte est pas en vigueur, nous avons fait ici pour le processus de transformation transfert Okhttp SNI paramètres Sni passé de la couche d'application par couche de transport, ce qui résout le problème de l'Sni analysé URL existant pour le serveur ne reconnaît pas.

Question trois: HTTP / 2 à long réseau de correction handshake établissement connexion questions de vérification de domaine

Https vérification du nom de domaine est une partie importante du processus de prise de contact pour vérifier la validité du certificat, le but est de vérifier la légitimité d'un certificat délivré en vertu de l'organisation du côté service, si l'on ignorait simplement vérification de nom de domaine, sera l'occasion aux intermédiaires. poignée de main Okhttp hôte est analysée à partir de l'URL, si l'URL est remplacée par l'adresse IP de l'hôte de HttpDns, processus de vérification poignée de main Https échouera, voici la couche de transport par processus de négociation Okhttp pour transformer le pass-through correcte champ Host, l'adaptation de la HttpDns IP directe connecter ce scénario.

longue optimisation de la gestion de connexion HTTP Client / 2

Nous avons trouvé le problème : Une fois le client Android HTTP / 2 mise à niveau du protocole, il y a un certain nombre de commentaires des utilisateurs après l'application à long terme au premier plan ou l'arrière-plan le téléphone pendant longtemps après les applications sillage du sommeil Jingdong sont phénomène des heures supplémentaires chargés.

analyse : Plainte contre ces problèmes, la conclusion de l'analyse: la nécessité de maintenir le lien client régulier de connexion réseau longue et Android version du système processus itératif avec le système de gestion de la consommation d'énergie et de la circulation plus strictes, dormiront ou inactif niveau du système hors tension lors de la connexion réseau, l'absence de notification de la connexion de la couche d'application a été brisée, parce que le délai de demande de réseau, la demande de délai d'attente trop longue, l'expérience utilisateur médiocre.

Programme d'amélioration : Demande a expiré afin d'améliorer la situation, le client longtemps après que la connexion est perdue pour Okhttp nouveau mécanisme de battement de coeur de cadre Ping, le processus est le suivant:

client basé sur HTTP / 2 protocole de communication de réseau, HTTP / 2 multiplexé obtenu à partir du bas, une pluralité de demande d'une demande de liaison partagée, lorsque le client est inactif, le lien reste vivante

ici pour obtenir un temps fixe intervalle des trames Ping envoyées au serveur, si le serveur peut renvoyer un résultat dans le délai imparti, puis passez à la prochaine ronde du rythme cardiaque

Après un total de battement de coeur n (n est le nombre de retransmissions du serveur rythme cardiaque) fois, si elle est toujours dans l'état de repos, le cadre envoie activement connexion libérable goaway au serveur, et ensuite libérer la connexion locale

Si elle est détectée dans le n-ième période de rythme cardiaque à un délai d'attente de rythme cardiaque particulier, la libération immédiate connexion locale, recommencez la demande de connexion à l'autre

L'effet de l'amélioration : Une fois le mécanisme de battement de coeur de cadre Ping, le sommeil ou à réduire à long réception des plaintes de problèmes tels délai d'attente de charge presque disparu.

BTW : Après client Jingdong de HTTP / 2.0, alors que l'introduction de la fonction de pulsation de connexion longue est proposé un état viable pour une longue besoins de connexion à Okhttp détermination officielle.

Okhttp dans la dernière version 3.10.0 de cette année a augmenté la disponibilité de connexion longue mécanisme Ping / Pong HTTP / 2 pour déterminer la connexion.

Maintenant, vous développez les élèves peuvent utiliser la version officielle pour améliorer la connexion à long délai d'attente problème.

Processus poignée de main SSL / TLS profondeur d'optimisation

Procédé d'optimisation de la profondeur de prise de contact terminal mobile Jingdong, un point important est d'optimiser session Ticket / Session mécanisme de cache est introduit pour optimiser la procédure d'établissement de liaison HTTP / 2.

HTTPS existants, les besoins du protocole de connexion HTTP / 2 à définir, chaque nouvelle TLS handshake besoin continu pour créer une clé de cryptage partagée, le processus de négociation sur le processus de prise de contact standard TCP exige également deux arrière supplémentaires et vient processus (poignée de main à sept voies), il entraînera des retards dans l'efficacité requise. TLS a plusieurs caractéristiques supplémentaires peuvent être utilisés pour éliminer les deux sens, comme la réutilisation d'une session de la session, le mécanisme de réutilisation de session est deux ID de session standard (RFC 5246) et des tickets de session (RFC 5077), en utilisant une technique dans laquelle, un client peut être réutilisé session, avant la session est créé cela peut réduire avant et la négociation du serveur est réussie, un processus de retour en arrière.

Jingdong client Android prend en charge les billets de session TLS réutilisation mécanisme, sessiontickets est crypté avec seul le serveur connaît les informations de clé de sécurité grâce à la session, éventuellement enregistré sur le terminal mobile. poignée de main TLS final mobile pour apporter des tickets de session d'information, tant que le serveur peut déchiffrer la poignée de main avec succès peut être complétée rapidement.

programme de billets de la session comporte nettement mieux que le système d'ID de session, ont besoin en raison surcharge ID de session du serveur de stockage supplémentaire et assurer la cohérence de stockage en cluster, et les frais généraux de performance supplémentaire sur le serveur est grand. des tickets de session pour l'industrie d'atteindre un plus respecté programme pour la clé du serveur ticket de session risque de sécurité potentiel, Jingdong Server à l'aide de façon unifiée et changé régulièrement KEY déployés pour assurer la sécurité.

L'accès utilisateur et réseau surveillance de la qualité optimisation de reprise après incident

Depuis le premier accès protocole HTTP / 2, l'application cliente de la stabilité de l'accord est inconnu, donc procédez comme suit pour optimiser l'accès à surveiller la qualité et la reprise après incident de:

surtension en tenant compte du nombre d'utilisateurs en ligne, la performance du serveur peut provoquer une pression excessive, le client augmente le protocole ligne de commande de commutation HTTP / 2 sur l'état, une fois l'anormal, le commutateur peut ajuster le rollback

augmentation anormale Buried du HTTP / 2 rapport ouvert, s'il est anormal de voir les problèmes en temps opportun en surveillant les demandes de renseignements de la plate-forme et l'utilisateur anomalies détails

Lorsque lorsque le HTTP / 2 demande une exception se produit, le client effectue une nouvelle tentative mécanisme initié déclassement, la stratégie de déclassement ici est un peu plus compliqué, contenant downgrade du protocole de nouvelle tentative, test intégré de numérotation, la politique de routage intelligent, l'objectif est d'améliorer le client réseau de catastrophe. L'auteur décrit en détail ne démarre pas

le personnel de surveillance des statistiques de performance, de développement et d'exploitation et de maintenance du réseau d'augmentation peuvent surveiller les performances globales du réseau au sein de l'application, le montre la prochaine image HTTP / 2 montant total, le temps de réponse des interfaces natives a augmenté de 30% pour améliorer l'effet est remarquable

 boutique

résumé

En réponse à l'appel de clairon des temps est HTTPS de la station, terminal mobile Jingdong d'ici la fin de 2016 pour atteindre le HTTP / 2 lignes de protocole montant total déployé, a résisté à l'année d'essai millions de niveaux de trafic simultané, à résoudre de nombreux problèmes difficiles. En ce qui concerne la sécurité des réseaux et de l'efficacité, terminal sans fil Jingdong est optimisé encore en permanence pour améliorer les performances, quelle que soit l'architecture du système ou les détails techniques, le fonctionnement et l'équipe de maintenance et de développement ont payé beaucoup d'efforts et de sueur, nous aurons plus de suivi de l'essence pour montrer à tout le monde S'il vous plaît suivre l'avis nous!

Saisir la queue de la Coupe du Monde! BAIGNANT APE a lancé un nouveau football de ne pas noter la série!
Précédent
Comment développer une pâtée de porc? Reporter des visites inopinées: un restaurant de fin de soirée « alimentation directe » de mille cochons manger
Prochain
2017 transcription entreprises centrales appartenant à l'Etat | Nouvelles points de conférence SOE réforme et le développement (a)
Mai Rui Bao nouvelle XL sortira le mois prochain, le nouveau 1,3T, le prix de départ devrait réduire
Le travail acharné du nouveau jeu de rôle de la police! TVB niche hôte: portant émeute d'exécution de 17 lbs
High Street peut aussi être très discret! OFF-WHITE x TheDoubleF série commune publiée!
Dongfeng look paysage nouvelle stratégie de marque d'une nouvelle orientation pour les jeunes
L'original est un maître comique! TVB niche populaire avec explosion « amour pour rentrer à la maison » de ruban rouge pour porter gagner de l'argent
Yan très grande valeur! Virgil Abloh x Converse Chuck 702.0 exposition physique complète!
Faites tout de suite! rapport de travail du gouvernement, huit tâches ont calendrier!
compréhension de la technologie plug-profondeur Android
Rallye de tester la nouvelle Guangzhou Automobile Chi Chuan GS5270T
15 PPT, avec vue sur la réforme et le développement des points de conférence de presse appartenant à l'État!
Shawn nouveau démonstration personnelle! En plus du quatrième anniversaire ce mois-ci, ne note pas, ne manquez pas cette famille commune!