Hi, everyone. Tanenbaum said in his book Computer Network about the
differences between services and protocols as follows:

"Services and protocols are distinct concepts, although they are
frequently confused. This distinction is so important, however, that
we emphasize it again here. A service is a set of primitives
(operations) that a layer provides to the layer above it. The service
defines what operations the layer is prepared to perform on behalf of
its users, but it says nothing at all about how these operations are
implemented. A service relates to an interface between two layers,
with the lower layer being the service provider and the upper layer
being the service user.

A protocol, in contrast, is a set of rules governing the format and
meaning of the packets, or messages that are exchanged by the peer
entities within a layer. Entities use protocols to implement their
service definitions. They are free to change their protocols at will,
provided they do not change the service visible to their users. In
this way, the service and the protocol are completely decoupled.

Everything is fine for me, except I can't get why "Entities use
protocols to implement their service definitions", because he also
said that:

"In other words, services relate to the interfaces *between layers*,
as illustrated in Fig. 1-19. In contrast, protocols relate to the
packets sent between peer entities on *different machines*."

I hope someone will help me answer this question. Thanks in advance.

09-09-2008, 09:09 PM

unix

Re: Services vs. Protocols

On Sep 8, 6:44*am, Nguyen Minh Hai <nguyenminhhai2...@gmail.com>
wrote:
[color=blue]
> Everything is fine for me, except I can't get why "Entities use
> protocols to implement their service definitions", because he also
> said that:[/color]

In other words, if one computer offers a file access service to
another computer, it might use the FTP protocol to implement that
service. But it could also implement the same service using HTTP, NFS,
or CIFS. The service is what you can do. The protocol is how you tell
the other side to do it.
[color=blue]
> "In other words, services relate to the interfaces *between layers*,
> as illustrated in Fig. 1-19. In contrast, protocols relate to the
> packets sent between peer entities on *different machines*."[/color]

Right, a "service" is the conceptual interface between the layers. Web
servers offer a document retrieval service to browsers. However, if
you look on the wire between a web server and a browser, you will see
the HTTP protocol, because that's how the retrieval service is
implemented.
[color=blue]
> I hope someone will help me answer this question. Thanks in advance.[/color]

It's not entirely clear exactly what is confusing you. The distinction
is that a service is a logical capability. A protocol is the actual
information exchange to implement the capability.