libp2p is the networking & communication layer for IPFS. Visit the main website for resources and information.
Moving from a location-addressed system to a peer-to-peer, content addressed system presents a lot of challenges. The internet as it is, with firewalls and NATs, was designed to provide data (securely) for the traditional Web2 systems.
libp2p is a modular system of protocols, specifications and libraries that enable the development of peer-to-peer network applications. Because of the way libp2p is architected, a lot of the needs and considerations that the web2 network was built on no longer apply.
See the Implementations and Bundles for all of the libraries of modules you can use and bundles for different use cases available in various languages.