1.1、数据包嗅探器工作原理
1、收集,数据包嗅探器从网络线缆上收集原始二进制数据。通过情况下,通过将选定的网卡设置成混杂模式来完成抓包。该模式下网卡将抓取一个网段上所有的网络通信流量,而不仅是发往它的数据包。
2、转换,将捕获的二进制数据转换成可读形式。
3、分析,对捕获和转换后的数据进行真正的深入分析。
1.2 网络通信原理
1.2.1协议
现代网络是由多种运行在不同平台上的异构系统组成。为了使它们之间能够相互通信,我们使用了一套共同的网络语言,并称之为协议。常见的网络协议包括传输控制协议(TCP)、互联网协议(IP)、地址解析协议(ARP)和动态主机配置协议(DHCP)。一个网络协议可以非常简单,也可能非常复杂,这取决于它的功能。尽管各种协议往往有着巨大的差异,但它们通常用来解决以下问题:
1)发起连接:由客户端还是服务器端发起连接?在真正通信之前必须要交换哪些信息?
2)协商连接参数:通信需要进行协议加密码?加密密钥如何在通信双言之间进行传输?
3)数据格式:通信数据在数据包中如何排列?数据到达接收设备时以什么样的顺序进行处理?
4)错误检测与校正:当数据包花了太长的时间才到达目的地时如何处理?当客户端暂时无法和服务器建立通信 时,该如何恢复连接?
5)连接终止:一台主机如何告知另一台主机通信已经结束了?如何礼貌地终止通信?
1.2.2 七层OSI参考模型
OSI参考模型只是一个行业建议标准,协议开发并不需要严格地遵守它。
OSI参考模型中的每层都具有特定功能,具体如下 :
1)应用层:为用户访问网络资源提供一种手段,这通常是唯一一层能够由最终用户看到的协议,因为它提供的接口是最终用户所有网络活动的基础。
2)表示层:将接收到的数据转换成应用层可以读取的格式。在表示层完成的数据编码与解码取决于发送与接收数据的应用层协议。表示层同时进行用来保护数据的多种加密与解密操作。
3)会话层:管理两台计算机之间的对话(会话),负责在所有通信设备之间建立、管理和终止会话连接。
4)传输层:为较低层提供可靠的数据传输服务。通过流量控制、分段/重组、差错控制等数据机制,传输层确保网络数据端到端的无差错传输。
5)网络层:负责数据在物理网络中的路由转发,是最复杂的OSI层之一。它除了负责主机在逻辑寻址外,还处理数据包分片和一些情况下的错误检测。路由器工作在这一层上。
6)数据链路层:提供了通过物理网络传输数据的方法,其主要目的是提供一个寻址方案,可用确定物理设备(例如MAC地址),网桥和交换机工作在此层。
7)物理层:OSI参考模型的底层是传输网络数据的物理媒介。这一层定义了所有使用网络硬件设备的物理和电气物性。提供一种共享通信资源的方法,将数字信号转换成模拟信号输出,并反过来将接收的模拟信号转换加数据信号。
OSI参考模型各个层次上的典型网络协议:
发送和接收计算机相同层上的网络协议是相互配合的。通信数据会从一个通信端的顶部流向底部,然后当它到达另一通信端时,将反向从底部流向顶部。
OSI参考模型中的每一层只能和直接的上层和下层进行通信 。
1.2.3 数据封装
OSI参考模型不同层次上的协议在数据封装的帮助下进行通信传输。协议栈中的每层协议都负责在传输数据上增加一个协议头部或尾部,其中包含了使协议栈之间能够进行通信的额外信息。
数据封装过程将创建一个协议数据单元(PDU),其中包括正在发送的网络数据,以及所有增加的头部与尾部协议信息。随着网络数沿着OSI参考模型向下流动,PDU逐渐变化和增长,各层协议均将其头部或尾部信息添加进去,直到物理层时达到其最终形式,并发送给目标计算机。接收计算机收到PDU后,沿着OSI参考模型往上处理,逐层剥去协议头部和尾部,当PDU到达OSI参考模型的最上层时,将只剩下原始传输数据。
(数据包这个术语指的是一个完整的PDU,包括OSI参考模型所有层次协议的头部与尾部信息。)
1.2.4 网络硬件
1.集线器:
集线器会产生很多不必要的网络流量,并仅在半双工模式下运行(不能在同一时间发送和接收数据),所以你通常不会在现代或高密度的网络中再看到它们的身影(用交换机代替)。
一台集线器无非就是工作在OSI参考模型物理层上的转发设备。它从一个端口接收数据包,然后将数据包传输(中继)到设备的其它每个端口上。其它端口通过检查以太网帧头字段中的目标媒体访问控制(MAC)地址,判断出这些数据包并不是给它们的,便丢弃这些数据包。
这会导致很多不必要的通信和时间浪费,然而这正是集线器的工作原理,在高密度的实际网络中,集线器最好的替代产品是交换机,它们是支持全双工的设备,可以同步地发送和接收数据。
2.交换机:
与集线器相同,交换机也是用来中继数据包的。但与集线器不同的是,交换机并不是将数据广播到每一个端口,而是将数据发送到目的计算机所连接的端口上。
交换机在涉及处理传输数据包时,还提供一些先进的功能。为了能够直接与特定设备进行通信,交换机必须能够通过MAC地址来唯一标识设备,这意味着它们必须工作在OSI参考模型的数据链接层上。
交换机将每个连接设备的第2层地址都存储在一个CAM(Content Addressable Memory即内容寻址寄存器)表中,CAM表上充当一种类似交通警察的角色。当一个数据包被传输时,交换机读取数据包中的第2层协议头部信息,并使用CAM表作参考,决定往哪个或哪些端口发送数据包。交换机仅仅将数据包发送到特定端口上,从而大大降低了网络流量。
3.路由器:
路由器是一种较交换机或集线器具有更高层次功能的先进网络设备。可以有不同的形状和外形,路由器工作在OSI参考模型的第3层,它负责在两个或多个网络之间转发数据包。路由器在网络间引导数据包流向的这一过程被称为路由。路由器通常使用第3层地址(如IP地址)来唯一标识网络上的设备。
两个单独的网络可以通过一个路由器进行连接,如下图,如果A上的计算机希望与网络B上的计算机进行通信,传输数据将必须通过路由器。
1.3 流量分类
网络流量可以分为三大类:广播、多播和单播。
1.3.1 广播流量
广播数据包会被发送到一个网段上的所有端口,而无论这些端口连接在集线器还是交换机上。
在通过多个集线器或交换机连接多种媒介的大型网络中,广播数据包将被一直从一个交换机被中继到另一交换机上,从而传输到网络连接的所有网段上。
广播数据包能够到达的区域称为“广播域”,也就是任意计算机可以不用经由路由器即可和其它计算机进行直接传输的网络范围。
1.3.2 多播流量
多播是一种将单一来源包同时传输给多个目标的通信方式。实施多播的主要方法是通过一种将数据包接收者加入多播组的编址方案,这也是IP多播的工作原理。这种编址方案确保数据包不会被传送到未预期的目的地、
1.3.3 单播流量
单播数据包会从一台计算机直接传输到另一台计算机。单播机制的具体实现方式取决于使用的协议。例如一台设备希望与一个WEB服务器进行通信,这便是一个端到端的连接,这种类型的通信是一个典型的单播流量。