LACP vs 802.3ad

IEEE 802.3ad is the standard for link aggregation, not withstanding the move of link aggregation standards to the 802.1 group, as 802.1ax.

The real advantage of LACP is the LACPDUs that transit the link from the switch to the host. These ensure that both sides of the link are capable of LACP. A secondary advantage is that with LACP, both the host and the switch think of all aggregated ports as a single port, allowing full use of all paths, as opposed to host-side LAG, where the switch still sees multiple ports, and all packets to the host traverse a single path, and only outbound packets from the host are load balanced across links.

If you're using a switch vendor that supports MLAG, or multi-chassis link aggregation, then you can use LACP to bond multiple links connected to multiple switches. This permits a great deal of resiliencey, while easing manageability and optimizing throughput.

But basically, if your switch supports LACP, use LACP. If your switch doesn't support LACP, then use non-LACP aggregation.


Regarding part 2:

I found that our Cisco switches used a much more basic load balancing algorithm. They built a hashtable of sources based on Ethernet frame details and associated each hash with a port in the channel.

Therefore each source became associated with only one port and was limited to throughput of the physical link.