网络数据包具备分析实践能力和工具

本文详细介绍了网络数据包的构成、各层协议的作用,以及数据封装和解封装的过程。重点讲解了Wireshark等抓包工具在网络安全分析、性能优化和协议理解中的应用。
摘要由CSDN通过智能技术生成

什么是网络数据包:

计算机在网络中传输的基本单位。它是一种数据的封装形式包含源地址目标地址协议类型数据长度等信息

数据包组成:

TCP/IP协议数据包,一般由应用层传输层网络层数据链路层封装而成

数据包封装:

  1. 应用层数据被封装为应用层协议的数据。例如,HTTP 请求中包含了请求头和请求体,SMTP 邮件中包含了邮件内容等。

  2. 传输层:在传输层,应用层的数据被封装为传输层协议的数据段。常用的传输层协议有TCP和UDP。在封装时,会加入源端口和目标端口等控制信息。

  3. 网络层:在网络层,传输层的数据段被封装为网络层协议的数据包。常用的网络层协议是IP协议。在封装时,会加入源IP地址和目标IP地址,以及路由和分片等相关信息。

  4. 数据链路层:在数据链路层,网络层的数据包被封装为数据帧。例如,以太网帧是常见的数据链路层协议。在封装时,会加入源MAC地址和目标MAC地址等信息。

  5. 物理层:在物理层,数据链路层帧被封装为比特流,以便通过物理介质进行传输。

封装的顺序是自上而下,即从应用层开始逐层封装至物理层

数据包解封装:

  1. 物理层:接收端将比特流转换为数据链路层帧

  2. 数据链路层:在数据链路层,接收端将网络层数据包解封装为数据链路层帧,即还原为原始的以太网帧或其他数据链路层协议。

  3. 网络层:在网络层,接收端将数据链路层帧解封装为网络层数据包,即还原为原始的IP数据包。

  4. 传输层:在传输层,接收端将网络层数据包解封装为传输层数据段,即还原为TCP或UDP数据段。

  5. 应用层:在应用层,接收端将传输层数据段解封装为应用层协议的数据,即还原为原始的应用层数据。

解封的顺序是自下而上,即从物理层开始应用层结束

四层协议各自作用:

数据链路层实现了网卡接口的驱动程序

网络层实现了数据包的选路和转发

传输层为两台主机上的应用程序提供端到端(end to end)的通信

应用层负责处理应用程序的逻辑

工作原理:

  1. 数据封装:当一个应用程序需要发送数据时,数据会被封装成一个或多个网络数据包。在传输层(如TCP或UDP)中,数据会添加传输层首部信息,包括源端口和目标端口等。然后,在网络层(如IP协议)中,数据包会添加网络层首部信息,包括源IP地址和目标IP地址等。这样,数据包就形成了一个完整的网络数据包。

  2. 路由选择:一旦数据包被封装好,它就会根据目标IP地址被发送到网络中。在这个过程中,路由器会根据路由表中的信息,确定数据包应该通过哪个路径进行传输。路由器会查找目标IP地址,并根据最优路由选择将数据包转发到下一个网络节点。

  3. 数据传输:一旦路由器确定了数据包的下一个节点,它就会将数据包发送到相应的目标节点。数据包会经过一系列的网络设备(如路由器、交换机等),通过不同的链路进行传输,直到到达目标设备。

  4. 数据解封:当数据包到达目标设备后,它会经过相反的过程进行解封。目标设备会根据数据包中的协议类型字段,确定如何处理数据。首先,网络层(如IP协议)会解析网络层首部信息,获取源IP地址和目标IP地址等信息。然后,传输层(如TCP或UDP)会解析传输层首部信息,获取源端口和目标端口等信息。最后,应用程序会接收到数据,并进行相应的处理。

分析:

网络数据包中包含了大量的信息,可以通过网络分析工具进行解析和分析。网络分析工具有Wireshark大白鲨)、tcpdumptshark等。

  • 可以了解网络传输的细节和性能状况

  • 可以查看源地址和目标地址了解数据的发送和接收方

  • 可以查看传输协议类型

  • 可以查看数据包的大小时间戳传输延迟等信息,以及数据包的有效载荷即实际传输的数据内容)。

  • 可以检测网络问题排查网络故障进行性能优化等。

用途:

  • 网络安全分析

可以通过分析数据包来检测和阻止网络攻击,如入侵检测、DDoS攻击等。

  • 网络性能优化

可以分析数据包来识别网络瓶颈、优化网络拓扑、改善应用性能等。

  • 协议分析

可以深入了解各种网络协议的工作原理、通信过程和数据格式。

抓包分析及应用:

  1. 发送方和接收方的IP地址和端口号:可用于确定网络通信的参与方识别网络流量的来源和目标。可用于追踪攻击者的IP地址确定通信双方的身份

  2. 协议类型:可确定网络通信使用的协议类型,如TCP、UDP、ICMP等。这对于协议分析和网络安全分析非常有用,可用于检测恶意协议使用识别不同协议的行为等。

  3. 数据包大小和传输延迟:可用于网络性能优化。通过分析数据包大小和传输延迟,可以确定网络传输的瓶颈,找到导致网络延迟的原因,并进行相应的优化。

  4. 数据包的时间戳:可用于分析网络流量的时间特征。通过时间戳,可以确定网络流量的峰值和低谷,识别网络中的高负载时段,进而进行网络规划和优化。

  5. 数据包的有效载荷(Payload):可用于分析传输的实际数据内容。这对于协议分析和漏洞分析非常有用。通过分析有效载荷,可发现网络中的漏洞,识别恶意软件传播特征,甚至还可以恢复被加密的通信内容。

  6. 协议头部和选项:可用于深入分析各种协议的工作原理和通信过程。通过分析协议头部和选项,可以了解协议的各个字段的含义和作用,进而实现协议分析、网络安全检测等目的。

抓包工具:

  1. Wireshark:是一种开源的网络分析工具,具有强大的捕获和分析功能。它可以在各种操作系统上运行,并支持多种协议解析。

  2. tcpdump:是一种命令行网络抓包工具,可用于捕获和显示网络数据包。它在各种操作系统上都有版本,并提供灵活的过滤选项。

  3. tshark: 是 Wireshark 的命令行版本,具有类似的功能。它可以以文本或 JSON 格式输出捕获到的数据包,适用于自动化和脚本化的分析任务。

  4. Fiddler:是一个用于捕获和分析 HTTP/HTTPS 流量的跨平台工具。它可以显示请求和响应的详细信息,并提供强大的过滤和调试功能。

  5. Charles: 是一种用于捕获和分析 HTTP/HTTPS 流量的代理工具。它可以拦截和修改网络请求,并提供详细的请求和响应信息。

  6. Burp Suite: 是一套用于渗透测试和应用程序安全评估的工具。它包括一个代理服务器,可用于捕获和修改网络流量,并提供丰富的分析和扫描功能。

  7. NetworkMiner: 是一种网络分析工具,可以自动重组捕获到的数据包,并提取出其中的文件、图像和其他有用的信息。

  8. Capsa:是一种专业的网络分析和诊断工具,具有强大的捕获和分析功能。它可以监控和分析实时的网络流量,并提供详细的统计信息和报告。

工具优缺点:

  • Wireshark:优:功能强大,支持多种协议解析。缺:对于非技术人员来说可能不太友好,需要一定的学习成本。

  • tcpdump:优:简单易用,适合快速抓包。缺:只提供命令行界面,不够直观

  • tshark:是 Wireshark 的命令行版本优:适合自动化和脚本化的分析任务。缺:对于非技术人员来说可能不太友好

  • Fiddler:优:用于捕获和分析 HTTP/HTTPS 流量,具有强大的过滤和调试功能,适合开发人员和测试人员使用。缺:对于其他协议的分析支持较弱

  • Charles:优:用于捕获和分析 HTTP/HTTPS 流量,具有强大的请求和响应信息显示,适合开发人员和测试人员使用。缺:对于其他协议的分析支持较弱

  • Burp Suite:优:用于渗透测试和应用程序安全评估,具有强大的分析和扫描功能,适合安全测试人员使用。缺:对于非技术人员来说可能需要一定的学习曲线

  • NetworkMiner:优:自动重组捕获的数据包,提取有用的信息,适合分析恶意活动。缺:对于非技术人员来说可能不太友好

  • Capsa:优:用于网络分析和诊断,提供详细的统计信息和报告,适合网络管理员安全专家使用。缺:对于非技术人员来说可能需要一定的学习曲线

数据组装/拆解过程:

数字代表上层协议的类型
完整数据包为:

传输数据包内容 = 链路层包头 + 网络层包头 + 传输层包头 + 应用层数据

Ethernet(MAC)封包格式 ARP/RARP/IP封包 TCP/UDP/ICMP/IGMP封包

接受到的为MAC完整包, 根据每层的包头里面的类型码,确定上一层为什么协议

完整的数据包接收到数组msg[]后,每个字节为数组的一个位置,通过数组位置的后移,可以对应数据包内的所有数据

系统接收到的首先为MAC包

完整的数据包接收到数组msg[]后,每个字节为数组的一个位置,通过数组位置的后移,可以对应数据包内的所有数据

eg:

msg[0] msg[1] msg[2] mag[3] msg[4] mag[5] 装的内容为 目的MAC地址 mag[12] msg[13] 为上一层协议的类型号

根据类型号,确定数据内的网络层为哪一类,逐层解析每个协议的内容即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zh&&Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值