One of the areas that our industry seems to struggle with is terminology. For example, if your coworker is talking about a packet, are they using specific terminology for a layer 3 protocol data unit? Alternatively, are they loosely using the terminology the way many others use it and could be speaking of any data transfer between hosts?
Sometimes the lines are blurred in other ways. For example, what differentiated a protocol from an application? We all seem to agree that RIP is a routing protocol but some claim BGP is a routing application. Although I’d be the first to admit that BGP has more complexity and maintains a lot of state, It is odd for me to hear that this acronym is for the Border Gateway Protocol Application.
Ethernet, IP and IPv6 are all protocols, I don’t think anyone would argue against that. Is there no controversy because they are lower on the OSI model? TCP and UDP, even though located above IP in the same model, would likewise be considered protocols.
Then I think about Sendmail, Apache, and FTP. I’d always classify Sendmail and Apache as applications. FTP is an oddball. Even though FTP stands for File Transfer Protocol and is therefore a protocol, there are command line applications that are simply called ftp as well. So to understand if FTP is a protocol or an application requires context or clarification to determine if the discussion is around the ftp Application or the communication standard (protocol) that it uses.
The methods utilized by Sendmail and Apache, SMTP and HTTP respectively, would most certainly be classified a protocols. Based on this, it seems that we might classify anything that is in execution on a host as an application. That would leave the definition of a protocol as the rules or language for communicating between hosts. However, RIP also has a process in execution as well.
Back to BGP. I’ve heard it stated that this protocol makes complex decisions and applies routing policies, therefore it is more of an application. Even RIP makes decisions and alters its advertisements. So my question is this, “Is BGP an application, protocol or both?”
My position is that RIP and BGP are both protocols. They both have a daemon in execution space, but they are primarily protocols. The complexity of BGP and the simplicity of RIP doesn’t really change this fact.
For those who say BGP is a routing application, I ask this question–Is it because of complexity, its extensive use of state, where it falls on the OSI model or something else? More importantly, why is communication and our agreement on terminology so difficult?