GameInstance and GameSession in ShooterExample

Hi guys,
how are GameInstance and GameSession used in the ShooterExample? How are they related, especially in that project?
I see that they have same functions like HostSession / JoinSession / … .

Is the GameInstance needed for online multiplayer?
I know that it persists from Game Startup to Shutdown, but not why it would be needed or used for multiplayer sessions.
Why? Why not?

Thanks for your time and help!