Understanding online subsystem and sessions


is my understanding of the online subsystem and sessions right? First you chose a onlinesubsystem (steam or UE4) then you host a session. Under the hood the Subsystem registers the session on a Server of Steam or Epic.
When ever someone with the same GameID wants to find a session the server is asked for any registered sessions and the IP Adress of the server. Is that right?

If not, how is the distribution of hosting Sessions working? How does the findSession function work?

Thank you in advance!