初探数据包分析程序设计(转载)

本文介绍了数据包分析程序设计的基础知识,包括以太网帧结构、IP数据报、ARP/RARP、ICMP协议等TCP/IP族协议。通过分析数据包,可以获取通信信息,如操作系统、流量、路由等。作者提醒读者在阅读时可结合计算机网络及协议分析书籍,分享了程序设计涉及的函数和数据结构,并提供了简单的案例程序,帮助理解数据包分析的原理和方法。
摘要由CSDN通过智能技术生成
初探数据包分析程序设计
Author :maigan
From : 第八军团-信息安全小组( http://www.cnhacking.com/ http://www.juntuan.org/)
Mail : maigan@maigan.com
Warning: 转载本文请注明作者及出处


整天在网上转,也看到许多不错的文章,但我发现大多文章要么只停留在理论上,要么就是太高深。对问题详细分析介绍的很少。今天,我就想以数据包分析程序为主题和大家讨论一下网络编程的的相关问题,我也是新手,有不到之处,还望大家不吝指正。
通过对数据包的分析,我们可以判断通信双方的操作系统、网络信息流量、经过的路由、数据包的大小,以及数据包的内容等等。对于喜欢网络安全的人来说,掌握这方面的知识是相当重要的。现在的网络通信中,大部分数据都没有加密,我们可以轻易地从数据包中提取账号、密码之类我们关心的数据.大家在看本文时如有困难,可先读一读计算机网络及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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
试 题:《计算机网络课程设计设计任务和考查内容包含以下四部分。 一、数据抓包和网络协议分析(要求写出抓包的主要截图、数据传输的分析过程及关键实验操作步骤) 1、 捕获ARP请求,ARP应答数据包分析其组成特征。总结ARP协议运行的基本过程。 2、 捕获ICMP数据包,对其进行分析研究。(icmp请求数据包,icmp应答数据包) 3、 捕获TCP“三次握手”建立连接的数据包分析;捕获TCP“2次两次握手”释放连接的数据包分析。 a) tcp连接的建立 b) tcp连接的释放 4、 捕获HTTP,DNS,DHCP数据包分析其构成。 a) http数据包的捕获与分析 b) DNS数据包的捕获与分析 5、 通过捕捉smtp协议包分析邮箱密码,并分析其工作过程。 提示:有些邮箱直接登录操作无法捕捉,如qq、163邮箱等。需要Web页面登录我的网易或QQ等邮箱,捕获数据并分析出密码。也可采用命令方式收发邮件状态下抓取账号密码数据。 二、网络编程设计(以下三题选择完成一个即可,要求有程序代码和运行结果) 1、 数据包分析程序设计(不需图形界面,结果输出在命令行下)。 2、 简单的网络通信程序(包括服务器端程序,客户端程序,能实现客户端到服务器的主动连接,发送信息,服务器能否对信息做一次回应)。 3、 编写一个程序,能够根据输入的原始数据,及所选择的多项式,自动生成CRC校验码。 三、网络设备配置 从“CCNA 实验手册201806.doc”中自选两个项目,在机架或模拟器上完成,并写出主要的配置过程、实验数据、 相关截图和结论。其中所选实验要求包含交换机的Vlan配置和路由器的RIP、OSPF配置部分。 四、网络系统工程方案设计 以文华学院为背景,了解文华学院现有校园网络的构成。主要从网速提高,网络安全,无线网络构建等几个方面进行分析,并提出合理的改进意见,设计出更优的校园网络工程方案。 1、需求分析 以文华学院为背景,通过实地调查、现场访谈、书面调查等形式了解文华学院的组织结构、网络建设的背景,对文华学院的网络工程有一个全面的感性的认识。建设文华学院需要重新建立一个校园网,在前面了解的知识背景之上,明确网络需求和网络性能的评价标准。具体地,包括网络建设的目的与原则、投资规模、现有网络的问题与不足等;网络系统中所包含的信息点的数量、分布及信息流量、应用程序的类型及对QoS的要求、是否需要提供广域网接入和网络安全上的考虑因素等。需求分析完成后需要提交需求分析调研报告。 2、方案设计 根据需求分析,以层次化的网络设计方法,选择合适的网络技术,设计一个性能价格比相对优化的网络解决方案,网络要提供尽可能高的可靠性、有效性、可扩展性和安全性。设计内容包括、网络拓扑设计、IP寻址模式、路由规划、安全设计、网络管理、服务器相关配置等。 3、方案文档的撰写 撰写一个网络设计方案的书面文档,在该文档中要包括需求分析概述、网络建设的目标与原则、技术选择与技术设计、网络管理与安全、投资预算和设备清单等。 4、说明:完成此部分课程设计,请大家查阅相关资料了解下列网络术语,并尽可能将这些技术应用于你的设计之中;并按实验指导资料,完成校园网模拟配置实验。例如包括: 交换以太网、快速以太网、千兆以太网、VLAN、第三层交换技术、防火墙、无线局域网、DMZ技术等设备技术的选型配置 网络拓扑设计和地址规划等 接入层:交换机堆叠、交换机端口安全、ACL(访问控制列表)、802.1x 汇聚层:链路聚合、动态主机配置 核心层:骨干路由设备、服务器等 出口:NAT、防火墙等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值