protobuf vs gRPC : <p>I try to understand protobuf and gRPC and how I can use both. Could you help me understand the following:</p>

<ul>
<li>Considering the OSI model what is were, for example is Protobuf at layer 4?</li>
<li>Thinking through a message transfer how is the "flow" what is gRPC doing what protobuf misses?</li>
<li>If the sender uses protobuf can the server use gRPC or does gRPC add something which only a gRPC client can deliver?</li>
<li>If gRPC can make synchron and asynchron communication possible, Protobuf is just for the marshalling and therefor does not have anything to do with state - true or false?</li>
<li>Can I use gRPC in a frontend application communicating instead of REST or GraphQL?</li>
</ul>

<p>I already know - or assume I do - that:</p>

<p><a href="https://developers.google.com/protocol-buffers/docs/reference/overview" rel="noreferrer">Protobuf</a></p>

<ul>
<li>Binary protocol for data interchange</li>
<li>Designed by Google</li>
<li>Uses generated "Struct" like description at client and server to un-/-marshall message</li>
</ul>

<p><a href="https://grpc.io/docs/guides/" rel="noreferrer">gRPC</a></p>

<ul>
<li>Uses protobuf (v3)</li>
<li>Again from Google</li>
<li>Framework for RPC calls</li>
<li>Makes use of HTTP/2 as well</li>
<li>Synchron and asynchron communication possible</li>
</ul>

<p>I again assume its an easy question for someone already using the technology. I still would thank you to be patient with me and help me out. I would also be really thankful for any network deep dive of the technologies.</p>
