初探数据包分析程序设计
- 格式:doc
- 大小:77.00 KB
- 文档页数:11
计算机网络中的数据包分析技术研究在当今数字化的时代,计算机网络已经成为我们生活和工作中不可或缺的一部分。
从日常的网页浏览、社交媒体互动,到企业的业务运营、金融交易处理,网络的应用无处不在。
而在这看似无形的网络世界背后,数据包如同小小的信使,承载着各种信息在网络中穿梭。
对这些数据包进行分析,成为了理解和优化网络性能、保障网络安全的关键技术。
数据包,简单来说,就是在网络中传输的数据单元。
它们就像是一封封被封装好的信件,包含着发送者和接收者的地址、数据内容以及各种控制信息。
当我们在网络上进行任何操作,比如发送一封电子邮件或者观看一个视频,这些操作都会被转化为一系列的数据包,并通过网络链路传输到目的地。
数据包分析技术的重要性不言而喻。
首先,它对于网络性能的优化起着至关重要的作用。
通过对数据包的分析,我们可以了解到网络中的流量分布、数据包的延迟和丢失情况等。
例如,如果发现某个时间段内网络中的数据包延迟较高,我们就可以通过进一步的分析找出导致延迟的原因,可能是网络拥塞、链路故障或者服务器负载过高。
基于这些分析结果,我们可以采取相应的措施来优化网络配置,增加带宽、调整路由策略或者升级服务器,从而提高网络的性能和用户体验。
其次,数据包分析在网络安全方面也具有不可替代的地位。
网络攻击、数据泄露等安全威胁日益严重,而数据包分析是发现和防范这些威胁的有力手段。
恶意软件的传播、黑客的入侵尝试以及异常的网络流量行为,都可能在数据包中留下蛛丝马迹。
通过对数据包的深入分析,安全专家可以检测到潜在的攻击行为,及时采取防御措施,保护网络和用户的信息安全。
在数据包分析技术中,有几种常见的方法和工具。
其中,数据包捕获是第一步。
就像是在网络的高速公路上设置一个检查站,抓取过往的数据包。
Wireshark 是一款广泛使用的数据包捕获和分析工具,它能够在不同的网络接口上捕获数据包,并以详细和直观的方式展示数据包的内容。
捕获到数据包后,接下来就是对数据包的解析和分析。
IP包流量分析程序的设计与实现一、概述IP包流量分析程序是一种用于分析网络流量中的IP包的工具。
通过该程序,可以获取网络中传输的IP包的各种信息,如源IP地址、目标IP地址、IP包大小、传输协议等,进而进行网络流量的分析和监控。
本文将从程序的设计和实现两个方面,详细介绍IP包流量分析程序的实现过程。
二、设计1.功能需求(1)捕获网络中的IP包。
(2)解析IP包的各种信息。
(3)统计不同类型的IP包数量。
(4)对IP包数据进行存储和分析。
2.系统架构(1)网络数据捕获模块:负责捕获网络中的IP包。
(2)IP包解析模块:负责解析IP包的各种信息。
(3)数据存储模块:负责对IP包数据进行存储和分析。
(4)用户界面模块:提供用户交互界面,方便用户使用程序。
3.数据结构设计(1)IP包数据结构:包括IP包的源IP地址、目标IP地址、IP包大小、传输协议等信息。
(2)IP包统计数据结构:用于统计不同类型的IP包数量。
三、实现1.数据捕获模块实现数据捕获模块可以使用网络抓包工具,如libpcap库进行实现。
该库提供了抓包函数和回调函数,可以方便地获取网络中的IP包数据。
2.IP包解析模块实现IP包解析模块需要使用解析算法,对捕获到的IP包进行解析,提取出源IP地址、目标IP地址、IP包大小、传输协议等信息。
常见的解析算法有基于协议的解析算法和基于统计的解析算法。
3.数据存储模块实现数据存储模块主要负责将解析出的IP包数据存储到数据库或文件中,以便后续的分析和查询。
可以使用关系型数据库或非关系型数据库进行存储。
4.用户界面模块实现用户界面模块可以使用图形界面或命令行界面进行实现。
图形界面可以使用GUI框架进行设计,如Qt框架;命令行界面可以使用命令行参数或交互式命令行实现。
五、总结IP包流量分析程序是一种用于分析网络流量中的IP包的工具。
通过该程序,可以获取网络中传输的IP包的各种信息,进行网络流量的分析和监控。
实验一:TCP数据包捕获及分析实验学时:4实验类型:设计实验要求:选做一、实验目的理解网络数据包的捕获原理及一般分析方法。
二、实验内容根据参考程序编写一段基于Winpcap的TCP数据包捕获并分析的程序。
要求能正确解析TCP报头的相关内容。
三、实验原理、方法和手段以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。
IEEE802.3 标准的以太网采用的是持续CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。
运用这一原理使信息捕获系统能够拦截的我们所要的信息,这是捕获数据包的物理基础。
Winpcap是针对Win32平台上的抓包和网络分析的一个架构。
它包括一个核心态的包过滤器,一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)。
抓包是NPF最重要的操作。
在抓包的时候,驱动使用一个网络接口监视着数据包,并将这些数据包完整无缺地投递给用户级应用程序。
四、实验组织运行要求1.安装Winpcap驱动及开发库。
2.在VC++6.0环境下进行程序编写五、实验条件PC机VC++6.0,winpcap驱动及开发库六、实验步骤1、安装winpcap驱动2、解压WpdPack_4_0_2.zip到磁盘,例如D盘,并将文件夹名改为WpdPack,即开发库放在D:\WpdPack 目录下。
3、设置编程环境要想例如Winpcap的开发库进行编程,就必须在VC++6.0配置与Winpcap相关的头文件和库文件的位置。
其次,为了在Microsoft VC++项目中添加一个新库连接,须要从菜单Project中选择Settings,再在tab控件中选择Link,然后在Objcet/library modules编辑框中加入要加入的新连接库名字(wpcap.lib ws2_32.lib)。
学习如何使用计算机进行网络数据包分析网络数据包分析是一项重要的技能,它能帮助我们了解网络通信的细节和问题。
通过分析网络数据包,我们可以追踪数据传输过程中的问题,识别潜在的安全威胁,以及优化网络性能。
计算机作为分析工具的使用,无疑会提高我们的效率和准确性。
在本文中,我们将深入探讨如何使用计算机进行网络数据包分析。
一、安装和配置网络数据包分析工具首先,我们需要选择合适的网络数据包分析工具。
Wireshark是一款广泛使用的免费开源工具,可以捕获和分析网络数据包。
我们可以从其官方网站下载并安装Wireshark。
安装完成后,我们需要根据自己的需求进行配置。
可以设置捕获过滤器来选择特定的网络接口、协议或IP地址。
此外,还可以配置显示过滤器来过滤和显示特定的数据包。
二、捕获网络数据包在开始分析之前,我们需要捕获网络数据包。
打开Wireshark,选择要监视的网络接口,然后点击“开始捕获”按钮。
此时,Wireshark会开始捕获来自该接口的网络数据包。
我们可以设置捕获时长或者停止捕获,具体取决于我们的需求。
三、过滤和分析数据包在捕获网络数据包之后,我们可以应用过滤器来选择和分析特定的数据包。
Wireshark支持多种过滤语法,例如基于协议、IP地址、端口等等。
通过设置过滤器,我们可以只显示我们感兴趣的数据包,减少分析的工作量。
同时,Wireshark还提供了丰富的协议解析功能,可以解析各种协议的数据包,并显示相应的详细信息。
四、分析网络通信问题网络数据包分析的目的之一是识别和解决网络通信问题。
通过分析捕获的数据包,我们可以发现潜在的问题,例如延迟、丢包、重传等等。
我们可以查看数据包的时间戳,分析延迟问题;观察数据包的传输路径,找到网络拥塞的瓶颈;检查TCP连接的状态,识别异常的重传行为等等。
同时,Wireshark还提供了各种图表和统计功能,可以更直观地呈现数据包的特征和变化。
五、网络安全分析除了解决通信问题之外,网络数据包分析还在网络安全领域扮演着重要角色。
计算机网络实验报告数据包分析
淮海工学院计算机工程学院
实验报告书
课程名:《计算机网络》
题目:实验三数据包分析
班级:中新软111
学号:**********
*名:***
一、实验目的
1、了解ETHEREAL工具的安装与使用;
2、掌握以太网帧结构、IP数据包、TCP报文段的结构与功能
3、掌握TCP链接的建立与释放过程。
二、实验内容或题目
1、下载ETHEREAL工具,并安装;
2、熟悉ETHEREAL工具的界面组成及使用;
3、对捕获的数据包进行以太网帧结构、IP数据包、TCP报文段分析;
4、分析TCP链接的建立的三次过程。
三、实验步骤、测试数据与实验结果
1、在百度上登录qq邮箱,在Filter中输入ip.addr== and tcp.flags.syn,捕获如图一的数据包:
图一
2、根据捕获的数据包,做出了如下分析:
图二
分析图二:Frame表示帧,其中包括捕获包到达时间,包长度,捕获长度,在frame中用到的协议等。
图三
分析图三:Ethernet表示数据链路层,即以太网协议
图四
图五
Ethereal使用手册。
网络数据包分析文档一、引言随着互联网的快速发展,网络数据包的分析变得越来越重要。
网络数据包是在计算机网络中传输的基本单位,它包含了发送方和接收方之间的所有信息。
网络数据包的分析可以帮助网络管理员诊断和解决网络问题,保护网络安全,提高网络性能等。
本文档将介绍网络数据包分析的基本概念、方法和工具,并以一个案例来说明如何使用这些方法和工具进行网络数据包分析。
二、网络数据包分析的基本概念1.数据包:数据包是在网络中传输的数据单元,它包含了发送方和接收方之间的所有信息。
每个数据包包含了源IP地址、目的IP地址、源端口号、目的端口号、协议类型、数据长度等信息。
2. 数据包捕获:数据包捕获是指将网络中传输的数据包捕获到本地计算机进行分析。
数据包捕获可以通过硬件设备(如交换机、路由器)或软件工具(如Wireshark、tcpdump)来实现。
3.数据包解码:数据包解码是指将捕获到的原始数据包转换成可读性更好的格式。
常见的数据包解码格式有ASCII、HEX等。
4.数据包过滤:数据包过滤是指根据一定的条件对捕获到的数据包进行筛选。
常见的数据包过滤条件有源IP地址、目的IP地址、端口号、协议类型等。
三、网络数据包分析的方法1. 数据包捕获:使用软件工具如Wireshark来捕获网络数据包。
2.数据包过滤:根据需要设置过滤条件,只保留需要分析的数据包。
3.数据包解码:对捕获到的数据包进行解码,转换成可读性更好的格式。
4.数据包分析:对解码后的数据包进行分析,根据需要提取相关信息。
5.问题诊断:根据分析结果对网络问题进行诊断,并提出解决方案。
四、网络数据包分析的工具1. Wireshark:Wireshark是一款免费的开源网络数据包捕获和分析工具,支持多种操作系统(如Windows、Linux、Mac OS)。
它可以捕获网络数据包,并提供多种解码和分析功能。
2. tcpdump:tcpdump是一款命令行网络数据包捕获工具,常用于Unix/Linux系统。
计算机网络实验网络拓扑与数据包分析计算机网络实验:网络拓扑与数据包分析引言:计算机网络是现代信息交流和传输的重要手段,网络拓扑和数据包分析作为计算机网络实验的基本内容,对于理解网络结构和故障排查具有重要意义。
本文将从网络拓扑和数据包分析两个方面进行探讨,介绍实验过程和结果分析,并分别给出实验步骤与数据包分析的相关内容。
一、网络拓扑实验1. 实验目的网络拓扑实验旨在通过构建不同的网络拓扑结构,观察网络在不同拓扑结构下的性能变化和通信效果,为网络设计和优化提供参考。
2. 实验步骤(此处应按照实验步骤进行描述,如何搭建网络拓扑、配置相关设备等。
)3. 实验结果分析(此处应根据实验结果进行分析,如不同网络拓扑结构下的延迟、数据传输速度等的比较分析,并给出相应的数据和图表。
)二、数据包分析实验1. 实验目的数据包分析实验旨在通过捕获和分析网络中的数据包,了解网络通信过程中的数据传输和处理细节,帮助排查网络故障和提升网络性能。
2. 实验步骤(此处应按照实验步骤进行描述,如何捕获数据包、选择合适的分析工具等。
)3. 实验结果分析(此处应根据实验结果进行分析,如数据包的源地址和目的地址、协议类型等信息的解读,并给出相应的数据和图表。
)总结:通过进行网络拓扑与数据包分析实验,我们可以更好地了解计算机网络的结构和通信过程,并且可以通过实验结果的分析,为网络的设计和优化提供参考。
这些实验对于培养学生的实践操作能力和解决问题的能力具有重要意义。
希望学生们能够认真思考实验过程中的问题,并在实验中不断探索和创新,为计算机网络的发展做出贡献。
参考文献:(此处引用相关实验教材或文献,便于读者查阅相关资料。
)附录:(此处可添加实验步骤、网络拓扑结构图、数据包分析图表等相关材料,便于读者参考。
)。
目录1.课程设计目的----------------------------------------------------------------------- 22.课程设计要求----------------------------------------------------------------------- 23.课程设计题目分析----------------------------------------------------------------- 3网卡设置 ------------------------------------------------------------------------- 3程序设计------------------------------------------------------- 33.2.1利用原始套接字---------------------------------------- 33.2.2接收数据包 -------------------------------------------- 43.2.3概念IP头部的数据结构-------------------------------- 4 3.2.4析IP数据包设计相关知识----------------------------------- 45.程序流程图------------------------------------------------------- 56.程序设计--------------------------------------------------------- 6协议的概念 ---------------------------------------------------- 6捕捉处置------------------------------------------------------- 7运行界面------------------------------------------------------- 77.实验结果--------------------------------------------------------- 88.自我评析和总结 -------------------------------------------------- 9实训心得------------------------------------------------------- 9实训日记------------------------------------------------------- 9 9.主要参考资料 -------------------------------------------------- 10[2]《网络协议分析》寇晓蕤罗俊勇编著机械工业出版社--------- 10[3]《C语言程序设计》张建伟李秀琴主编科学出版社--------- 10[4]《C++程序设计教程——面向对象分册》郑秋生主编 --------- 10电子工业出版社 -------------------------------------------------- 10 10.附录 ---------------------------------------------------------- 1011.课程设计目的本次实训的目的就是设计一个解析IP数据包的程序,并按照这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和熟悉。
计算机网络中的数据包分析技术研究在现代社会中,随着计算机网络的普及和应用领域的不断扩大,数据通信也变得越来越重要。
数据包分析技术是计算机网络中的一个重要部分,它可以帮助我们深入分析网络中的数据流,帮助我们找到存在的问题和解决方案。
本文将介绍计算机网络中的数据包分析技术,并探讨其在网络安全和网络性能优化方面的应用。
一. 数据包分析技术的基础数据包是在计算机网络中传输数据的基本单元。
数据包由帧头、数据、帧尾三部分组成。
帧头和帧尾记录了数据包的相关信息,比如发送者和接收者的地址以及数据包的长度。
数据包的数据部分包含了所要传输的数据。
为了将数据传输到目标地址,数据包必须经过网络中的多个节点,包括路由器、交换机、防火墙等。
在这个过程中,数据包的路径和每个节点的处理信息都被记录在了数据包中。
数据包分析技术就是基于这些记录的信息,通过对数据包进行捕获、过滤、分析和可视化,来深入研究网络行为和问题。
二. 数据包分析技术的应用1. 网络安全数据包分析技术在网络安全领域有广泛的应用。
网络安全问题可能源于恶意攻击、安全漏洞或配置错误等原因,这些问题可能会导致数据泄露、系统崩溃或服务故障等严重后果。
数据包分析技术可以通过分析数据包,识别存在的安全威胁,并提供相应的解决方案。
例如,数据包分析可以发现网络中的恶意软件或病毒,通过识别包含这些恶意代码的数据包的源和目的地,可以有效限制它们的传播。
数据包分析也可以用于检测和防止网络钓鱼和电子邮件欺诈等网络攻击。
2. 网络性能优化数据包分析技术也可以用于网络性能优化。
网络性能问题通常是由网络带宽拥塞、服务质量低下、丢包率高等原因造成的。
数据包分析可以捕获和分析在网络中存在的这些问题,然后针对性地采取相应的措施来解决它们。
例如,数据包分析可以用于识别网络中的瓶颈和瓶颈位置,进而提出建议来优化网络拓扑结构和流量管理策略。
数据包分析还可以帮助识别网络质量问题,例如延迟、丢包、重传等,然后建立相应的解决方案。
ip数据报解析程序课程设计一、课程目标知识目标:1. 学生理解IP数据报的基本结构,掌握各字段的作用及含义。
2. 学生掌握IP数据报的解析过程,包括头部解析和数据部分处理。
3. 学生了解IP数据报在不同网络环境下的传输过程及路由选择。
技能目标:1. 学生能够运用编程语言实现IP数据报的解析程序,提取关键信息。
2. 学生能够分析实际网络数据包,解读IP数据报内容,提高网络故障排查能力。
3. 学生通过小组合作,提高团队协作能力和问题解决能力。
情感态度价值观目标:1. 学生培养对计算机网络知识的兴趣,激发自主学习欲望。
2. 学生认识到网络通信在现代社会中的重要性,增强信息安全意识。
3. 学生在学习过程中,培养严谨、细致、负责的学习态度,提高自信心。
课程性质:本课程为计算机网络基础知识,旨在让学生通过实践操作,掌握IP 数据报的解析方法。
学生特点:学生具备一定的计算机网络基础,对编程有一定了解,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,鼓励学生自主探究和小组合作,提高实际操作能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保学生能够达到预定的学习目标。
通过本课程的学习,使学生能够更好地理解和应用计算机网络知识,为后续学习打下坚实基础。
二、教学内容本课程教学内容主要包括以下三个方面:1. IP数据报基本概念与结构- 介绍IP数据报的定义、作用及其在网络通信中的重要性。
- 详细讲解IP数据报的头部结构,包括版本、头长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、头部校验和、源IP地址和目的IP地址等字段。
2. IP数据报解析过程及编程实现- 分析IP数据报的解析流程,包括捕获数据包、解析头部字段和提取数据部分。
- 结合教材章节,教授使用Python等编程语言实现IP数据报解析程序,并提供示例代码进行讲解。
3. 实践操作与案例分析- 布置实践任务,要求学生分组完成IP数据报解析程序的设计与实现。
初探数据包分析程序设计 Author :maigan From : 第八军团-信息安全小组(www.cnhacking.com www.juntuan.org) Mail : maigan@maigan.com Warnong: 转载本文请注明作者及出处
整天在网上转,也看到许多不错的文章,但我发现大多文章要么只停留在理论上,要么就 是太高深。对问题详细分析介绍的很少。今天,我就想以数据包分析程序为主题和大家讨论一
下网络编程的的相关问题,我也是新手,有不到之处,还望大家不吝指正。 通过对数据包的分析,我们可以判断通信双方的操作系统、网络信息流量、经过的路由、
数据包的大小,以及数据包的内容等等。对于喜欢网络安全的人来说,掌握这方面的知识是相
当重要的。现在的网络通信中,大部分数据都没有加密,我们可以轻易地从数据包中提取账号
、密码之类我们关心的数据.大家在看本文时如有困难,可先读一读计算机网络及C程序设计还
有协议分析方面的书。下面我将分TCP/IP族协议结构、程序部分函数及数据结构说明、案例程
序剖析三个部分与大家共同学习数据包分析程序的设计方法 一、TCP/IP族协议结构 在说TCP/IP之前,先让我们来认识一下以太网,因为我们现在接触最多的就是以太网,
并且研究数据包又是离不开以太网的帧的。在以太网中,数据是以被称为帧的数据结构本为单
位进行交换的。以太网中常用的协议是CSMA/CD(carrier sense multiple access with collision detection)即载波监听多点接入/碰撞检测,在这里,我们关注的是帧的格式。常 用的以太网帧的格式有两种标准,一种是DIX Ethernet V2标准,另一种是IEEE的802.3标准。
现在最常用的MAC帧是V2格式,这也是我们所要研究的格式,至于802.3帧我们不再讨论。以太 网V2帧的格式如下: (插入8字节)目的地址(6字节)->源地址(6字节)->类型(2字节)->数据(46-1500)->FCS(4字
节) 以太网的地址由48位的二进制来表示,也就是我们常说的MAC地址及硬件地址。在MAC帧前还有8
字节的前同步码和帧的开始定界符,之后才是地址等报头信息。接收端和发送端的地址之后是
2字节的类型字段,存放帧中传送数据的上层协议类型,RFC1700号文档规定了这些,如下: ETHER TYPES(十六进制) PROTOCOlS 800 IP 806 ARP 8035 Revese ARP 809B Apple Talk 8137/8138 Novel 814c SNMP 帧的数据部分长度为46-1500字节,当小于46时,会在后面加入一个整数字节的填充字段。
FCS(Frame Check Sequence)在以太网常用循环冗佘校检(CRC:cyclic redandancy check)。 IP协议为网络层协议,网络层的数据结构体被称为IP数据报。IP地址及域名这两个概念
我们就不说了,下面我们来看一看IP数据报的结构: 成员名 字节数 说明 version 1/2 IP的版本,现在为IPV4 IHL(报送长度) 1/2 最常用为20,取5-15之前的值,最
大60字节 Type Of Service 1 优先和可靠性服务要求的数值 Total Lenth 2 IP数据报的全长 Identification 2 识别IP数据报的编号 Flags 3/8 1位为0表示有碎块,2位为0表示是
最后的碎块,为1表示接收中。 Fragment Offset 13/8 分片在原分组中的位置 TTL 1 数据报寿命,建议值为32秒 Protocol 1 上层协议 Headerchecksum 2 报头检验码 Source Address 4 发送端IP地址 Destination Address 4 接收端IP地址 Options And Padding 4 选项及填充位 其中协议字段的值对我们分析数据包是很重要的,下面列出来给大家看看: 值 协议 意义 1 ICMP Internet Control Message
Protocol 6 TCP Tranfer Control Protocol 8 EGP Exterior Gateway Protocol 9 IGP Interior Gateway Protocol 17 UDP User Datagram Protocol 下面这些协议的值在后面的程序中我们可以见到,请大家留心记一下。接着我们介绍地址解析
协议(ARP/RARP): 成员名 字节数 说明 Hardware address 2 硬件类型,以太网为1 Protocol address 2 上层协议类型,IP为800 Byte length of each hardware 1 查询物理地址的字节长度,
以太网为6 Byte length of each protocol address 1 查询上层协议的字节长度,
IPv4时为4 Opcode 2 1为ARP请求,2为响应;3为
RARP请求,4为响应 Hardware address of sender of this packet 6 发送端硬件地址 protocol address of sender of this packet 4 发送端IP地址 Hardware address of target of this packet 6 查询对象硬件地址 Protocol address of target of this packet 4 查询对象IP地址 ARP/RARP协议用来查询IP对应的硬件地址或反过来查询IP地址,这在我们分析数据包时也会见
到。下面介绍ICMP协议。我们常用的PING命令就是用的这个协议,这个协议比较简单,由类型
(1字节)、代码(1字节)、检验和(2字节)、还有四个字节的与类型相关的可变部分及数据构成
。 数据包在运输层还有两个重要的协议,即TCP/UDP,TCP/UDP中使用端口的概念,以区别
计算机上不同的程序。下面我们先来看看TCP数据报的首部构成: 成员名 字节数 说明 Source Port 2 发送端端口号 Destination Port 2 接收端端口号 Sequence NO 4 本报文段所发送的
第一个字节的序号 ACk Number 4 期望收到的下一个
报文段的序号 DAta Offset 1/2 首部的长度 Reserved 3/4 保留今后用 Contol Bits 3/4 控制位 Window 2 滑动窗口的大小 Checksum 2 检验和 Urgent Pointer 2 紧急指针 Options And Padding 4 可选,真充项 Tcp被使用在跨越路由器进行网络服务的网络应用程序中,如WWW、电子邮件、新闻、FTP等。
UDP则是在IP的基础上加入了端口的概念,其结构很简单,只有八个字节首部如下: 源端口(2字节)->目的端口(2字节)->长度(2字节)->检验和(2字节)
二、程序部分函数及数据结构说明 在此部分我们将介绍后面程序中用到的部分函数及数据结构。在程序中我们使用了PCAP
程序库,大家可以从 ftp://ftp.ee.lbl.gov/libpcap.tar.z下载。?..颐侵饕赗edhat Linux下测试程序,这里简单
介绍一下程序库的安装方法,其它环境请大家自行解决。我的目的是给大家编写数据包分析程
序提供思路,至于实用程序的实现这里不做介绍,第三部分给出的程序也不具实用性,为了演
示,程序中实现的功能较多而有些地方又不够详细,编写实用程序时请适当取舍并加入你所需
要的功能实现部分。PCAP程序库的安装方法如下: 1、解压文件 2、进入文件目录执行./configure 及make 3、使用Make命令,设定手册和Include文件(要有Root权限),执行以下命令: make install -man make install -incl 4、如出现不存在Include及Include/net目录,则建立此目录并重新执行 make
install -incl 5、检查/usr/include/netinet/目录是否存在Protocols.h文件,不存在则拷贝过去。 至此程序库安装完毕。 下面介绍程序中出现的部分函数及数据结构: 1、PCAP_t *pd; 此型数据结构称为数据包捕捉描述符。 2、Pcap_Open_Live(argv[1],DEFAUT_SNALEN,1,1000,ebuf) 此函数对Pcap程序库进行初始化并返回指向Pcap_t型数据的指针,其参数列表如下
: char * 指定网络接口 int 取得数据的最大字节数 int 指定网络接口卡,一般用1 int 读出暂停时间 char * 错误消息用缓冲区 3、Pcap_loop(pd,-1,packet_proce,NUll) 此函数程序的核心,反复执行,利用Pcap取得数据包,返回的是读入数据包的个数
,错误时返回-1,其参数列表如下: Pcap_t * 指定取得数据包的数据包捕捉描述符 int 取得数据包的个数,-1为无限 返回指向函数的指针 指定数据包处理的函数 U_char * 指向赋给数据包处理函数字符串的指针 4、struct ether_header * eth 此结构体存储以太网报头信息,其成员如下: ether_dhost[6] 接收端的MAC地址 ether_shost[6] 发送端的MAC地址 ether_type 上层协议的种类 5、fflush(stdout) 此函数完成的是强制输出,参数Stdout,强制进行标准输出。 6、noths(((struct ether_header *P)->ether_type)) 此函数将短整型网络字节顺序转换成主机字节顺序。此类函数还有: ntohl 长整型 功能同上 htons 短整型 将主机字节顺序转换成网络字节顺序 htons 长整型 同上 7、struct IP *iph ip型结构体在IPh文件中定义,其成员和第一部分讲到的IP数据报结构对应,如下
: 成员名 类型 说明 ip_hl 4位无符号整数 报头长度 ip_v 同上 版本,现为4 ip_tos 8位无符号整数 Type of service ip_len 16位无符号整数 数据报长度