Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I find the term "protocol" confusing (in the terms of computer science that is). If the protocol is just a set of rules, wouldn't it be easier if we used the term "standard" instead (like in "HTTP standard")?

share|improve this question
6  
What? I have a non-standard protocol that I use every day for communication with a server. Clearly, the words "protocol" and "standard" have nothing to do with each other. Why are you asking? Where have you seen these words in a confusing context? Please expand your question to explain more fully what confuses you. –  S.Lott Sep 2 '11 at 10:25
    
@S.Lott, Why do you think your protocol is non-standard? –  Emanuil Rusev Sep 2 '11 at 11:13
1  
It's non-standard because I invented it. I know it's in no existing standard because it's uniquely mine. And it's really bad. And I should have used HTTP, which is a standard protocol. Your comment does not explain your confusion. Please explain how you're confused between Protocol ("rules") and Standard ("approved by a committee") –  S.Lott Sep 2 '11 at 12:46
    
All standards are invented by someone. A defined set of rules is a standard, regardless of how many people use it. Am I wrong? –  Emanuil Rusev Sep 2 '11 at 12:56
1  
Perhaps it helps to think of a protocol as a specific type of standard: a standard that describes the format of exchanged messages between computers. –  Kwebble Sep 2 '11 at 14:43

9 Answers 9

Not all protocols are standards (some are proprietary). Not all standards are protocols (some govern other layers than communcation).

share|improve this answer
1  
Can't a standard be proprietary? –  Emanuil Rusev Sep 2 '11 at 9:56
5  
Proprietary standards aren't really standards; noone else can (or would) implement them, and the original author is free to change them at will. –  Scott Wilson Sep 2 '11 at 9:59
3  
A proprietary standard can have a formal process for suggesting, approving, and making changes just like an open one can. There is no reason the process must be "the original author can do as he pleases". In fact, I would say that would be an incredible exception to the rule. (I maintain one proprietary standard that my company is bound by contract to change only according to documented procedures that include notification and input from other affected parties at partner companies. This is in fact a standard clause in change management policies at many large companies.) –  David Schwartz Sep 2 '11 at 10:07
1  
I don't agree that it cannot be a standard if it is not open. In the first 6 years of PDF the specification was proprietary but based on wide spread adoption of the proprietary format I think you would have to call it a standard. –  Frisbee Aug 20 at 17:09
    
A defacto standard can indeed be proprietary, and is often the start of a more open standard or standardization (by a standards body). –  Tracker1 Aug 20 at 17:54

A protocol is not a set of rules. A protocol is the thing those rules describe the rules of. This is why programs implement a protocol and comply with a standard.

Protocols are like languages. Standards are like dictionaries. For example, by analogy:

This answer = A web page
English language = the HTTP protocol
Rules of English = the HTTP standard

share|improve this answer
    
I don't get it. The HTTP protocol can describe a response from a server, which basically is a web page. Should that mean that the web page itself is a protocol? –  Emanuil Rusev Sep 2 '11 at 9:54
    
The standard describes the protocol. The protocol doesn't describe anything. The English language doesn't describe my answer to your question. My answer is not the English language. –  David Schwartz Sep 2 '11 at 9:57
2  
@Emanuil, the HTTP protocol doesn't describe a response from a web page; it describes the ways to communicate with a web server (including the ways to get web pages from said server). The protocol itself isn't the least concerned with the actual web pages it is transporting; from the protocol's point of view, the payload is just a sequence of parts, each containing a sequence of characters. That's why the content can be practically anything: images, XML documents and whatnot. And that's why HTTP can be used as a transport mechanism for web services. –  Péter Török Sep 2 '11 at 10:35
2  
@Emanuil, no. Consider what happens when you save a web page as a local file (hierarchy). You can still open it in the browser and it looks exactly the same, although no HTTP is involved anymore. Consider also what happens when you download a movie, a PDF document etc. from the web: the payload of the HTTP response has nothing to do with a web page, it is just a file in a totally arbitrary (MPEG3, PDF, you name it) format. –  Péter Török Sep 2 '11 at 12:03
2  
@Emanuil, HTTP does indeed define how the package (an HTTP message) should look like, but it also defines what different parties (server, client, proxy) must / may / may not do with the message: how (not) can it be modified and/or stored, what responses to send in specific situations, etc. etc. –  Péter Török Sep 2 '11 at 12:25

A protocol define a set of rules used by two or more parties to interact between themselves.

A standard is a formalized protocol accepted by most of the parties that implement it.

share|improve this answer
    
That's straight to the point, thanks +1 for that –  dotNetSoldier Feb 24 '13 at 9:15
    
Not all standards are protocols. For instance ISO 216 defines how big pieces of paper are. It has nothing to do with protocols. –  Simon B Aug 21 at 9:54
    
@SimonB "A4" is 210x297mm, "A3" is 297x420, etc.. These set of rules form a protocol which is what you use to communicate when you go to a shop and ask somebody to print something. ISO 216 formalise this protocol, as it put it into writing. –  Pastronio Faruglio 18 hours ago

In my understanding, a protocol describes the communication between two points. One point creates some data that the other point must interprete. A protocol describes the data format, the states, requests and answers, and so on. E.g. a HTTP request from the client and the answer from the server.

For a specific problem, there are a gazillion possible protocols. Out of these, a standard choses one specific protocol and makes it kind of mandatory. If all communication end points act accordingly to the standard, they can communicate with each other and understand each other.

This can happen officially or inofficially, because all communication partners just happen to use the same protocol which then became the standard protocol.

share|improve this answer

Communication protocols are, by definition, sets of rules that govern the formats and interactions between communicating parties. These rules may be implicit and informal, as in typical everyday social interactions between people. But electronics, and digital computers especially, require things to be far more explicit and formalized in order for reliable communication to occur.

A Standard in this context is an attempt to resolve an area of potential misunderstanding or disagreement. Communication protocols are one of many areas that standards may apply to. A notable set of standards that are not communication protocols, for example, are the SI weight and measurement standards. These provide a fixed reference to which you can compare any given quantity in order to measure it in a way that will be unambiguous to everyone with access to the standard, or a reasonable approximation of it.

A Communication Protocol Standard is therefore a formalization of the rules of a communication protocol such that those with access to the standard can (ideally) unambiguously determine whether any particular attempt at communication complies with those rules. Just as comparing a particular mass of metal against the SI standard kilogram will determine how close the mass is to a kilogram, comparing a particular protocol implementation against a protocol standard will determine whether it is truly following that protocol according to the standard. When all parties are properly following the protocol as formalized in the standard, it is (again, ideally) guaranteed to result in the level of communication that the protocol was designed to accommodate.

A Communication Protocol Specification is a means by which the rules and formats of a communication protocol can be described at a formal level, and it is often part of (indeed, the largest part of) a communication protocol standard. While the purpose of a standard is to create a means to determine whether something is truly an instance of the standardized thing, the purpose of a specification is to define exactly what the thing is in the case where the thing is defined by rules and formats, as a communication protocol is. An unambiguous definition of what something is can be used both to create a new instance of that thing and to determine whether an existing thing is an instance of the thing being defined.

So a specification can be used as a standard, but being a standard also carries the weight of some social agreement that there is value in complying with the specification well enough for multiple implementations to have some assurance of working together. The parties interested in this agreement work together to form a Standards Body in order to define the standards that they will agree on for the purpose of their desire to be able to rely on compliance to a protocol. Without the presence of this social agreement and the standards body by which the standards are produced, protocol specifications aren't generally considered to constitute standards, though well-defined specifications definitely have the potential to be used as standards.

share|improve this answer

Definition of Protocol:

an original draft, minute, or record from which a document, especially a treaty, is prepared.

Definition of standard:

something considered by an authority or by general consent as a basis of comparison; an approved model.

Back to your question

If the protocol is just a set of rules, wouldn't it be easier if we used the term "standard" instead (like in "HTTP standard")?

HTTP is both a protocol and a standard. It is, in fact, a standard protocol.

Quoted from wiki

The standards development of HTTP has been coordinated by the Internet Engineering Task Force (IETF) and the World Wide Web Consortium (W3C), culminating in the publication of a series of Requests for Comments (RFCs), most notably RFC 2616 (June 1999), which defines HTTP/1.1, the version of HTTP in common use.

share|improve this answer
    
In other words, a "protocol" is the thing a specification formalizes. –  David Schwartz Sep 2 '11 at 10:38

A computer protocol is a set of rules that determine the format and transfer of data. The term protocol is used because it closely mirrors the rules of behaviour between individuals or nations. The set of formal rules that are common in computer protocols are very similar to the rules of diplomacy (diplomatic protocol) or etiquette (personal protocol). A standard is something different and not a rich a word to describe the interactions that are expressed within a protocol. Also as noted by others a protocol may not need to be standard.

Finally, C3PO was a Protocol droid. He could therefore mediate between both Astro Mech Droids, Moisture Vaporaters and Ewoks. Calling him a Standard droid would not have so richly desribed his function.

share|improve this answer

Yes a protocol is a set of rules.

That does not mean any set of rules is a protocol.
A law is set of rules that I would not call protocol.
HTML is set of rules for format that I would not call a protocol.

A standard is something that is widely adopted.
A standard is not limited to protocol or rules.
A 16" rim for car is something I would call a standard.

A communications protocol is a set of rules specifically for communication. It can be standard or proprietary. If there is a standards body then it is definitely a standard.

You also have Open. Open is published and may or may not be a standard. I may have an Open proprietary protocol meaning here it is and here is out I works so that it can be used but I am not proposing it to be an industry standard.

It can even be a standard and proprietary. In the early days PDF format was proprietary but it was still presented as standard.

In summary protocol and standard are just plain not the same thing.

share|improve this answer

I think to answer this question, we can include other terms too, to make the concepts more clear:

  1. Protocol: A set of rules for communication between computers (thus, you hear protocol usually in the field of network)
  2. Standard: A level of quality; Thus, you can write code, which works, but is not a quality code or non-standard.
  3. Convention: Just a kind of agreement, like telling somebody to put the images inside img folder. Not following conventions doesn't break the functionality, but is considered bad among the people who have agreed on that convention.
  4. Specification: A detailed description, especially one providing information needed to make, build, or produce something.
share|improve this answer
    
Isn't the protocol the abstract thing that the rules describe the rules of? The game of Chess isn't the same as the rules of Chess, is it? Aren't protocols more like games than rules? –  David Schwartz Sep 2 '11 at 10:04
    
"A level of quality" is too narrow of a definition. How is the ISO 3166-1 standard a level a quality? –  Emanuil Rusev Sep 2 '11 at 11:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.