Maison > Article > développement back-end > Question d'entretien PHP 2 : protocoles de transport utilisés
Le contenu de cet article concerne le protocole de transmission utilisé dans la deuxième question d'entretien PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
1. HTTP (hyper text transport protocol) : Protocole de transfert hypertexte. Il s'agit de l'un des protocoles de communication les plus utilisés sur Internet. Les programmes WWW utilisés par les internautes doivent se conformer à cette norme de protocole. Si un utilisateur souhaite accéder à des fichiers sur un certain serveur de ressources, notamment en parcourant, en téléchargeant, en exécutant, etc. des fichiers spécifiés sur le serveur, il peut accéder aux ressources WWW sur Internet via HTTP.
2. FILE : Protocole de transfert de fichiers local. Il s'agit d'une méthode d'obtention de fichiers depuis le propre ordinateur de l'utilisateur, grâce à laquelle l'utilisateur peut afficher sur l'écran du système de navigation les fichiers enregistrés sur son propre disque dur.
3. FTP (file transfer protocol) : Protocole de transfert de fichiers. Ce protocole est l'une des méthodes d'obtention de fichiers sur Internet. Il sert à transférer des fichiers entre les utilisateurs et les serveurs de fichiers. Grâce à ce protocole, les utilisateurs peuvent facilement visualiser le contenu du fichier sur le serveur distant et en même temps, ils peuvent copier le contenu requis sur leur propre ordinateur. D'un autre côté, si l'autorisation du serveur de fichiers permet aux utilisateurs d'utiliser des fichiers sur le serveur à des fins de gestion, l'utilisateur peut télécharger le contenu de son ordinateur local sur le serveur de fichiers pour que d'autres utilisateurs puissent le partager et modifier librement les fichiers ci-dessus. fichiers, tels que la suppression, le déplacement, la copie, le renommage, etc.
La couche de transport offre deux façons d'atteindre le réseau cible
Protocole de contrôle de transmission (TCP) : fournit un contrôle complet des erreurs et un contrôle de flux pour assurer une transmission normale des données. Il s'agit d'un accord orienté connexion. .
Protocole de datagramme utilisateur (UDP) : il fournit uniquement une détection d'erreur de base et est un protocole sans connexion.
Caractéristiques :
1) UDP :
Données du package
La taille des données est limitée (64 Ko)
Ne pas établir de connexion
Vitesse rapide, mais faible fiabilité
2) TCP :
Établir un canal de connexion
Taille de données illimitée
Vitesse lente, mais haute fiabilité
Étant donné que la couche de transport implique de nombreux éléments, tels que les ports, les sockets, etc., nous devons les comprendre pour le développement mobile , nous le présenterons en détail dans les articles suivants, nous ne l'expliquerons donc pas ici.
En tant que niveau le plus élevé du protocole TCP/IP, la couche applicative est la plus exposée pour notre développement mobile.
Protocole fonctionnant sur le protocole TCP :
HTTP (Hypertext Transfer Protocol, Hypertext Transfer Protocol), principalement utilisé pour la navigation ordinaire.
HTTPS (Hypertext Transfer Protocol over Secure Socket Layer, ou HTTP over SSL, Secure Hypertext Transfer Protocol), une version sécurisée du protocole HTTP.
FTP (File Transfer Protocol), comme son nom l'indique, est utilisé pour le transfert de fichiers.
POP3 (Post Office Protocol, version 3, protocole du bureau de poste), utilisé pour recevoir des emails.
SMTP (Simple Mail Transfer Protocol), utilisé pour envoyer des emails.
TELNET (Télétype sur réseau, télex réseau), connectez-vous au réseau via un terminal.
SSH (Secure Shell, utilisé pour remplacer TELNET avec une sécurité médiocre), utilisé pour une connexion cryptée et sécurisée.
Protocoles fonctionnant sur le protocole UDP :
BOOTP (Boot Protocol, protocole de démarrage), appliqué aux appareils sans disque.
NTP (Network Time Protocol), utilisé pour la synchronisation réseau.
DHCP (Dynamic Host Configuration Protocol), configure dynamiquement les adresses IP.
Autres :
DNS (Domain Name Service), utilisé pour effectuer la recherche d'adresse, le transfert de courrier, etc. (fonctionnant sur les protocoles TCP et UDP).
ECHO (Echo Protocol), utilisé pour vérifier les erreurs et mesurer le temps de réponse (fonctionnant sur les protocoles TCP et UDP).
SNMP (Simple Network Management Protocol), utilisé pour la collecte d'informations sur le réseau et la gestion du réseau.
ARP (Address Resolution Protocol), utilisé pour résoudre dynamiquement l'adresse du matériel Ethernet.
protocole sip https://www.cnblogs.com/gardenofhu/p/7299963.html
Le protocole d'initiation de session (SIP) est le plus couramment utilisé en VoIP technologie L'un des accords. Il s'agit d'un protocole de couche application qui fonctionne conjointement avec d'autres protocoles de couche application pour contrôler les sessions de communication multimédia sur Internet.
SIP - Présentation
Voici quelques points à noter à propos de SIP -
SIP est un protocole de signalisation utilisé pour créer, modifier et terminer des sessions multimédia via le protocole Internet. Une session n'est rien de plus qu'un simple appel entre deux points de terminaison. Le point de terminaison peut être un smartphone, un ordinateur portable ou tout autre appareil pouvant recevoir et envoyer du contenu multimédia sur Internet.
SIP est un protocole de couche application défini par la norme IETF (Internet Engineering Task Force). Il est défini dans la RFC 3261.
SIP incarne l'architecture client-serveur et utilise les URL et URI de HTTP ainsi que le schéma de codage de texte et les styles d'en-tête de SMTP.
SIP s'aide du SDP (Session Description Protocol), qui décrit les sessions et du RTP (Real-Time Transport Protocol) pour fournir la voix et la vidéo sur les réseaux IP.
SIP peut être utilisé pour des sessions à deux (unicast) ou multi-parties (multicast).
Les autres applications SIP incluent le transfert de fichiers, la messagerie instantanée, la vidéoconférence, les jeux en ligne et la distribution multimédia en streaming.
Le diagramme ci-dessous illustre l'applicabilité de SIP dans un scénario général -
Généralement, le protocole SIP est utilisé pour la téléphonie Internet et la distribution multimédia entre deux ou plusieurs points de terminaison. Par exemple, une personne peut utiliser SIP pour lancer un appel téléphonique vers une autre personne, ou quelqu'un peut organiser une conférence téléphonique avec plusieurs participants.
Le protocole SIP est conçu pour être très simple avec des commandes de configuration limitées. Il est également basé sur du texte, de sorte que n'importe qui peut lire les messages SIP transmis entre les points de terminaison au cours d'une session SIP.
Il existe des entités qui aident SIP à créer son réseau. En SIP, chaque élément du réseau est identifié par un SIP URI (Uniform Resource Identifier), qui s'apparente à une adresse. Voici les éléments du réseau -
Agent utilisateur
Serveur proxy
Serveur d'enregistrement
Serveur de redirection
Serveur de localisation
Agent utilisateur
C'est le point final et la plupart des Réseau SIP Un des éléments importants du réseau. Les points de terminaison peuvent démarrer, modifier ou terminer des sessions. L'agent utilisateur est l'appareil ou l'élément de réseau le plus intelligent du réseau SIP. Il peut s'agir d'un softphone, d'un téléphone mobile ou d'un ordinateur portable.
Un agent utilisateur est logiquement divisé en deux parties -
Client de l'agent utilisateur (UAC) - l'entité qui envoie des requêtes et reçoit des réponses.
User Agent Server (UAS) - L'entité qui reçoit les demandes et envoie les réponses.
SIP est basé sur une architecture client-serveur, dans laquelle le téléphone de l'appelant agit en tant que client initiant l'appel et le téléphone de l'appelé agit en tant que serveur répondant à l'appel.
Serveur proxy
Un élément de réseau qui reçoit les requêtes d'un agent utilisateur et les transmet à un autre utilisateur.
Fondamentalement, un serveur proxy agit comme un routeur.
Il a une certaine intelligence pour comprendre la requête SIP et l'envoyer à l'aide de l'URI.
Un serveur proxy se situe entre deux agents utilisateurs.
Il peut y avoir jusqu'à 70 serveurs proxy entre la source et la destination.
Il existe deux types de serveurs proxy -
Serveur proxy sans état - il transfère simplement les messages reçus. Ce type de serveur ne stocke aucune information sur les appels ou les transactions.
Serveur proxy avec état - Ce type de serveur proxy garde une trace de chaque demande et réponse reçue et peut l'utiliser à l'avenir si nécessaire. Si l'autre partie ne répond pas, elle peut renvoyer la demande.
Serveur d'enregistrement
Le serveur d'enregistrement accepte les demandes d'enregistrement des agents utilisateurs. Il aide les utilisateurs à s'authentifier sur le réseau. Il stocke l'URI et l'emplacement de l'utilisateur dans la base de données pour aider les autres serveurs SIP du même domaine.
Regardez l'exemple ci-dessous, montrant le processus d'enregistrement SIP.
Ici, l'appelant souhaite s'inscrire auprès du domaine TMC. Par conséquent, il envoie une requête REGISTER au serveur Registrar du TMC, et le serveur renvoie une réponse 200 OK lors de l'autorisation du client.
Serveur de redirection
Le serveur de redirection reçoit la demande et recherche le destinataire prévu de la demande dans la base de données de localisation créée par le registraire.
Le serveur de redirection utilise une base de données pour obtenir des informations de localisation et répond à l'utilisateur avec un 3xx (réponse de redirection). Nous discuterons des codes de réponse plus tard dans ce didacticiel.
Serveur de localisation
Le serveur de localisation fournit des informations sur l'emplacement possible de l'appelant pour rediriger et les serveurs proxy.
Seuls les serveurs proxy ou les serveurs de redirection peuvent contacter les serveurs de localisation.
Le diagramme ci-dessous décrit le rôle que joue chaque élément du réseau dans l'établissement d'une session.
SIP - Architecture système
SIP est structuré comme un protocole en couches, ce qui signifie que son comportement est décrit en termes d'un ensemble assez indépendant d'étapes de traitement, avec seulement un faible couplage entre chaque étape.
La couche la plus basse de SIP est sa syntaxe et son encodage. Son codage est spécifié à l'aide de la syntaxe tabulaire Backus-Naur améliorée (BNF).
La deuxième couche est la couche de transport. Il définit comment un client envoie une requête et reçoit une réponse, et comment le serveur reçoit une requête et envoie une réponse sur le réseau. Tous les éléments SIP contiennent une couche de transport.
Vient ensuite la couche de transaction. Une transaction est une requête envoyée par une transaction client (à l'aide de la couche de transport) à une transaction serveur, et toutes les réponses à cette requête sont renvoyées au client depuis la transaction serveur. Toute tâche effectuée par le client agent utilisateur (UAC) sera effectuée à l'aide d'une série de transactions. Les proxys sans état ne contiennent pas de couche de transaction.
La couche située au-dessus de la couche de transaction est appelée utilisateur de transaction. À l'exception des proxys apatrides, chaque entité SIP est un utilisateur de transaction.
La figure ci-dessous montre le flux d'appels de base d'une session SIP.
Voici une explication étape par étape du flux d'appels ci-dessus -
La requête INVITE envoyée au serveur proxy est responsable du démarrage de la session.
Le serveur proxy envoie 100 pour essayer de répondre immédiatement à l'appelant (Alice) afin d'arrêter le renvoi de la requête INVITE.
Le serveur proxy recherche l'adresse de Bob dans le serveur de localisation. Après avoir obtenu l'adresse, transmettez ensuite la demande INVITE.
Ensuite, les 180 sonneries (réponse temporaire) générées par le téléphone de Bob sont renvoyées à Alice.
Une réponse 200 OK a été générée rapidement après que Bob ait décroché le téléphone.
Une fois que les 200 OK atteignent Alice, Bob reçoit un ACK d'Alice.
En même temps, la session est établie et les paquets RTP (session) commencent à circuler des deux extrémités.
Une fois la session terminée, tout participant (Alice ou Bob) peut envoyer une demande BYE pour mettre fin à la session.
BYE directement d'Alice à Bob en contournant le serveur proxy.
Enfin, Bob envoie une réponse 200 OK pour confirmer le BYE et la session est terminée.
Dans le flux d'appels de base ci-dessus, trois transactions (étiquetées 1, 2, 3) peuvent être utilisées.
L'appel complet (de INVITE à 200 OK) s'appelle un Dialogue.
SIP Ladder
Comment un proxy aide-t-il un utilisateur à se connecter avec un autre utilisateur ? Découvrons-le à l’aide de l’image ci-dessous.
La topologie illustrée dans la figure est appelée diagramme à relais SIP. Le processus se déroule comme suit -
Lorsque l'appelant lance l'appel, un message INVITE est envoyé au serveur proxy. Après avoir reçu l'INVITE, le serveur proxy tente de résoudre l'adresse du destinataire à l'aide d'un serveur DNS.
Après avoir obtenu l'itinéraire suivant, le proxy de l'appelant (Proxy 1, également appelé proxy sortant) transmet la demande INVITE au proxy entrant de l'appelé (Proxy 2) Le serveur proxy de l'appelé.
Le serveur proxy entrant contacte le serveur de localisation pour obtenir les informations sur l'adresse de l'appelé enregistrées par l'utilisateur.
Après avoir obtenu les informations du serveur de localisation, transférez l'appel vers sa destination.
Une fois que l'agent utilisateur connaît son adresse, il peut contourner l'appel, c'est-à-dire parler directement.
Les messages SIP sont de deux types : demande et réponse.
La ligne de départ d'une requête contient la méthode qui définit la requête, ainsi que l'URI de la requête qui définit la requête à envoyer.
De même, la ligne de départ de la réponse contient le code de réponse.
Méthode de requête
La requête SIP est le code utilisé pour établir la communication. Pour les compléter, les réponses SIP indiquent généralement si la requête a réussi ou échoué.
Ces requêtes SIP appelées METHODES activent les messages SIP. Les méthodes
peuvent être considérées comme des requêtes SIP dans la mesure où elles demandent qu'une action spécifique soit entreprise par un autre agent utilisateur ou serveur.
Les méthodes sont divisées en deux types -
Méthodes principales
Méthodes d'extension
Méthodes principales
Il existe six méthodes principales mentionnées ci-dessous.
INVITE
INVITE est utilisé pour lancer une session avec l'agent utilisateur. En d’autres termes, la méthode INVITE est utilisée pour établir une session média entre agents utilisateurs.
INVITE peut inclure les informations médiatiques de l’appelant dans le corps de l’e-mail.
La session est considérée comme établie si l'INVITE a reçu une réponse réussie (2xx) ou si un ACK a été envoyé.
Une requête INVITE réussie établit une conversation entre les deux agents utilisateurs, qui ne peut pas être terminée tant qu'un BYE n'est pas envoyé.
Une INVITE envoyée dans une boîte de dialogue établie est appelée une ré-INVITE.
Re-INVITE est utilisé pour modifier les propriétés de la session ou actualiser l'état de la boîte de dialogue.
Exemple d'invitation
Le code suivant montre comment INVITE est utilisé.
Copier le code
INVITE sips:Bob@TMC.com SIP/2.0 Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 Max-Forwards: 70 From: Alicesips:Alice@TTP.com;tag = 1234567 To: Bobsips:Bob@TMC.com Call-ID: 12345601@192.168.2.1 CSeq: 1 INVITE Contact: sips:Alice@client.ANC.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: … v = 0 o = Alice 2890844526 2890844526 IN IP4 client.ANC.com s = Session SDP c = IN IP4 client.ANC.com t = 3034423619 0 m = audio 49170 RTP/AVP 0 a = rtpmap:0 PCMU/8000
Copier le code
BYE BYE是用于终止既定会话的方法。这是SIP请求,可以由呼叫者或被叫方发送以终止会话。 它不能由代理服务器发送。 BYE请求通常路由端到端,绕过代理服务器。 BYE不能发送到待处理的INVITE或未建立的会话。 注册 REGISTER请求执行用户代理的注册。该请求由用户代理发送到注册服务器。 REGISTER请求可以转发或代理,直到它到达指定域的权威注册商。 它在正在注册的用户的To头中携带AOR(记录地址)。 REGISTER请求包含时间段(3600sec)。 一个用户代理可以代表另一个用户代理发送REGISTER请求。这被称为第三方注册。这里,From标签包含代表To标题中标识的方提交注册的方的URI 。 取消 CANCEL用于终止未建立的会话。用户代理使用此请求取消之前发起的未决呼叫尝试。 它可以由用户代理或代理服务器发送。 CANCEL是逐跳请求,即它通过用户代理之间的元素,并接收下一个有状态元素生成的响应。 ACK ACK用于确认对INVITE方法的最终响应。如果INVITE不可用,则ACK始终沿着INVITE.ACK的方向包含SDP主体(媒体特性)。 ACK可能不会用于修改已经在初始INVITE中发送的媒体描述。 接收ACK的有状态代理必须确定ACK应该向下游转发到另一个代理或用户代理。 对于2xx响应,ACK是端到端的,但对于所有其他最终响应,它在涉及有状态代理时基于逐跳的工作。 OPTIONS OPTIONS方法用于向用户代理或代理服务器询问其功能并发现其当前的可用性。对请求的响应列出了用户代理或服务器的功能。代理从不生成OPTIONS请求。
Méthode d'extension
Abonnement
L'agent utilisateur utilise SUBSCRIBE pour établir un abonnement afin d'obtenir informations sur la notification d'événements spécifiques.
Il contient un champ d'en-tête Expires indiquant la durée de l'abonnement.
Passé le délai, l'abonnement sera automatiquement résilié.
Les abonnements établissent une conversation entre les agents utilisateurs.
Vous pouvez vous réabonner avant l'heure d'expiration en envoyant un autre ABONNEMENT dans la boîte de dialogue.
L'abonnement de l'utilisateur recevra 200 OK.
L'utilisateur peut envoyer une autre méthode SUBSCRIBE avec la valeur Expires 0 (zéro) pour annuler l'abonnement.
Notifications
Les agents utilisateurs utilisent NOTIFY pour en savoir plus sur l'occurrence d'un événement spécifique. Normalement, NOTIFY se déclenche dans la boîte de dialogue lorsqu'il existe un abonnement entre l'abonné et le notifiant.
Chaque NOTIFY recevra une réponse de 200 OK s'il est reçu par le notifiant.
NOTIFY contient un champ d'en-tête d'événement indiquant l'événement et un champ d'en-tête d'abonnement indiquant l'état actuel de l'abonnement.
Envoyez toujours NOTIFY au début et à la fin de l'abonnement.
PUBLISH
PUBLISH est utilisé par les agents utilisateurs pour envoyer des informations sur l'état des événements au serveur.
PUBLISH est très utile lorsqu'il existe des informations sur les événements provenant de plusieurs sources.
La requête PUBLISH est similaire à NOTIFY, sauf qu'elle n'est pas envoyée dans une boîte de dialogue.
La requête PUBLISH doit contenir le champ d’en-tête Expires et le champ d’en-tête Min-Expires.
Référence
REFER est utilisé par un agent utilisateur pour faire référence à l'URI d'un autre agent utilisateur pour accéder à la boîte de dialogue.
REFER doit contenir un en-tête Refer-To. Il s’agit de l’en-tête obligatoire pour REFER.
REFER peut être envoyé à l'intérieur ou à l'extérieur de la boîte de dialogue.
Un 202 Accepted déclenchera une requête REFER, indiquant que la référence a été acceptée par un autre agent utilisateur.
Informations
INFO est utilisée par un agent utilisateur pour envoyer des informations de signalisation d'appel à un autre agent utilisateur avec lequel il a établi une session média.
Il s'agit d'une requête de bout en bout.
Les proxys transmettront toujours les demandes d'informations.
UPDATE
Si la session n'est pas établie, UPDATE permet de modifier le statut de la session. Les utilisateurs peuvent modifier le codec en utilisant UPDATE.
Si la session est établie, utilisez la ré-invitation pour modifier/mettre à jour la session.
PRACK
PRACK est utilisé pour confirmer la réception d'un transfert de réponse provisoire fiable (1XX).
De manière générale, PRACK est généré par le client lors de la réception d'une réponse provisoire contenant un numéro de séquence fiable RSeq et un en-tête supporté:100rel.
PRACK contient la valeur (RSeq + CSeq) dans l'en-tête de course.
La méthode PRACK fonctionne pour toutes les réponses temporaires à l'exception des réponses de 100 tentatives, qui ne sont jamais fiables pour l'expédition.
PRACK peut contenir un corps de message ; il peut être utilisé pour des échanges offre/réponse.
Message
Il est utilisé pour envoyer des messages instantanés via SIP. La messagerie instantanée consiste généralement en de courts messages échangés en temps réel par les participants impliqués dans une conversation textuelle.
Le MESSAGE peut être envoyé à l'intérieur ou à l'extérieur de la boîte de dialogue.
Le contenu du MESSAGE est chargé sous forme de pièce jointe MIME dans le corps de l'e-mail.
Une réponse 200 OK est reçue normalement pour indiquer que le message a été remis à sa destination.
Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!