假设,我们已经解决了物理层的问题,也就是说,主机间可以发送信号来传输比特0或者1了。
我们来看看,在这样一个总线型的网络上,还面临什么需要解决的问题。
- 如何标识网络中的各主机(主机编址问题,例如MAC地址)
如图所示,主机A要给主机C发送数据,
但是,表示数据的信号会通过总线传播到总线上的每一个主机。那么主机C如何知道该数据是发送给自己的,自己要接受呢?而主机B、D、E又如何知道该数据并不是发送给自己的,自己应该拒绝呢?
这就很自然地引出了如何标识网络中各主机的问题,也就是主机编址问题。
网卡上的MAC地址,它就是主机在网络中的地址。
主机在发送数据时,应该给数据附加上目的地址,根据目的地址和自身地址,来决定是否接受数据。
这就又引出了一个问题:
- 如何从信号所表示的一连串比特流中区分出地址和数据
目的主机如何从信号中区分呢?也就是解决分组的封装格式问题。
- 如何协调各主机争用总线
另外,对于总线型的网络,还会出现下面这种典型的问题。
例如,某个时刻,总线总是空闲的,也就是没有主机使用总线来发送数据。片刻之后,主机B和D同时向总线发送数据,这必然会造成信号碰撞,因此,如何协调各主机争用总线,也是必须要解决的问题。
需要说明的是,这种总线型的网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连形成的交换式以太网。
那么,以太网交换机是如何实现的呢?
我们将这些问题,全部划分到数据链路层。
到这里,我们可能会发现,只要解决了物理层和数据链路层各自所面临的