-
协议实际上是一种通信双方共同遵守的规范
- 比如我需要把性别和年龄传递给另外一台主机,那么我可以定义一个"A 协议",协议规定数据的前 4 个字节表示性别,后四个字节表示年龄。这样对方主机接收时就知道前 4 个字节是性别,而不会错把它当成年龄来处理
-
整个互联网世界能够运行,完全得益于各个软件、硬件厂商严格遵守现有的协议
- 以 IP 协议为例,你可以随便修改它,然后自己弄出一个 IP2 协议,只不过没有人认可、遵守这个协议,所以它毫无用武之地。
物理层
- 物理层的主要任务是将
比特流
与电子信号
进行转换- 在计算机的世界中,一切都由 0 和 1 组成。但是网络传输的介质(比如光纤,双绞线,电波等)中,比如在光线中,数据通过光的形式传递,0 和 1 以光的亮灭表示,其中的转换由物理层完成
数据链路层
数据链路层定义了通过
通信介质
相互连接的设备之间,数据传输
的规范在数据链路层中,数据不再以
0、1
序列的形式存在,它们被分割为一个一个的“帧”
,然后再进行传输
以太网是一种数据链路
数据链路层中有两个重要的概念:MAC 地址和分组交换:
MAC地址
- MAC 地址是被烧录到
网卡 ROM
中的一串数字,长度为 48 比特,它在世界范围内唯一
(不考虑虚拟机自定义 MAC 地址)。由于 MAC 地址的唯一性,它可以被用来区分不同的节点
,一旦指定了 MAC 地址,就不可能出现不知道往哪个设备传输
数据的情况
分组交换
- 分组交换是指将较大的数据
分割
为若干个较小的数据
,然后依次发送。 - 使用分组交换的原因是不同的数据链路有各自的
最大传输单元
- 不同的数据链路就好比不同的运输渠道,一辆卡车(对应通信介质)的载重量为 5 吨。那么通过卡车运送 20 吨的货物就需要把这些货物分成四部分,每份重 5 吨。如果运输机的载重量是 30 吨,那么这些货物不需要分割,直接一架运输机就可以拉走。
交换机
交换机是一种在数据链路层工作的
网络设备
,它有多个端口
,可以连接不同的设备。交换机根据每个帧
中的目标 MAC 地址
决定向哪个端口
发送数据,此时它需要参考“转发表”转发表是交换机自动学习得到的。当某个设备向交换机发送
帧
时,交换机将帧的源 MAC 地址
和接口
对应起来,作为一条记录添加到转发表中
参考资料
数据链路层