To elaborate a bit further on the post above me, there would be two main functions for the internet here.
First, you'd need some sort of lobby/matchmaking system. You could use the old methods similar to back in the day where one person just "listens" for other users that would connect, and other players obtain their IP address and connect to them. But in this day and age it doesn't work as well due to firewalls/routers not letting packets in indiscriminately without having to configure port forwarding.
So an easier method in this case would be to have some kind of centralized server that people connect to for matchmaking purposes. With this, you can still have a player hosting the game. The reason it works a little better is that, with the modern firewalls and routers, if you send a UDP packet out to a destination before you receive any packets, it temporarily allows you to receive packets on that same port from your destination.
So, when you join together in a lobby and start a game, the server would send the host the ip's of the other 3 players, and the ip of the host would go to the players themselves. The ports would be opened, and data exchange can begin.
The second main function of the internet is of course sending data throughout the game. For either of the above, you can use TCP or UDP. TCP opens up a connection with another computer over a socket. You can only (for most intensive purposes) only have one computer connected per socket. The upside is that there is procedures in place for TCP connections to check for lost packets. The downside is that you use up extra sockets and you have to manage all of those incoming and outgoing connections.
For UDP, you can have all the players connected to a single port and just broadcast changes out to everyone through that indiscriminately. The downside is that you have to employ your own method of checking to see if packets were dropped or not.
Kind of a long bit, but I hope it helps, :3