Allows directly connected hosts to communicate. Sometimes these hosts are the only two things on a physical medium. In that case, the challenges that this layer addresses include flow control and error detection/correction.
Encapsulates packets for transmission across a single link.
Resolves transmission conflicts i.e., when two end systems send a message at the same time across one singular link.
Handles addressing If the data link is a broadcast medium, addressing is another data link layer problem,
Multiplexing & Demultiplexing:
Multiple data links can be multiplexed into something that appears like one, to integrate their bandwidths.
Likewise, sometimes we disaggregate a single data link into virtual data links which appear like separate network interfaces