Joining an IBSS?

Maybe a stupid question, but how is an adhoc network (ibss) or 802.11s network established?
I can not find anything useful. Is there some authentcation process (probe/auth/assoc)? Or do I just start communication with the same bssid?

Edit:
I finally found something helpful. But is only the first device beaconing or everyone?

Still searching for something 802.11s.

I'm not an expert, this is my rough understanding:

tl;dr it's a P2P system, there is no "first" or "last" or whatever. Everyone beacons everyone else and everyone knows the bssid and password and every setting of the network.

afaik in an "ad-hoc" wifi everyone beacons when they need to send data, since it is a P2P network. All other client devices receive the beacon and decide if it is for them or not, if it is for them they answer and establish a direct communication, when the data transfer is over everything returns dormant. There is no concept of routing or "network", each communication is between two devices that can communicate directly over wireless.
See also https://wiki.archlinux.org/title/Ad-hoc_networking

for 802.11s aka mesh, https://openwrt.org/docs/guide-user/network/wifi/mesh/80211s each device in the mesh has credentials to connect to everyone else like an ad-hoc and it is also a P2P network.
Mesh systems differ from ad-hoc because they have more routing layers to actually create a single network, and use lists of known nodes and whatnot so the connections have less latency. Each node knows already what nodes are up so there is no beacon/ack before moving data, but it constantly sends beacons to check if each node is online and keep its "neighbor lists" updated.

To look for more info you can probably hit the docs of popular mesh wifi projects like Libremesh
https://www.libremesh.org/howitworks.html

1 Like

Just to be more precise, I always thought everyone would beacon. However, there is a so-called target beacon transmission time (TBTT). In that time, all stations plan to send a beacon. They use a random backoff, and the first beacon that is sent will cause stop all other planned beacons from being sent. So everyone is sending beacons, but only one beacon per beacon interval from a random station.