I realize this setup may be a bit confusing. The OnlineSubsystem module has some basic, common functionality that is shared between the concrete online subsystem implementations. These implementations are separate modules themselves, and must also be included in your dependencies. I recommend starting with OnlineSubsystemNull, as this will allow you to test multiplayer with multiple instances on one machine as well as over multiple machines on a LAN. Take a look at how ShooterGame includes OnlineSubsystemNull and OnlineSubsystemSteam.
Also, you may need to add
in your DefaultEngine.ini config file (if you use something other than OnlineSubsystemNull though, change this line appropriately!).
The Sockets module does handle the low-level UDP (and TCP) connections. The online subsystems expose higher-level, usually platform-specific features and services, such as achievements, leaderboards, friends, etc.