Sessions Dedicated server

Hello guys. I am trying to understand the whole sessions system right now and right now my goal is to be able to have a UI where you can host a Session and then have another computer find that Session after it is made, and then join it, putting them in the same level. So I notice most people do this using the steam online subsystem with a listening server, but for me I want to use a dedicated server. What would be the difference in doing it using a dedicated server? I do have C++ knowledge so if it is only doable in C++ I’m good with that (I actually prefer C++). Also does this require entering the host’s IP and port forwarding and stuff? Because I am trying to get a clean system where that is not needed.