title: From a low-level perspective, what is the difference between named pipes and remote procedure calls (RPC) in Windows?
body: <p>I'm trying to understand a low-level architecture of Microsoft's implementation of <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365590(v=vs.85).aspx" rel="nofollow noreferrer">named pipes</a> vs <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa378651(v=vs.85).aspx" rel="nofollow noreferrer">RPC</a>. I understand that both can be used for client/server communication between applications on a local network. But why would I choose one over another?</p>
  
  <p>PS. Is RPC a higher level implementation built on top of named pipes, or vice versa? I'm also trying to see which one would have less overhead.</p>