Care este diferența dintre termenii „protocol” și „standard”? (Inginerie software, Terminologie, Standarde)

Emanuil Rusev a intrebat.
a intrebat.

Termenul „protocol” mi se pare confuz (în termeni de informatică, adică). Dacă protocolul este doar un set de reguli, nu ar fi mai simplu dacă am folosi în schimb termenul „standard” (ca în „standard HTTP”)?

Comentarii

  • Ce? Eu am un protocol non-standard pe care îl folosesc în fiecare zi pentru comunicarea cu un server. În mod evident, cuvintele „protocol” și „standard” au nimic legătură unul cu celălalt. De ce mă întrebați? Unde ați văzut aceste cuvinte într-un context confuz? Vă rugăm să vă extindeți întrebarea pentru a explica mai pe larg ceea ce vă derutează. –  > Por S.Lott.
  • @S.Lott, De ce credeți că protocolul dvs. este non-standard? –  > Por Emanuil Rusev.
  • Este non-standard pentru că eu l-am inventat. Știu că nu se regăsește în niciun standard existent pentru că este exclusiv al meu. Și este foarte prost. Și ar fi trebuit să folosesc HTTP, care este un protocol standard. Comentariul tău nu-ți explică confuzia. Vă rog să explicați de ce sunteți confuz între Protocol („reguli”) și Standard („aprobat de un comitet”) –  > Por S.Lott.
  • Toate standardele sunt inventate de cineva. Un set definit de reguli este un standard, indiferent de numărul de persoane care îl utilizează. Mă înșel? –  > Por Emanuil Rusev.
  • Poate că este util să ne gândim la un protocol ca la un tip specific de standard: un standard care descrie formatul mesajelor schimbate între calculatoare. –  > Por Kwebble.
9 răspunsuri
Scott C Wilson

Nu toate protocoalele sunt standarde (unele sunt proprietare). nu toate standardele sunt protocoale (unele guvernează alte straturi decât cel de comunicare).

Comentarii

  • Un standard nu poate fi proprietar? –  > Por Emanuil Rusev.
  • Standardele proprietare nu sunt cu adevărat standarde; nimeni altcineva nu poate (sau nu ar vrea) să le implementeze, iar autorul original este liber să le modifice după bunul plac. –  > Por Scott C Wilson.
  • Un standard proprietar poate avea un proces formal pentru a sugera, aproba și face modificări, la fel cum poate avea un standard deschis. Nu există niciun motiv pentru care procesul trebuie să fie „autorul original poate face ce dorește”. De fapt, aș spune că aceasta ar fi o excepție incredibilă de la regulă. (Mențin un standard proprietar pe care compania mea este obligată prin contract să îl modifice numai în conformitate cu procedurile documentate care includ notificarea și contribuția altor părți afectate din companiile partenere. Aceasta este, de fapt, o clauză standard în politicile de gestionare a modificărilor din multe companii mari). –  > Por David Schwartz.
  • Nu sunt de acord că nu poate fi un standard dacă nu este deschis. În primii 6 ani de existență a PDF, specificația a fost proprietară, dar, pe baza adoptării pe scară largă a formatului proprietar, cred că ar trebui să-l numim standard. –  > Por paparazzo.
  • Un standard defacto poate fi, într-adevăr, proprietar și este adesea începutul unui standard mai deschis sau al unei standardizări (de către un organism de standardizare). –  > Por Tracker1.
David Schwartz

Un protocol nu este un set de reguli. Un protocol este lucrul pe care acele reguli îl descriu regulile de. Acesta este motivul pentru care programele implementează un protocol și respectă cu un standard.

Protocoalele sunt ca și limbajele. Standardele sunt ca niște dicționare. De exemplu, prin analogie:

Acest răspuns = O pagină web
Limba engleză = protocolul HTTP
Regulile limbii engleze = standardul HTTP

Comentarii

  • Nu înțeleg. Protocolul HTTP poate descrie un răspuns de la un server, care, în principiu, este o pagină web. Asta ar trebui să însemne că pagina web în sine este un protocol? –  > Por Emanuil Rusev.
  • Standardul descrie protocolul. Protocolul nu descrie nimic. Limba engleză nu descrie răspunsul meu la întrebarea dumneavoastră. Răspunsul meu nu este limba engleză. –  > Por David Schwartz.
  • @Emanuil, protocolul HTTP nu descrie un răspuns de la o pagină web; el descrie modalitățile de comunicare cu un server web (inclusiv modalitățile de obținere a paginilor web de la respectivul server). Protocolul în sine nu este câtuși de puțin preocupat de paginile web reale pe care le transportă; din punctul de vedere al protocolului, sarcina utilă este doar o secvență de părți, fiecare conținând o secvență de caractere. De aceea, conținutul poate fi practic orice: imagini, documente XML și altele. Și de aceea HTTP poate fi utilizat ca mecanism de transport pentru serviciile web. –  > Por Péter Török.
  • @Emanuil, nu. Luați în considerare ce se întâmplă atunci când salvați o pagină web ca fișier local (ierarhie). Puteți să o deschideți în continuare în browser și arată exact la fel, deși nu mai este implicat HTTP. Luați în considerare, de asemenea, ce se întâmplă atunci când descărcați un film, un document PDF etc. de pe web: sarcina utilă a răspunsului HTTP nu are nimic de-a face cu o pagină web, este doar un fișier într-un format total arbitrar (MPEG3, PDF, cum doriți). –  > Por Péter Török.
  • @Emanuil, HTTP definește într-adevăr cum trebuie să arate pachetul (un mesaj HTTP), dar definește și ce trebuie / pot / nu pot face diferitele părți (server, client, proxy) cu mesajul: cum (nu) poate fi modificat și/sau stocat, ce răspunsuri să trimită în anumite situații, etc. etc. etc. –  > Por Péter Török.
Trasplazio Garzuglio

Un protocol definește un set de reguli utilizate de două sau mai multe părți pentru a interacționa între ele.

Un standard este un formalizat protocol acceptat de către majoritatea părților care îl implementează.

Comentarii

  • Asta este direct la subiect, mulțumesc +1 pentru asta –  > Por Owais Qureshi.
  • Nu toate standardele sunt protocoale. De exemplu, ISO 216 definește cât de mari sunt bucățile de hârtie. Nu are nimic de-a face cu protocoalele. –  > Por Simon B.
  • @SimonB „A4” este 210x297mm, „A3” este 297×420, etc.. Aceste seturi de reguli formează un protocol care este ceea ce folosești pentru a comunica atunci când mergi la un magazin și ceri cuiva să tipărească ceva. ISO 216 formalizează acest protocol, deoarece îl pune în scris. –  > Por Trasplazio Garzuglio.
Levi Pearson

Protocoale de comunicare sunt, prin definiție, seturi de reguli care guvernează formatele și interacțiunile dintre părțile care comunică. Aceste reguli pot fi fi implicite și informale, ca în interacțiunile sociale tipice de zi cu zi între oameni. Dar electronica, și în special calculatoarele digitale, necesită ca lucrurile să fie mult mai explicite și mai formalizate pentru a asigura o comunicare fiabilă.

A standard în acest context este o încercare de a rezolva o zonă de neînțelegere sau dezacord potențial. Protocoalele de comunicare reprezintă unul dintre numeroasele domenii în care se pot aplica standardele. Un set notabil de standarde care nu sunt protocoale de comunicare, de exemplu, sunt standardele de greutate și de măsurare SI. Acestea oferă o referință fixă la care puteți compara orice cantitate dată pentru a o măsura într-un mod care să fie lipsit de ambiguitate pentru oricine are acces la standard sau la o aproximare rezonabilă a acestuia.

A Standard de protocol de comunicare este, prin urmare, o formalizare a regulilor unui protocol de comunicare, astfel încât cei care au acces la standard să poată determina (în mod ideal) fără ambiguitate dacă o anumită încercare de comunicare respectă aceste reguli. La fel cum compararea unei anumite mase de metal cu kilogramul standard SI va determina cât de aproape este masa de un kilogram, compararea unei anumite implementări de protocol cu un standard de protocol va determina dacă aceasta respectă cu adevărat protocolul respectiv în conformitate cu standardul. Atunci când toate părțile respectă în mod corespunzător protocolul, așa cum este formalizat în standard, este (din nou, în mod ideal) garantat să rezulte nivelul de comunicare pe care protocolul a fost conceput pentru a se potrivi.

A Specificația protocolului de comunicare este un mijloc prin care regulile și formatele unui protocol de comunicare pot fi descrise la un nivel formal și este adesea parte parte (de fapt, cea mai mare parte) a unui standard de protocol de comunicare. În timp ce scopul unui standard este de a crea un mijloc de a determina dacă ceva este cu adevărat o instanță a lucrului standardizat, scopul unei specificații este de a defini cu exactitate ce anume este acel lucru este în cazul în care lucrul este definit prin reguli și formate, așa cum este un protocol de comunicare. O definiție neechivocă a ceea ce este un lucru poate fi utilizată atât pentru a crea o nouă instanță a acelui lucru cât și pentru a determina dacă un lucru existent este o instanță a lucrului definit.

Așadar, o specificație poate fi utilizată ca standard, dar faptul de a fi un standard are, de asemenea, greutatea unui anumit acord social conform căruia există o valoare în conformarea cu specificația suficient de bine pentru ca mai multe implementări să aibă o oarecare siguranță de a lucra împreună. Părțile interesate de acest acord colaborează pentru a forma o organism de standardizare pentru a defini standardele asupra cărora vor cădea de acord în scopul dorinței lor de a se putea baza pe conformitatea cu un protocol. Fără prezența acestui acord social și a organismului de standardizare prin care sunt produse standardele, specificațiile de protocol nu sunt în general considerate ca fiind standarde, deși specificațiile bine definite au cu siguranță potențialul de a fi utilizate ca standarde.

Securizat

Din punctul meu de vedere, un protocol descrie comunicarea între două puncte. Un punct creează anumite date pe care celălalt punct trebuie să le interpreteze. Un protocol descrie formatul datelor, stările, cererile și răspunsurile și așa mai departe. De exemplu, o cerere HTTP din partea clientului și răspunsul din partea serverului.

Pentru o problemă specifică, există o mulțime de protocoale posibile. Dintre acestea, un standard alege un protocol specific și îl face oarecum obligatoriu. Dacă toate punctele finale de comunicare acționează în conformitate cu standardul, ele pot comunica între ele și se pot înțelege reciproc.

Acest lucru se poate întâmpla în mod oficial sau neoficial, pentru că toți partenerii de comunicare se întâmplă să folosească același protocol care a devenit apoi protocolul standard.

Jose Faeti

Definiția protocolului:

un proiect original, o minută sau un proces-verbal din care se pregătește un document, în special un tratat.

Definiție a standardului:

ceva considerat de o autoritate sau prin consens general ca bază de comparație; un model aprobat.

Înapoi la întrebarea dumneavoastră

Dacă protocolul este doar un set de reguli, nu ar fi mai simplu dacă am folosi în schimb termenul „standard” (ca în „standard HTTP”)?

HTTP este atât un protocol, cât și un standard. Este, de fapt, un protocol standard.

Citat din wiki

Dezvoltarea standardelor HTTP a fost coordonată de către Internet Engineering Task Force (IETF) și de Consorțiul World Wide Web (W3C), care a culminat cu publicarea unei serii de Cereri de comentarii (RFC), în special RFC 2616 (iunie 1999), care definește HTTP/1.1, versiunea de HTTP utilizată în mod curent.

Comentarii

  • Cu alte cuvinte, un „protocol” este ceea ce formalizează o specificație. –  > Por David Schwartz.
paparazzo

Da, un protocol este un set de reguli.

Asta nu înseamnă că orice set de reguli este un protocol.
O lege este un set de reguli pe care eu nu l-aș numi protocol.
HTML este un set de reguli de format pe care nu l-aș numi protocol.

Un standard este ceva care este adoptat pe scară largă.
Un standard nu se limitează la protocol sau reguli.
O jantă de 16″ pentru o mașină este ceva ce aș numi un standard.

A protocol de comunicații este un set de reguli special pentru comunicare. Acesta poate fi standard sau proprietar. Dacă există un organism de standardizare, atunci este cu siguranță un standard.

Există, de asemenea, Open. Open este publicat și poate fi sau nu un standard. Eu pot avea un protocol deschis și proprietar, ceea ce înseamnă că aici este și aici lucrez astfel încât să poată fi folosit, dar nu îl propun ca fiind un standard industrial.

Poate fi chiar un standard și proprietar. În primele zile PDF a fost proprietar, dar a fost totuși prezentat ca standard.

Pe scurt, protocolul și standardul nu sunt pur și simplu același lucru.

AlexC

Un protocol informatic este un set de reguli care determină formatul și transferul de date. Termenul de protocol este utilizat deoarece reflectă îndeaproape regulile de comportament între indivizi sau națiuni. Setul de reguli formale care sunt comune în protocoalele informatice sunt foarte asemănătoare cu regulile diplomației (protocol diplomatic) sau ale etichetei (protocol personal). Un standard este ceva diferit și nu este un cuvânt prea bogat pentru a descrie interacțiunile care sunt exprimate în cadrul unui protocol. De asemenea, după cum au remarcat și alții, un protocol poate să nu fie neapărat standard.

În cele din urmă, C3PO a fost un droid de protocol. Prin urmare, el putea să medieze atât între droizii Astro Mech, cât și între vaporizatorii de umiditate și Ewoks. Numindu-l droid standard, nu i-ar fi descris atât de bine funcția.

Saeed Neamati

Cred că, pentru a răspunde la această întrebare, putem include și alți termeni, pentru a face conceptele mai clare:

  1. Protocol: Un set de reguli de comunicare între calculatoare (astfel, auziți protocol de obicei în domeniul rețelelor).
  2. Standard: Un nivel de calitate; Astfel, puteți scrie cod, care funcționează, dar nu este un cod de calitate sau non-standard.
  3. Convenție: Doar un fel de acord, cum ar fi să-i spui cuiva să pună imaginile înăuntru img folder. Nerespectarea convențiilor nu strică funcționalitatea, dar este considerată proastă în rândul persoanelor care au convenit asupra convenției respective.
  4. Specificație: O descriere detaliată, în special una care oferă informațiile necesare pentru a face, construi sau produce ceva.

Comentarii

  • Nu este protocolul lucrul abstract pe care regulile îl descriu regulile? Jocul de șah nu este același lucru cu regulile șahului, nu-i așa? Nu sunt protocoalele mai mult asemănătoare cu jocurile decât cu regulile? –  > Por David Schwartz.
  • „Un nivel de calitate” este o definiție prea restrânsă. Cum poate fi standardul ISO 3166-1 un nivel de calitate? –  > Por Emanuil Rusev.