文章目录
十、网络基础
1. 协议
“协议” 是一种约定。在网络环境下,主机距离过远时,必定会引发新的问题,比如数据可靠性,主机定位问题,数据传输等问题。为了解决这些问题, 让这些不同计算机之间能够相互顺畅的通信,就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议 。
OSI七层模型和TCP/IP四层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范,把网络从逻辑上分为七层,概念非常清楚。但是!,它既复杂又不实用; 所以我们按照 TCP/IP五层(或四层)模型 来讲解。
我们将OSI七层模型中的上三层合并成一个 应用层 。
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
物理层:负责光/电信号的传递方式。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
由于最底层的物理层我们考虑得比较少,所以将其忽略,于是TCP/IP协议就变成了四层模型。
由上图可发现,网络层次模型很像操作系统的层次模型。其实本质上都是一样的,传输层和网络层都是操作系统的部分,网络其实也是操作系统源代码的一部分。因此,从语言角度来看:协议 本质就是双方都能识别的结构体类型!
网络传输基本流程
数据从一台计算机到另一台计算机需要通过 以太网 (或其他)传输。
用户想要将数据发送到另一台主机上,数据无法直接传输,数据必须从本主机的应用层开始,自上而下 经过物理层(网卡),然后经过 以太网 传输到另一台电脑的物理层,在 自下而上 到达对面主机的应用层。移动过程跟大写的 U 一样。
报文与封装
报文是在网络中传输的数据单元,是数据在网络中的一种封装格式。用户打算发送的消息,在经过本主机每一层的时候,每层协议都会给从上一层发下来的数据中加上一节 协议报头 。这个过程叫做 封装 。最后将层层封装后的数据报文通过网络传输到接收方主机上时,上述过程将逆向进行。报文会被每层协议 逐层解封 。