如果我们把计算机网络按照层级来进行划分,那么大致上可以分为以下几个层级:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

我们一般在了解计算机网络的时候,抛开应用层不谈(因为这一般都会牵扯到各式各样的具体应用),我们主要关注的都是TCP/IP协议。正是因为如此,我们可能对应用层、传输层、网络层都能有着较为深入的理解,但是对数据链路层和物理层的工作原理却不太清楚。

我们知道互联网可以被看成一张网,传输层实现的是端到端的数据传输,而网络层实现的则是通过对数据进行不断地路由来最终把数据从某一端传输另一端。可是在互联网上的相邻两个节点之间的数据是如何传输的呢?点到点之间的数据传输是网络层实现数据传输的基础,事实上网络上相邻两个节点之间的数据传输是在数据链路层和物理层实现的。


物理层

首先了解物理层,物理层工作在真实世界。在这里,我们可以通过各种各样的方式来进行数据的传输。例如:

  • 对于导线(同轴电缆、双绞线),我们可以通过电压的高低来传输信息。首先发送端改变导线的电压,之后接收端检测导线的当前电压,假设我们规定电压从低变高记为bit 1,电压从高变低记为bit 0,这样我们就可以通过导线传输数据了;
  • 对于光纤,我们可以通过在发送端发送光、接收端检测当前发送端是否开启了光源的方式。如果发送端打开了光源就记为bit 1,如果发送端关闭了光源就记为bit 0;
  • 由于运动的电子会在其周围产生有规律的电磁波,此时我们只需要在电磁波的范围内放置导体,在该导体内就会产生有规律的电流。由于以上原理,我们可以利用电磁波来实现无线的数据传输,以下是两种常见的方式:
    • 调频:通过不断地改变波的频率来发送数据;例如,频率高表示bit 1,频率低表示bit 0;
    • 调幅:通过不断的改变波的振幅来发送数据;例如,波的振幅大表示bit 1,振幅小表示bit 0;

数据链路层

以太网

以太网(IEEE 802.3)是数据链路层最重要的实现之一,下面是以太网的帧格式

经典的以太网使用CSMA/CD协议来实现数据的传输,该协议一般被实现在网卡内部,操作系统内核不需要干预并且无感知。

交换机

交换机工作在数据链路层,集线器、路由器通常会被用来与交换机进行比较,需要注意的是集线器工作在物理层,路由器工作在网络层,它们之间的区别可以通过视频来进一步的了解。

无线局域网

无线局域网同样是数据链路层的重要实现之一,无线局域网的主要标准是IEEE 802.11,也叫做Wi-Fi。下面是802.11的帧格式:

802.11使用短程的无线电技术,通常工作在2.4GHz或者5GHz频段。802.11使用CSMA/CA协议来实现数据的传输,此协议有些类似于CSMA/CD但并不完全一样。