网络是一个虚拟的东西,它很大意义上不是看的见摸得着的:
- 从上到下依次包括 应用层、传输层、网络层、链路层、物理层。
- 本文会沿着相反的方向,依次讲述物理层、链路层和网路层。
物理层
是网线,是光纤,是产生信号传输的介质,是物理介质。
- 计算机通过电路信号交互信息
- 网线或光纤能产生计算机能识别的01信号
链路层
在物理层中,我们知道
- 数据以流的形式存在于通信介质中
- 网线是双工的,A可以发送到B,B也可以发送到A,如果A一直发送,那么B就没法工作。
我们需要划分一些规范,让这个简单的网络能正常工作。
数据流和帧
首先是包的拆分,这可以让一个方向的流不会永远占据链路。
按照流发送
这里描述的过程是这样的:
- A先发送
- B打算发送
- B检测到碰撞就先等待
- A要发送的内容特别多,一直没有停下
- B一直检测到链路是不空闲的,就会等特别长时间
链路帧发送
所以,链路层做了一些事情,如下图:
-
A网卡将要发送的数据按照MTU拆分为一个帧
-
A先发送一个帧
-
B打算发送,B检测到碰撞就先等待
-
A发送完一个帧后,链路空闲
-
B可以发送
-
A检测到空闲之后继续发送剩余的帧
这样的话,链路层的帧解决了链路独占的问题。
以太网是使用的最广泛的一种链路层的协议。
链路层基本要素
这样,链路层基本要素如下图:
-
假设A给B 传输一段数据:0111001010101
-
这段数据会被分给为一个个的frame
-
以太网协议的链路层是现在用的最广泛的链路层协议,规定frame(MTU:最大传输单位)大小是1500字节
-
如果一次传输的数据超过