clarification on multiple access in data link layer
If each communication is on a separate channel, you need to figure out what channels are free before you start communicating. How do you propose to do that? If you try to ask somebody, that requires communication, so how do you find out which channels are free for that communication? If you try to just listen to what comes past and figure out which channels are free at the moment, how do you know that a channel that's quiet at the moment is really free, and it's not just that its users have paused for a moment. What do you do if somebody else also starts transmitting on that channel at the same time as you?

Alternatively, you need to preallocate $\tfrac12n(n-1)$ channels to your $n$ hosts, so that each pair of hosts has a specific channel to talk on. But that doesn't scale.