Originally, jails didn't virtualise the network stack. That was added later, in FreeBSD 8.0 with VNETs, which were buggy for a long time, but went through extensive testing and are enabled by default since FreeBSD 12.0 (quite recently). Solaris Zones went a step further than the original design, and run a separate network stack for each zone from the start, years before FreeBSD did.
Jails: Confining the omnipotent root (2000): <https://people.freebsd.org/~bapt/pdfdocs/papers/jail.pdf>
Solaris Zones: Operating System Support for Consolidating Commercial Workloads (2004): <https://www.usenix.org/legacy/event/lisa04/tech/full_papers/...>
Originally, jails didn't virtualise the network stack. That was added later, in FreeBSD 8.0 with VNETs, which were buggy for a long time, but went through extensive testing and are enabled by default since FreeBSD 12.0 (quite recently). Solaris Zones went a step further than the original design, and run a separate network stack for each zone from the start, years before FreeBSD did.
BTW, recommended talk about those topics:
Papers We Love: Jails and Zones: <https://www.youtube.com/watch?v=hgN8pCMLI2U>