课程设计报告
数据包的获取与分析
学院:
专业班级:
学生姓名:
学号:
指导教师:
成绩:
2011 年 12 月
1. 设计任务
使用抓包软件抓取网络传输中的数据包,并对所抓取的数据包进行分析,在这里我使用的抓包软件是“锐捷”,使用“锐捷”抓包软件对邮件发送过程中所产生的数据包进行抓取,并从所抓取的数据包中筛选出邮件发送所产生的包,对其进行数据分析,包括数据包所属协议、作用以及首部字段和数据内容(具有相同功能的数据包只分析一次)。
并且需要截图做详细说明。
2. 操作步骤
首先打开“锐捷”抓包软件,匿名登录上该软件。
从IE浏览器中打开163邮箱的登陆界面。
从一登陆上的界面点击开始按钮,开始捕捉网络中的数据包。
登陆163邮箱,编辑所要发送的邮件,编辑完成后,点击发送。
发送完成后,关闭邮箱。
查看并分析抓包软件所抓取的数据包。
3. 数据包分析
3.1图3.1.1为我的主机的网络配置。
图3.1.1 计算机IP配置
3.2 捕获到的数据包分析
3.2.1 IP数据报的格式
IP数据报的格式,在网络中要对I数据经行封装,在网络中要发送一个数据要对其进行封装。
3.2.1 IP数据包格式
还需要地址解析协议ARP,如果主机A要向主机B发送IP数据报是如果高速缓存中没有主机B的IP地址,ARP进程在本局域网上广播发送一个ARP请求分组,主机B在ARP请求分组中看的自己的IP地址,就想主机A发送ARP响应分组,主机A收到主机B的响应分组后,就在ARP高速缓存中写入主机B的IP地址到MAC地址的映射。
图3.2.2为邮件发送过程中所发送的ARP请求。
3.2.2 ARP会话树
3.2.3 ARP协议结构树
由图3.2.3可见,该ARP 硬件类型 0001 协议类型 0800 硬件长度 6 协议长度 4 操作码 1 源物理地址8c-89-a5-fb-15 源IP地址10.10.20.102 目标物理地址还未知
3.2.2在网络层封装层IP数据包
在网络层封装层IP数据包,数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧,并把封装好的帧发送给目的主机的数据链路层,对方的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则丢弃这个帧。
数据会以16进制的形式在网络上传输,图3.2.4是HTTP协议包中的16进制数据区。
3.2.4 HTTP数据包
3.2.3 在网络层
在网络层,为了更有效地转发IP数据报和提高交付成功的机会,使用了网络控制报文协议ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的
报告。
以下是接受发送邮件数据包时产生的ICMP不可达和ICMP回显截取的图。
图3.2.5 ICMP不可达会话树
图3.2.6 ICMP不可达分类列表
图3.2.6由源地址是121.194.7.241服务器向我的主机发送的一个ICMP目的不可
达协议包。
3.2.7 ICMP不可达协议结构树
由图3.2.7可知,该ICMP数据包类型:3 为终点不可达代码:4 检验和:0XFASE 保留 1500 数据 E
3.2.8 ICMP回显会话树
3.2.9 ICMP数据包列表
3.2.10 ICMP回显
3.3 运输层上的数据包
TCP/IP运输层的两个主要协议分别为用户数据报协议UDP和传输控制协议TCP,分别称之为TCP报文段和UDP用户数据报
3.3.1
UDP报头由4个域组成,其中每个域各占用2个字节,具体如下:源端口号、目标端口号、数据报长度、校验值。
源端口号— 16位。
源端口是可选字段。
当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。
如果不使用,设置值为0。
目标端口号目标端口在特殊因特网目标地址的情况下具有意义。
数据报长度该用户数据报的八位长度,包括协议头和数据。
长度最小值为8。
校验值 IP 协议头、UDP 协议头和数据位,最后用0填补的信息假协议头总和。
如果必要的话,可以由两个八位复合而成。
UDP协议使用报头中的校验值来保证数据的安全。
校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。
虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。
图3.3.1为UDP抓图的首部部分
图3.3.1 UDP首部
端口号 137 目标端口 137 数据长度 58 校验和 0XFAE3
3.3.2
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP 把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。
之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
T CP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如图3.3.2所示。
图3.3.2 三次握手
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND 状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
从图3.3.3中可清晰的看出主机之间的信息交互情况,综上,可以看出两台主机之间形成了一个三次握手协议。
图3.3.3三次握手协议交互图
ACK:确认标志
确认编号(Acknowledgement Number)栏有效。
大多数情况下该标志位是置位的。
TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。
RST:复位标志
复位标志有效。
用于复位相应的TCP连接。
URG:紧急标志
紧急(The urgent pointer) 标志有效。
紧急标志置位,
PSH:推标志
该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。
在处理 telnet 或 rlogin 等交互模式的连接时,该标志总是置位的。
FIN:结束标志带有该标志置位的数据包用来结束一个TCP回话,但对应端口仍处于开放状态,准备接收后续数据。
图3.3.4 TCP数据包的首部结构
以下为我发送邮件抓获到的TCP数据包
图3.3.5 TCP协议结构树
由图3.3.5 源端口 1976 目标端口 80 序列号 0X47ADB3EE 即一段报文的序号字段值确认序列号 0X692C2FD1 即期望收到对方下一个报文段的第一个数据字节的序号(通过序列号和确认序列号可以计算出发送数据的长度,即确认序列号减去序列号) TCP首部长度 5 标志位 PUSH|ACK 窗口大小65535 校验和 0X51E9 紧急指针 0
4 分析总结
从这次的实验中我不仅学会了使用“锐捷”这个抓包软件,而且,也更深的理解了数据在网络上的传输过程,有了这个经验以后还可以对书中的各个协议进行详细的分析,以增加对计算机网络知识的理解。
同时整个实验过程使我们的动手能力、对问题的分析能力以及解决能力都得到了充分的锻炼,因此此次实
验对我们非常重要,使我们对所学专业知识得到了充分的应用,锻炼了我们思考问题、解决问题的能力,对我们以后的工作、学习有非常大的帮助。
在这次实验中我也遇到了很多问题,这些问题有:
1>在开始抓包以后,软件很快就抓取了很多数据包,但在这些数据包中我不知道哪些是有用的,是我发邮件产生的数据包;那些又是网络上别的数据包。
解决方法:我通过更加深入的阅读相关书目,了解更多的网络协议的作用,以及它们本身所带有的数据的含义,来找出我所需要分析的数据包。
2>在分析数据包时,对数据包里的数据含义不知道如何解读。
解决方法:通过网络和教材来了解各个数据所代表的含义。
通过这次实验,我也同时深深地感觉到了我在网络协议方面的欠缺和不足,提醒我要加紧学习这方面的知识,提高自己的能力。
5参考文献
1.>作者:谢希仁书名:计算机网络出版社:电子工业出版社
出版年:2011年5月
2.>作者:刘晓辉书名:WINDOWS局域网用户管理出版社:人民邮电出版社出版年:2007年10月
3.>作者:刘晶公芳亮书名:局域网组建、维护与安全监控出版社:人民邮电出版社出版年:2010年1月。