What does an application layer protocol specify?
Explanation
An application layer protocol encompasses the types of messages exchanged (A), the format, syntax, and semantics of these messages (B), as well as the rules governing when and how processes send and respond to messages (C), making option D the correct choice.