网络通信概述
从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。
网络通信的层次
- 硬件部分:网卡
- 操作系统底层:网卡驱动
- 操作系统API:socket接口
- 应用层:低级(直接基于socket接口编程)
- 应用层:高级(基于网络通信应用框架库)
- 应用层:更高级(http、网络控件等)
网络通信的发展历程
- 单机阶段
- 局域网阶段
- 广域网internet阶段
- 移动互联网阶段
- 物联网阶段
三大网络
电信网、电视网络、互联网
网络通信的传输媒介
- 无线传输:WIFI、蓝牙、zigbee、4G/5G/GPRS等
- 有线通信:双绞线、同轴电缆、光纤等
网卡
计算机上网必备硬件设备,CPU靠网卡来连接外部网络(类似于DM9000)
作用:
- 串转并设备(内部并行、外部串行)
- 数据帧封包和拆包
- 网络数据缓存和速率适配
通信的方式分类
1.并行通信:是指数据的各位同时在多根数据线上发送或接收。如下图
并行通信的特点:控制简单,传输速度快;由于传输线较多,适用于短距离通信。
2.串行通信:是指数据的各位在同一根数据线上逐位发送和接收。如下图
串行通信的特点:控制复杂,传输速度慢;只需要一根数据线,适用于远距离通信。
串行通信方式分类
在串行通信中,根据对数据流的分界、定时以及同步方案方法不同,可分为和同步串行通信方式和异步通信方式。
同步通信
同步通信是指发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通讯传送多个字符数据(一帧数据)。下图是同步串行通信帧格式:
同步串行通信方式:把许多字符组成一个信息组(信息振),每帧的开始用字符来指示。并且发送和接收的双方必须采用同一时钟,这样接收方就可以通过时钟信号来确定每个信息位。(如下图所示)
同步串行通信帧:是将许多字符组成一个信息帧,字符可以一个接一个传输。但是,需要在每帧信息的开始加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。
同步串行通信的特点:必须有同步时钟,传输信息量大,传输速率高,但是传输设备则为复杂,技术要求高。
异步通信
异步通信是指发送和接收端使用的是各自的时钟,并且它是一种不连续的传输通信方式,一次通信只能传输一个字符数据(字符帧)。字符帧之间的间隙可以是任意的,下图是异步串行通信帧格式:
异步串行通信方式:是指通信双方以一个自读(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间是不定的,具有不规则数据段传输特性,下图是异步串行通信: