Above answers are well explained on Statefulness and Statelessness of any protocol., just to add few more points.
Despite of the fact that if protocol is Stateless, we need to include additional information in every request (many a times repeated data) and this extra information will be needed to be interpreted by the server , which is the very drawback of Stateless protocols, Stateless protocols have been worldwide used as the protocol for the Web (http or https) because of following advantages.
Stateless protocols are preferred-
- Better Scalability and high Availability, as the state itself doesn't need to be stored on server so they ease replication concerns and no dynamic storage needed ex. HTTP ,which would be difficult otherwise, to implement. Even on connection loss, simply request-resend will resolve the problem.Request can be sent to any node at any time
- Also they are cacheable (EX. UDP, HTTP, IP etc)
On the other side, Stateful protocols are heavy to implement and Scalability is difficult. Ex. TCP, POP3, IMAP, FTP, SMTP etc.
Though nowadays many web applications (where protocol is HTTP) have started keeping logs of users. So we can say they (stateless protocols) virtually look like Stateful, which can be done by either Implementing cookies or by extending the URLs (state sent as URL part)..
Concluding for above question, Application layer stateful protocols are FTP & POP3. so (C)