title: Bluetooth protocol (RFCOMM, L2CAP and ACL)
body: <p>From what I've read from Bluetooth Essentials for Programmers, this books mentions some points that I dont quite understand. </p>
  
  <p>RFCOMM is a reliable stream-based protocol. 
     L2CAP is a packet-based protocol that can be configured with varying levels of reliability.</p>
  
  <p><strong>L2CAP actually serves as the transport protocol for RFCOMM, so every RFCOMM connection is actually encapsulated within an L2CAP connection.</strong> </p>
  
  <p>This really confuses me since these two protocol are different types of protocols (one is stream based while the other is packet based). So based on its explanation, I have some questions in the following.</p>
  
  <ol>
  <li><p>Since RFCOMM connection is encapsulated, then how serial port profile(SPP) can use RFCOMM connection? It should use L2CAP as well.</p></li>
  <li><p>A2DP uses L2CAP connection. This means the same to me since L2CAP and RFCOMM are encapsulated within ACL connection, should this mean A2DP uses ACL connection? I know this is incorrect but how to explain this here.</p></li>
  </ol>
  
  <p>Thanks for any explanation here.</p>