I think this is the same question I asked myself a while ago :-)
As far as I can work out, what a protocol -exactly- is, is a text saying 'lets have it work like so, so and so'.
It's not programmed, it's not source code. It's an agreement of the form: when I send you those bits, you send me either those bits or those bits (or packets) back, within x seconds.
Every programmer can then make his own implementation of the protocol.
For example, when a company starts making a router, they look at the texts (RFC's) to see what is expected from them, what they need to send to other routers (router protocols), what they get from connected pc (DHCP requests for example), and they try their best to make it work out (some better then others).
If you would make a new car, you have to do the same: look at the rules and regulations to see how many lights you need, seatbelts, minimum specifications of brakes, etc. Those rules and regulations would be 'the protocol'.
This is all just 'as far as I know', me = newbie :-)