GCSE Computer Science helpWatch
Firstly, remember that TCP/IP itself is a transport mechanism - i.e. basically a carrier. If you imagine the internet as a huge complex mesh of physically inter-connected devices, then TCP/IP is the mechanism which allows those devices to talk to each other from one end of the 'mesh' to the other (jumping across many nodes in that mesh along the way...), but TCP/IP is agnostic to the data it carries and the applications using that data - i.e. it does not know or care whether it's carrying e-mail data or web data, or video/audio data, etc. Nor does it know anything about web browsers, e-mail clients or web services, it just knows that it needs to carry some kind of data (which might be web/audio/email or something else - TCP/IP just says "I don't care..") from one device to another.
Application layer protocols depend upon TCP/IP - meaning that they use TCP/IP to transport data, but application layer protocols are "opinionated" to their particular applications (web browsers, e-mail clients, etc) and the data those applications use - meaning that they do care about "web data" or "e-mail data" or "audio data" etc.
The best example is HTTP for web browsers - in order for the internet to work the way it does, all web browser applications must use HTTP to communicate with web service applications. If they didn't use HTTP, then web services wouldn't understand the request messages, so "the web" wouldn't work.
At the same time, all web service applications must be capable of recognising any HTTP requests they receive, and sending valid HTTP responses. Again, if web services didn't use HTTP, then web browser applicationss wouldn't understand the response messages, so "the web" wouldn't work.
Think about how the internet is put together - there are lots of different web browsers from differen vendors (e.g. Mozilla Firefox, Chrome, Safari, Edge, Internet Explorer, Opera..). Similarly there are lots of different web servers, including Microsoft IIS, Apache, nginx, etc. All of them obviously use TCP/IP to get data from one device to the other, but that's not enough because a device is not an application. The applications themselves still all need to speak the same "language" (a.k.a "protocol" ) otherwise the web would just be a horribly complicated mess.
Imagine if IIS, Apache and nginx didn't use HTTP and they all had different ways of representing web content using TCP/IP directly. They would each stlil need to solve all the same problems that HTTP solves, but without having a "standard" to follow, they'd end up doing it in different ways. It'd be like having one side talking in french while the other side listens in chinese - it just wouldn't work because neither side would understand the other.
HTTP is a standard protocol, if web servers all made up their own without conforming to a standard, then in order for browsers to work properly, they would all need to implement 3 different ways of communicating to those servers, and they'd need to spend time trying to figure out what kind of server they're talking to as well - the whole thing would just be really difficult and unmanageable.
Similarly, e-mail clients need to use SMTP, POP or IMAP to communicate with E-mail service applications. Again, TCP/IP is used for transport, but as above, TCP/IP doesn't know or care about concepts like "e-mail". SMTP/POP/IMAP are other types of application protocols, but for e-mail applications.. Again, there are different types of mail clients such as Outlook and various different mail apps on different phones, and all kinds of 'webmail' services like Hotmail. Also there are many different server applications too which all need to talk to each other (e.g. so that a 'hotmail.com' e-mail user can send a message to a 'gmail.com' e-mail user).