一 定义

   数据包分析通常也被称为数据包嗅探或协议分析,指的是捕获和解释网络上在线传输数据的过程通常目的是为了更好地了解网络上正在发生的事情.

 二 数据包嗅探器工作原理

  数据包嗅探过程涉及到软件和硬件之间的协作.可以分为3个步骤:

  一:收集.数据包嗅探器从网络线缆上收集原始二进制数据.通常情况下,通过将选定的网卡设置成混杂模式来完成抓包.在这种模式下,网卡将抓取一个网段上所有的网络通信流量,而不仅是发往它的数据包.

  二:转换,将捕获的二进制数据转换成可读形式.高级的命令行数据包嗅探器就支持到这一步骤.到这步,网络上的数据包将以一种非常基础的解析方式进行显示,而大部分的分析工作留给最终用户.

  三:分析,对捕获和转换后的数据进行真正的深入分析.数据包嗅探器以捕获的网络数据作为输入,识别和验证它们的协议,然后开始分析每个协议的特定属性

三 网络通信原理

    3.1 协议

      现代互联网是由多种运行在不同平台上的异构系统组成的.为了使它们直接能够互相通信,使用了一套共同的语言,并成为协议.协议栈是一组协同工作的网络协议的逻辑组合.

    3.2 七层OSI参考模型

                        

数据分析数据包 数据包怎么分析_数据

 

 

      物理层:实现两台机器互联,机器与机器之间怎么通信?

           ①互联物理链路所使用的物理介质有网线,光纤,无线电波等.

           ②以010101二进制的形式互传数据,这种二进制学名叫做电信号,在网络上叫比特流

     数据链路层:010101其实是没有什么意义的数据,如何变成有意义的数据呢?

       ①对比特流进行处理:分组,8位为一组(1个字节),这种数据格式叫做帧,然后依次按顺序发送数据

       ②提供了一个寻址方案,可用于确定MAC(包括源MAC和目的MAC),确定数据是否发给自己

    总结:这一层提供了通过物理网络传输数据的方法,其主要目的是提供一个寻址方案,可用于确定物理设备(如MAC地址).网桥和交换机是工作在数据链路层的物理设备.

      网络层:主机A和主机F(不是直连)是如何通信?路径有很多条怎么选择最优的那一条?要怎么知道对方MAC?

         ①怎么知道对方MAC---- ARP,通过IP知晓MAC

         ②如何判断是否在一个子网--- IP地址

         ③怎么选择最优路径----路由协议(动态路由和静态路由)

   总结:这一层负责数据在物理网络中的路由转发,是最复杂的OSI层之一,它除了负责网络主机的逻辑寻址(例如通过一个IP地址)外,还处理数据包分片和一些情况下的错误检测.路由器工作在这一层上.

传输层:发送数据包特别多,数据包很大,需要多长时间?中间网络中断重传?数据是否完整的正确的?

         ①对发送的数据进行封装----TCP,UDP,一个一个按顺序发送,从而保证数据包是完整的,正确的.

         ②两个应用进行通信----定义端口的概念,通过端口寻找对应的程序,进行数据处理

   总结:传输层的目的是为了为较低层提供可靠的数据传输服务.通过流量控制,分段/重组,差错控制等机制,传输层确保网络数据端到端的无差错传输.传输层同时提供了面向连接和无连接的网络协议.某些防火墙和代理服务器也工作在这一层.

      会话层:断点续传

        ①可以从校验点,继续恢复数据进行重传

        ②自动收发,自动寻址的功能.

    总结:这一层管理两台计算机之间的对话(会话).负责在所有通信设备之间建立,管理和终止会话连接.

  表示层:不同系统的语法不一样,不同系统之间的通信

      ①翻译,提供一种公共语言

总结:这一层将接收到数据转换成应用层可以读取的格式.在表示层完成的数据编码与解码取决于发送与接收数据的应用层协议.表示层同时进行用来保护数据的多种加密与解密的操作.

 应用层:为用户访问网络资源提供的一种手段.这通常是唯一一层能够由最终用户看到的协议,因为它提供的接口是最终用户所有网络活动的基础.

   3.3 数据封装

        数据封装过程将创建一个协议数据单元(PDU),其中包括正在发送的网络数据,以及所有增加的头部与尾部协议信息.随着网络数据沿着OSI参考模型向下流动,PDU逐渐变化和增长,各层协议将其头部或尾部信息添加进去.直到物理层时达到其最终形式,并发送给目标计算机,接收计算机收到PDU后,沿着OSI参考模型往上处理,逐层剥去协议头部和尾部,当PDU到达OSI参考模型的最上层,将只剩下原始传输数据.

        数据包就是指一个完整的PDU,包括OSI参考模型所有层次协议的头部和尾部信息.

        注:TCP/IP模型中并没有会话层和表示层,因此实际的TCP/IP协议栈中并没有单独设计会话层和表示层的网络协议

        

数据分析数据包 数据包怎么分析_TCP_02

 

        数据包封装的详细介绍:数据包中封装的应用层数据将沿着协议栈传递给传输层.HTTP是一个使用TCP(或在TCP协议之上)的应用层协议,因此传输层中使用TCP协议来确保数据包的可靠投递.所以一个包括序列号和其他数据的TCP协议头部将被创建.并添加到数据包中,以确保数据包能够被正确交付.在完成这项工作之后,TCP协议将数据包交给IP协议,也就是在第三层上为数据包进行逻辑寻址的协议,IP协议创建一个包含有逻辑寻址信息的头部,并将数据包传递给数据链路层上的以太网.然后以太网物理地址会被添加并存储在以太网帧头中.现在数据包已经完全封装好,然后传递给物理层,在这里数据包变成0.1信号通过网络传输完成.

        封装好的数据包将穿越网络线缆,最终到达服务器.服务器开始读取数据包,从下往上,这意味着首先读取数据链路层,从中提取到所包含的物理以太网寻址信息,确保数据包是否发往这台服务器.一旦处理完这些信息.第二层头部与尾部的信息将被剔除,并进入第三层的信息处理过程中.读取IP寻址信息的方式和第二层相同,目的是确认数据包被正确转发,以及数据包未进行分片处理.这样数据也同样被玻璃,并交到下一层进行处理.现在第四层协议信息被读取,以确保数据包是按序到达的.然后第四层报头信息被玻璃,留下只有应用层数据.为了响应客户端发过来的这个数据包,服务器应该发回一个TCP确认数据包

       注意:并非每个网络数据包都是从应用层协议产生的,所以可能会进一步看到只包含第二层,第三层或第四层协议信息的数据包 

  3.4 网络硬件

      1 集线器

             集线器会产生很多不必要的网络流浪,并仅在半双工模式下运行(不能在同一时间发送或接收数据).所以通常不会在现代或高密度的网络中看到它们的身影.

    

数据分析数据包 数据包怎么分析_TCP_03

 

 

 2 交换机

    

    交换机也是用来中继数据包的,但与集线器不同的是,交换机并不是将数据广播到每一个端口,而是将数据发送到目的计算机所连接的端口上.

              交换机能够通过MAC地址来唯一标识设备,这意味着它们必须在OSI参考模型的数据链路层上.

    交换机将每个连接设备的第二层地址都存储在一个CAM(即内容寻址寄存器)表中.CAM表充当一种类似交通警察的角色.当一个数据包被传输时,交换机读取数据包中的第二层协议头信息,并使用CAM表作为参考,决定往哪个口或哪些端口发送数据包.交换机仅仅将数据包发到特定端口上.从而大大降低网络流量

        

数据分析数据包 数据包怎么分析_数据分析数据包_04

 

 3 路由器

   路由器工作在OSI参考模型第三层.它负责在两个或多个网络之间转发数据包.路由器在网络间引导数据包流向的这一过程成为路由

 

四 流量分类

   广播流量:广播数据包会被发送到一个网段上的所有端口.而无论这些端口连接在集线器还是交换机上.

   多播流量:多播是一种将单一来源数据包同时传输给多个目标的通信方式.

   单播流量:单播数据包会从一台计算机直接传输到另一台计算机.