0

I was wondering what counts a protocol?

When an arbitrary (software or hardware) application is implemented on top of the service of layer n in the Internet Protocol stack or the OSI model,

  • does the application necessarily implement a protocol in layer n+1, either an existing protocol in layer n+1 or its own protocol in layer n+1?

  • does the application belong to layer n+1?

Kurose's Computer Networking book says

The application layer is where network applications and their application-layer pro- tocols reside. The Internet’s application layer includes many protocols, such as the HTTP protocol (which provides for Web document request and transfer), SMTP (which provides for the transfer of e-mail messages), and FTP (which provides for the transfer of files between two end systems).

It is important to distinguish between network applications and application-layer protocols. An application-layer protocol is only one piece of a network application (albeit, a very important piece of the application from our point of view!). Let’s look at a couple of examples. The Web is a client-server application that allows users to obtain documents from Web servers on demand. The Web application consists of many components, including a standard for document formats (that is, HTML), Web browsers (for example, Firefox and Microsoft Internet Explorer), Web servers (for example, Apache and Microsoft servers), and an application-layer protocol. The Web’s application-layer protocol, HTTP, defines the format and sequence of mes- sages exchanged between browser and Web server. Thus, HTTP is only one piece (albeit, an important piece) of the Web application.

Here are two examples:

when I implement an arbitrary client-server application using the Socket API, no matter how simple it is,

  • does the application implement an application-layer protocol, either an existing application-layer protocol or its own application-layer protocol, even though its own protocol is not necessarily usable by other applications and developers?

  • does the application belong to the application layer?

When I implement a web application or web service using HTTP API, does the web application/service necessarily

  • belong to a layer one or more layer higher than the layer where HTTP belongs, and
  • implement a protocol one ore more layer higher than HTTP? ( SOAP has its own protocol, so does a SOAP web service implement a protocol two layer higher than HTTP? Does a RESTful service implement a protocol one layer higher than HTTP?)

Thanks.

1
  • Did any answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could post and accept your own answer.
    – Ron Maupin
    Dec 31 '20 at 4:00
1

Not really. There are many examples (esp. with tunneling) were the instance sitting on top of layer n does not belong to layer n+1.

E.g. IPsec tunnels IP, so the layer nesting (assuming Ethernet at the bottom) is L1-L2-L3-L3-L4-... (with the first L3 instance being IPsec and the second instance being the payload/inner IP packet). SSL VPN even uses a transport-layer protocols, so with L2 tunneling it may be L1-L2-L3-L4-L2-L3-L4-...

Using OSI layer numbering, you most often have a nesting like L1-L2-L3-L4-L7. L5 and L6 don't really exist in practice. Mileage varies, and some application layer protocols may ride directly on top of L3 or even L2.

The application "speaks" the application-layer protocol, e.g. HTTP or SMTP. Whether it's an "open", well documented application or something you've just made up doesn't matter.

2
  • Thanks. Does an application sitting on top of layer n necessarily (1) belong to layer n+k, where k is no less than 0?.(2) implement a layer n+k protocol? (regardless of the answer to (1), i.e. regardless of whether k must be no less than 0)
    – Tim
    Nov 19 '20 at 11:58
  • Does an application using socket API, however simple, necessarily belong to the application layer and implement a application-layer protocol?
    – Tim
    Nov 19 '20 at 12:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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