Lets phrase it like this. If I ask you to hand me a couple of protocols, what would you give me? A piece of paper with rules on it? I understand its a set of rules, but how does a computer execute that piece of papers rules? It cant.

Or how does a computer execute the rules? in a text file? an exe? Is a protocol like a driver, is it code embeded into an operating system and cant be removed like a driver can? Bottom line is, if I ask for the driver of a NIC card, you can hand me that file of (RULES) we all know as a "driver" on a CD and I can copy that driver to my PC (its tangable), and the NIC will follow those rules to a T. So what is a protocol in that regard?

So, if I ask someone to hand me a protocol, what would it be? What exactly would you hand me?

I find the best way to describe a protocol is through a state machine. A state machine can be represented in a variety of ways (directed graph, UML, a formal grammar) so what you get handed varies.

However, the process of adhering to a protocol boils down to following the steps of the state machine. Implement the transitions between states according to the protocol and you are protocol compliant. This is typically thought of as being produced in software and/or harware but is used inherently in process all the time (I've described a telephone call using this model).

So, to answer your last question, you cant get handed a protocol. You can get a description of the protocol (in prose), a mathematical representation of the protocol (state machine), or an implementation of one of the above.

If you are interested in the differences between these items look at how the TCP protocol is provided in it's various forms:

  • The TCP RFC (prose representation)
  • The state machine (google image search for tcp state machine)
  • As a module in the OS kernel

How would you expect to get handed those things?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.