为了更好的理解网络分析技术,了解并掌握网络通讯原理是必须的。这一节我们将讲述网络通讯基础知识,涉及到协议、OSI参考模型及数据封装。
网络通讯定义了计算机如何接入到网络中,以及接入网络中的通信标准,主要包含协议、OSI七层参考模型和数据通信时的协议封装过程。
协议
由于网络中运行着由不同平台上的异构系统。为了能使其相互之间通讯,就需要一套共同的网络语言,我们称这种语言为协议。
常见的协议包括传输层的传输控制协议(TCP)、用户数据协议(UDP),网络层的IP协议,其它辅助性协议如地址解析协议(ARP)、动态主机配置协议(DHCP)及Internet控制报文协议(ICMP)等等。
为了更好的理解协议,可以将其想象人类口头或书面交流的规则。每一种语句都有自己的规则。协议也是类似,它规定了数据包如何转发,如何发起和控制一个连接,已经如何传输,收到后如何回复等等。
OSI七层参考模型
协议都是分层工作的,常见的参考模型有2种,一种是OSI七层模型,另外一种是TCP/IP分层模型。
这里我们选择最能帮助理解协议的七层模型来说明。
最顶层的应用层表示用户在系统界面实际操作访问的应用程序。最底层的物理层表示实际网络传输介质。每一层都会涉及都不同的网络协议,这些协议共同协作,完成数据通讯,及应用访问。
在OSI模型中,每次都有自己的工作职能,大致如下。
应用层(第七次)。为用户提供直接访问接口,是唯一一层用户能看到的协议。如用户常用的web访问为http协议,文件共享可能使用的是MIFS协议等。
表示层(第六层)。这层负责将接收到的数据格式转化为应用层可识别的格式。不同的应用层,对应的表示层编码和解码方式各不相同。常见的加解密操作也是由表示层负责完成。
会话层(第五层)。会话层负责管理两台计算机之间的会话,包括会话的建立、维护和结束等等。
传输层(第四层)。主要负责数据无差错传输。传输层有很多数据传输控制机制,如流控、分段、重组、错误控制等等。
网络层(第三层)。这层主要负责数据在网络中的转发规则。路由工作主要在这一层。网络层除了负责逻辑寻址外,还需要处理数据包分片及一些错误校验工作。
数据链路层(第二层)。这一层主要负责物理网络寻址,为物理设备提供下一条的MAC地址信息。二层交换机是物理链路层的主要网络设备。
物理层(第一层)。物理层及网络传输的介质,主要包括网络设备硬件和电气特性。
无论是OSI参考模型,还是TCP/IP四层分层模型,不同的分层中有对应的常见协议,下图是常见的经典协议对于图。
封装
封装是协议栈中不同的分层对传输的数据加上一个协议头部或尾部,保证数据能够顺利完成传输。
封装过程会创建一个协议数据单元(PDU),其中包括发往对方的应用层数据,依据所有增加的头部和尾部辅助信息。对方接收到这个数据包文后,逆向逐层剥去发送方增加的头部和尾部信息,直到最上层就剩下应用层信息。
下图是客户端和服务器端之间的数据封装过程示意图。
所有数据包传输基本都是以上图中描述的过程创建、传输和处理。