# 计算机网络基础（一）

计算机网络研究的本质问题：计算机之间的信息传递。现在让我们站在一个设计者的角度，假设没有计算机网络的时候，考虑如何实现这样的目的。

首先，将问题简化为2台计算机要想实现通信，首先可以想到的是，用一根线连接2台计算机，通过它来实现信息的传递。那这个线就被叫作介质。这里介质的选择，可以是光纤、同轴电缆等。而数据是需要通过转换为物理信号来进行传递的，计算中的0 1组合通过编码转换为电信号，然后再通过介质进行传递，接收方接收到电信号，再通过解码转换为0 1组合，完成传递。完成编解码的工具就是调制解调器。当然如果是Wifi的场景，介质就变为了电磁场，原理还是类似的。

软件开发人员，其实无需关注上述的过程，这里还是用到分层的理念，将底层硬件层面传递信息的过程进行对上层的屏蔽，划分出自己独有的层次，也就是物理层。

然后，问题变为很多台计算机要想实现相互通信，那么只依赖一根线就无法实现了，除了很多跟线之外，还需要为每台计算机分配一个地址，也就是MAC地址。就是 数据链路层。研究的对象是：上层提供的信息，如何在识别到MAC后，以某种协议，将数据准确发送到指定的MAC的 计算机中。

如果计算机特别特别多怎么办？直接连接？需要引入网络层了

数据链路层研究单到单，点到点的玩法，网络层研究的是整体的玩法。整体数据传输的过程。

也即：数据链路层研究通过网线直接相连的数据传输，网络层研究的是整个计算机网络中的任意机器的数据传输，不局限于网线直连的计算机。

由于传输过程中源MAC和目的MAC会随着传输的进行不断更迭，需要引入一个唯一标识最初请求来源的那台机器，即IP地址。用于唯一标识网络中的计算机，不关心其中跨越了多少MAC。（**整个网络上传输的唯一标识**KEY）
