I have not had much luck in finding a way for tcpdump to filter by the application layer protocol, like HTTP or FTP. It seems it can filter by at most transport layer protocols like TCP or UDP: https://linux.die.net/man/7/pcap-filter
Is it true tcpdump does not have the functionality to examine and identify application layer protocol headers, like Wireshark does?