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)地址,判断出这些数据包并不是给它们的,便丢弃这些数据包。
这会导致很多不必要的通信和时间浪费,然而这正是集线器的工作原理,在高密度的实际网络中,集线器最好的替代产品是交换机,它们是支持全双工的设备,可以同步地发送和接收数据。