通信模型
假如,计算机网络当初还没有被创造进去,作为计算机科学家的你,想在两台主机间传输数据,该怎么办?
这时,你可能会想到,用一根电缆将两台主机连接起来:
物理课大家都学过,电压能够分为 低电平 和 高电平。因而,咱们能够通过管制电平高下,来达到传输信息的目标:主机①管制电缆电平的高下,主机②检测电平的高下,主机间数据传输便实现了!
用数学语言进一步形象:以低电平示意 0
,高电平示意 1
。这样就失去一个理想化的信道:
通过信道,单方能够传输由 0
和 1
组成的比特流,上图中传输的比特流是 1111001011...
(从右往左看)。比特流能够编码任意信息,例如:用 1111
通知对方本地开机了,用 0000
通知对方本地筹备关机了。
至此,咱们是否失去一个牢靠的比特流信道,万事具备了呢?——实践上是这样的,但事实世界往往要比理想化的模型更简单一些。
收发管制
信道是无穷无尽的,状态要么为 0
,要么为 1
,没有一种示意闲暇的非凡状态:
举个例子,主机①向主机②发送比特序列 101101001101
,如下图(从右往左读)。最初一个比特是 1
,对应的电平是高电平。发送结束后,主机①进行管制电缆电平,所以仍放弃着高电平状态:
换句话讲,信道看起来仍依照既定节奏,源源不断地发送比特 1
(灰色局部),主机②如何检测比特流结尾呢?
咱们能够定义一些非凡的比特序列,用于标识结尾和结尾。例如,101010
示意结尾,010101
示意结尾:
- 主机①首先发送
101010
(绿色),通知主机②,它开始发数据了; - 主机①接着发送数据
01101011
(彩色局部); - 主机①最初发送
010101
(红色),通知主机②,数据发送结束;
留神到,平时信道为 1
(灰色),也就是代表闲暇状态。
抵触仲裁
如果两台服务器同时向信道发送数据,会产生什么事件呢?
一边发 0
,一边发 1
,那信道到底应该是 0
还是 1
呢?必定抵触了嘛!有什么方法能够解决抵触吗?
计划①,引入一根新电缆,组成双电缆构造,每根电缆只负责一个方向的传输。这样一来,两个方向的传输放弃独立,互不烦扰,能够同时进行。这样的传输模式在通信畛域称为 全双工模式。
计划②,在硬件层面实现一种仲裁机制:当检测到多台主机同时传输数据时,及时叫停,并协商哪一方先发。这样一来,信道同样反对双向通信,但不可同时进行。这种传输模式则称为 半双工模式。
- 单工 (simplex ),只反对单向通信,即从其中一端发往另一端,反之不行;
- 半双工 (half duplex ),反对双向通信,但不可同时进行;
- 全双工 (full duplex ),反对双向通信,而且能够同时进行;
常见物理介质
除了电信号,还有其余物理信号亦可充当通信介质。那么,常见的物理介质都有哪些呢?
- 电信号,例如电缆,网线就是电缆中的一种;
- 光信号,例如光纤;
- 电磁波,例如 WiFi,无线网卡,蓝牙等;
【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注: