Link Layer state for more than one simultaneous connection

北战南征 提交于 2019-12-11 09:46:13

问题


If I understood the Link Layer correctly, it is always exactly in one of the five states "Standby", "Advertising", "Scanning", "Initiating", or "Connected". So how is it possible that I can connect to two devices simultaneously? When I am connected to one device, the Link Layer is in "Connected" state. To connect to another device, it would have to switch to "Initiating" or "Advertising" state (depending on its GAP role), while maintaining the "Connected" state to the already connected device. But then it is in two states simultaneously, which is forbidden.

Where am I wrong?


回答1:


You are correct in your understanding of the Link Layer states; this is demonstrated in a figure in the Core Specification (1):-

However, the specification also states that the Link Layer may optionally support multiple state machines as follows (2):-

  • The Link Layer in the Connection State may operate in the Master Role and Slave Role at the same time.
  • The Link Layer in the Connection State operating in the Slave Role may have multiple connections.
  • The Link Layer in the Connection State operating in the Master Role may have multiple connections.
  • All other combinations of states and roles may also be supported.
  • The Link Layer in the Connection State shall have at most one connection to another Link Layer in the Connection State.

The table below lists a couple of possible combinations of Link Layer states (3):-

I hope this helps.

  1. Bluetooth Specification, Version 5.0, Vol 6, Part B, General Description, Page 2553
  2. Bluetooth Specification, Version 5.0, Vol 6, Part B, General Description, Page 2554
  3. Bluetooth Specification, Version 5.0, Vol 6, Part B, General Description, Page 2555


来源:https://stackoverflow.com/questions/53263755/link-layer-state-for-more-than-one-simultaneous-connection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!