




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 2 章 网络监听与 tcp/ip 协议分析 教学目标 通过对本章的学习,了解网络监听和协议分析的概念,掌握网络层协议和传输层协议 的报头结构,熟悉 sniffer pro 的安装和基本操作方法,熟练掌握使用 sniffer pro 进行通信流量 和协议分析的步骤。 教学要求 知识要点 网络监听 tcp/ip 数据报 监听工具 能力要求 相关知识 了解网络监听的基本原理,熟悉网络监听在网络管理中的应用 病毒、黑客攻击 了解 ip 数据报结构、arp、icmp 协议、tcp、udp 学会安装和使用网络监听工具 sniffer pro ipv4、ipv6 wire shark 引例 计算机网络带
2、给人们的便捷不言而喻,然而每一位网络用户一定都有这样的体验:上 网速度时快时慢、时通时断,蠕虫泛滥、病毒干扰、黑客攻击屡见不鲜,安装了杀毒软件 和防火墙还是不能一劳永逸,令人无所适从。还有些用户工作时间用 p2p 软件下载文件或 播放视频,严重占有带宽、影响正常工作却很难被发现。 采用有效的技术手段检测和分析当前的网络流量,及时发现干扰网络运行、消耗网络 带宽的害群之马,十分必要。这种技术就是网络监听。要从事网络管理工作,就有必 要了解网络监听的基本原理,熟悉网络通信协议,特别是 tcp/ip 协议数据报结构,理解其 中关键字段或标识的含义,熟练掌握网络监听工具的使用方法和技巧,从而学会捕获并
3、分 析网络数据。 本章的内容就是介绍网络监听的基本原理、概括网络层和传输层协议的数据报结构, 讲解网络监听工具 sniffer pro 的安装和使用方法。 第 2章 网络监听与 tcp/ip 协议分析 15 2.1 网络监听与数据分析 以太网的通信是基于广播方式的,这意味着在同一个网段的所有网络接口都可以访问 到物理媒体上传输的数据,而每一个网络接口都有一个唯一的硬件地址,即 mac 地址, 长度为 48 字节,一般来说每一块网卡上的 mac 地址都是不同的。在 mac 地址和 ip 地址 间使用 arp 和 rarp 协议进行相互转换。 2.1.1 网络监听的基本原理 通常一个网络接口只接收
4、以下两种数据帧。 (1) 与自己硬件地址相匹配的数据帧。 (2) 发向所有机器的广播数据帧。 网卡负责数据的收发,它接收传输来的数据帧,然后网卡内的单片机程序查看数据帧 的目的 mac 地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收。如果 接收则接收后通知 cpu,否则就丢弃该数据帧,所以丢弃的数据帧直接被网卡截断,计算 机根本不知道。cpu 得到中断信号产生中断,操作系统根据网卡的驱动程序设置的网卡中 断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。 网卡通常有以下 4 种接收方式。 (1) 广播方式:接收网络中的广播信息。 (2) 组播方式:接收
5、组播数据。 (3) 直接方式:只有目的网卡才能接收该数据。 (4) 混杂模式:接收一切通过它的数据,而不管该数据是否是传给它的。 以太网的工作机制是把要发送的数据包发往连接在同一网段中的所有主机,在包头中 包括有目标主机的正确地址,只有与数据包中目标地址相同的主机才能接收到信息包。 图 2.1 是一个简单的网络连接,机器 a、b、c 与集线器 hub 连接,集线器 hub 通过 路由器访问外部网络。 图 2.1 简单的网络连接 15 16 网络安全基础教程与实训(第 2 版) 管理员在机器 a 上使用 ftp 命令向机器 c 进行远程登录,在这个网络里数据的传输过 程是这样的:首先机器 a 上
6、的管理员输入登录机器 c 的 ftp 密码,经过应用层 ftp 协议、 传输层 tcp 协议、网络层 ip 协议、数据链路层上的以太网驱动程序一层一层的包裹,最 后送到物理层。接下来数据帧传输到 hub 上,然后由 hub 向每一个结点广播此数据帧, 机器 b 接收到由 hub 广播发出的数据帧,并检查数据帧中的地址是否和自己的地址匹配, 结果不匹配。故丢弃此数据帧。而机器 c 也接收到了数据帧,并先进行比较,发现与自己 的地址匹配,接收下来并对此数据帧进行分析处理。 但是当主机工作在监听模式下时,不管数据包中的目标物理地址是什么,主机都可以 接收到。并且所有收到的数据帧都将被交给上层协议软件
7、处理。 早期的 hub 是共享介质的工作方式,只要把主机网卡设置为混杂模式,网络监听就可 以在任何接口上实现,现在的网络基本都用交换机,必须把执行网络监听的主机接在镜像 端口上,才能监听到整个交换机上的网络信息。这就是网络监听的基本原理。 网络监听常常要保存大量的信息,并对其进行大量整理,这会大大降低处于监听的主 机对其他主机的响应速度。同时监听程序在运行的时候需要消耗大量的处理器时间,如果 在此时分析数据包,许多数据包就会因为来不及接收而被遗漏,因此监听程序一般会将监 听到的包存放在文件中,等待以后分析。 2.1.2 网络监听工具 计算机网络是共享通信通道的,这意味着计算机能够接收到发送给其
8、他计算机的信息。 捕获在网络中传输的数据信息就称为 sniffing。 以太网是现在应用最广泛的计算机联网方式。以太网协议的特点是在同一网络向所有 主机发送数据包信息,数据包头包含有目标主机的地址,一般情况下只有具有该地址的主 机会接收这个数据包。如果一台主机能够接收所有数据包,而不理会数据包头内容,这种 方式通常称为混杂模式。 sniffer 软件是 nai 公司推出的功能强大的协议分析软件。sniffer 支持的协议丰富,解 码分析速度快。其中 sniffer pro 版可以运行在各种 windows 平台上。 sniffer 软件的主要功能如下。 (1) 捕获网络流量进行详细分析。 (2
9、) 利用专家分析系统诊断问题。 (3) 实时监控网络活动。 (4) 收集网络利用率和错误等。 sniffer 可以运行在路由器或有路由器功能的主机上,这样就能对大量的数据进行监控。 sniffer 几乎能得到任何以太网上传送的数据包。 在以太网中 sniffer 将系统的网络接口设定为混杂模式。这样,它就可以监听到所有流 经同一以太网网段的数据包,而不管它的接收者或发送者是不是运行 sniffer 的主机。 除 sniffer pro 外,wireshark 也是非常优秀的一款网络监听软件,它是著名的软件 ethereal 的升级版。读者可以下载 wireshark-win32-1.1.3.z
10、ip。值得推荐的是 wireshark 的 安装无须重启系统,十分方便于实验教学。 16 第 2章 网络监听与 tcp/ip 协议分析 17 2.2 网络层协议报头结构 网络层协议将数据包封装成 ip 数据报,并运行必要的路由算法,它有以下 4 个互联协议。 (1) 网际协议(ip):在主机和网络之间进行数据包的路由转发。 (2) 地址解析协议(arp):获得同一物理网络中的硬件主机地址。 (3) 网际控制报文协议(icmp):发送消息,并报告有关数据包的传送错误。 (4) 互联组管理协议(igmp):ip 主机向本地多路广播路由器报告主机组成员。 2.2.1 ip 数据报结构 ip 协议面向
11、无连接,主要负责在主机间寻址并为数据包设定路由,在交换数据前它并 不建立会话,因为它不保证正确传递;另一方面,数据在被收到时,ip 不需要收到确认, 所以它是不可靠的。 ip 数据报的格式如图 2.2 所示。 0 15 16 31 4位版本 4位首部长 度 8位服务类型 (tos) 16位总长度(字节数) 16位标识 3位标志 13位片偏移 20字节 8位生存时间(ttl) 8位协议 16位首部校验和 32位源ip地址 32位目的ip地址 选项(如果有) 数据 图 2.2 ip 数据报格式 ip 数据报的首部最高位在左边,记为 0 位;最低位在右边,记为 31 位。4 个字节的 32 位值以下
12、面的次序传输:首先是 07 位,其次是 815 位,然后是 1623 位,最后是 2431 位。由于 tcp/ip 首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称 作网络字节序。以其他形式存储二进制整数的机器则必须在传输数据之前把首部转换成网 络字节序。 目前的协议版本号是 4,因此 ip 有时也被称作 ipv4。 17 18 网络安全基础教程与实训(第 2 版) 首部长度指的是首部占 32 位,包括选项。由于它是一个 4 个字节字段,因此首部最长 为 60 个字节。普通 ip 数据报(没有选项)字段的值是 5。 服务类型(tos)字段包括一个 3 位的优先权子字段,4 位的
13、 tos 子字段和 1 位未用位, 但必须置 0。4 位的 tos 分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。 4 位中只能置其中 1 位。如果所有 4 位均为 0,那么就意味着是一般服务。 表 2 - 1 列出了对不同应用建议的 tos 值。 总长度字段是指整个 ip 数据报的长度,以字节为单位。利用首部长度字段和总长度字 段,就可以知道 ip 数据报中数据内容的起始位置和长度。由于该字段为 16 字节,所以 ip 数据报最长可达 65535 字节。当数据报被分片时,该字段的值也随着变化。 总长度字段在 ip 首部中是必不可少的,因为一些数据帧需要填充一些数据以达到最小 长度。尽
14、管以太网的最小帧长为 46 字节,但是 ip 数据可能会更短。如果没有总长度字段, ip 层就不知道 46 字节中有多少是 ip 数据报的内容。 标识字段唯一地标识主机发送的每一份数据报,通常每发送一份报文,它的值就会加 1。 ttl(生存时间)字段设置了数据报可以经过的最多路由器数,它指定了数据报的生存时 间。ttl 的初始值由源主机设置(通常为 32 或 64),一旦经过一个处理它的路由器,它的值 就减去 1。当该字段的值为 0 时,数据报就被丢弃,并发送 icmp 报文通知源主机。 表 2- 1 服务类型字段推荐值 最大吞吐量 0 最高可靠性 0 应用程序 telnet/rlogin f
15、tp 控制 数据 任意块数据 tftp smtp 命令阶段 数据阶段 dns udp 查询 tcp 查询 区域传输 icmp 差错 查询 任何 igp snmp bootp nntp 最小时延 1 最小费用 0 十六进制值 0x10 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0x10 0x08 0x08 0x10 1 0 0 1 0 0 0 0 0x10 0x08 1 0 0 0 1 1 0 0 0 0 0 0 0x10 0x00 0x08 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0x00 0x00 0x04 0x0
16、4 0x00 0x02 首部检验和字段是根据 ip 首部计算的检验和码。它不对首部后面的数据进行计算。 18 第 2章 网络监听与 tcp/ip 协议分析 19 最后一个字段是选项,是数据报中的一个可变长的可选信息。目前,这些选项定义的 内容如下。 (1) 安全和处理限制。 (2) 记录路径。 (3) 时间戳。 (4) 宽松的源站选路。 (5) 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不 能经过其他地址)。 选项很少被使用,而且并非所有的主机和路由器都支持这些选项。 选项字段以 32 位作为界限,在必要的时候插入值为 0 的填充字节。这样就保证 ip 首 部始终是
17、 32 位的整数倍。 2.2.2 arp arp(地址解析协议)用于获得在同一物理网络中的主机的硬件地址。要在网络上通信必 需知道对方主机的硬件地址,地址解析就是将主机 ip 地址映射为硬件地址的过程。 本地 ip 地址解析为硬件地址的过程描述如下。 (1) 当一台主机要与别的主机通信时,初始化 arp 请求。当断定该 ip 地址是本地时, 源主机在 arp 缓存中查找目标主机的硬件地址。 (2) 如果找不到映射,arp 建立一个请求,源主机 ip 地址和硬件地址会被包括在请求 中,该请求通过广播,使所有本地主机均能被接收并处理。 (3) 该网段上的每台主机都收到广播并寻找相符的 ip 地址。
18、 (4) 当目标主机断定请求中的 ip 地址与自己的相符时,直接发送一个 arp 答复,将自 己的硬件地址传给源主机。源主机更新它的 arp 缓存,源主机收到回答后便建立起了通信。 目标 ip 地址是一个远程网络主机的话,arp 将广播一个路由器的地址。远程 ip 地址 解析为硬件地址的过程描述如下。 (1) 初始化通信请求时,得知目标 ip 地址为远程地址。源主机在本地路由表中查找, 若无,源主机认为是默认网关的 ip 地址。在 arp 缓存中查找符合该网关记录的 mac 地址。 (2) 若没找到该网关的记录,arp 将广播请求网关地址而不是目标主机的地址。路由 器用自己的硬件地址响应源主机
19、的 arp 请求。源主机则将数据包发送到路由器,以便转发 到目标主机所在的网络,并最终到达目标主机。 (3) 在路由器上,由 ip 决定目标 ip 地址是本地还是远程。如果是本地,路由器用 arp(缓 存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用 arp 获得此网关的硬件地址。数据包被直接发送到下一个目标主机。 (4) 目标主机收到请求后,形成 icmp 响应。因源主机在远程网上,将在本地路由表中 查找源主机网的网关。找到网关后,arp 即获取它的硬件地址。 (5) 如果此网关的硬件地址不在 arp 缓存中,则通过 arp 广播获得。一旦它获得硬件 地址,icmp
20、 响应就送到路由器上,然后传到源主机。 arp 包的结构如图 2.3 所示。 19 20 网络安全基础教程与实训(第 2 版) 硬件类型 硬件地址长度 协议地址长度 发送站硬件地址 (例如,以太网是6字节) 发送站协议地址 (例如,对ip是4字节) 目标硬件地址 (例如,以太网是6字节) 目标协议地址 (例如,对ip是4字节) 协议类型 操作 请求1,回答2 图 2.3 arp 包的结构 2.2.3 icmp icmp(internet 控制报文协议)用于报告错误并对消息进行控制。icmp 是 ip 层的一个组 成部分,它负责传递差错报文及其他需要注意的信息。 icmp 报文通常被 ip 层或
21、更高层协议(tcp 或 udp)使用,一些 icmp 报文把差错报文 返回给用户进程。 icmp 报文在 ip 数据报内部传输,如图 2.4 所示。 ip 数据报 ip首部 20字节 icmp报文 图 2.4 ip 数据报 icmp 数据包结构如图 2.5 所示。 0 7 8位类型 8 15 8位代码 16 31 16位检验和 (不同类型和代码有不同的内容) 图 2.5 icmp 数据包结构 20 第 2章 网络监听与 tcp/ip 协议分析 其中各字段含义如下。 类型:8 位类型字段,表示 icmp 数据包类型。 代码:8 位代码域,表示指定类型中的一个功能。 检验和:数据包中 icmp 上
22、的一个 16 位检验和。 2.2.4 igmp 21 igmp(互联组管理协议)把信息传给别的路由器,以使每个支持多路广播的路由器获知 哪个主机组处于哪个网络中。 正如 icmp 一样,igmp 也被当作 ip 层的一部分。igmp 报文通过 ip 数据报进行传输, 有固定的报文长度,没有可选数据项。图 2.6 显示了 igmp 报文是如何封装在 ip 数据报中的。 ip 数据报 ip首部 igmp报文 20字节 图 2.6 igmp 报文封装在 ip 数据报中 应用案例 应用网络监听技术检测 arp 病毒 近年来,arp 病毒四处传播,很多用户深受其害。局域网上只要有一台计算机感染这种病毒,
23、就影 响到整个网络,致使上网主机频繁断线。 如 2.2.2 节所述,正常状态下 arp 协议是源主机和目的主机相互交换 ip 与 mac 真实地址映射的协议, 但 arp 是一种无连接协议,主机也可以接收并处理 arp 无请求应答,并将这种数据包给出的 ip 与 mac 地址映射缓存下来。 网络上只要有一台主机向其他主机发送伪造的 arp 无请求应答包,就会使整个网络 ip 与 mac 地址 的映射关系出错,干扰正常通信。例如中病毒的主机向网络发送伪造的 arp 无请求应答包,把网关的 mac 地址修改为自己的 mac 地址,则上网的主机就找不到真正的网关,所以上不了网。这就是 arp 病毒的
24、 工作机制。 作为应对 arp 病毒的手段,管理员可以用网络监听技术查找到中病毒的主机。将交换机做好端口镜像设 置,然后把安装有网络监听软件的主机接入镜像端口,启动网络监听命令,捕获网络上的所有数据进行分析, 就能够查找到发送arp 无请求应答arpresponse 的主机,将其隔离或关机,整个网络就会恢复正常。 2.3 传输层协议报头结构 传输协议在计算机之间提供通信会话,传输协议的选择根据数据传输方式而定,常用 的两个传输协议如下。 (1) tcp (传输控制协议):提供了面向连接的通信,为应用程序提供可靠的通信连接。 适合于一次传输大批数据的情况,并适用于要求得到响应的应用程序。 21
25、22 网络安全基础教程与实训(第 2 版) (2) udp (用户数据报协议):提供了无连接通信,且不对传送包进行可靠的保证,适合 于一次传输小量数据的情况,可靠性由应用层负责。 2.3.1 tcp tcp 提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用 tcp 的应用 在彼此交换数据之前必须先建立一个 tcp 连接。 tcp 数据被封装在一个 ip 数据报中,如图 2.7 所示。 如果不计任选字段,tcp 首部通常是 20 个字节,其结构如图 2.8 所示。 ip数据报 tcp报文段 ip首部 20字节 tcp首部 tcp数据 20字节 图 2.7 tcp 数据报 15 16
26、0 31 16位源端口号 16位目的端口号 32位序号 32位确认序号 20字节 4位首部长度 保留(6位) u a p r r c s s g k h t s f y i n n 16位窗口大小 16位校验和 16位紧急指针 选项 数据 图 2.8 tcp 首部 每个 tcp 段都包含源端和目的端的端口号,用于寻找发送端和接收端应用进程。这两 个值加上 ip 首部中的源端 ip 地址和目的端 ip 地址就可以唯一确定一个 tcp 连接。 序号用来标识从 tcp 发送端向 tcp 接收端发送的数据字节流,它表示在这个报文段 中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则 t
27、cp 用序号对 每个字节进行计数。 22 第 2章 网络监听与 tcp/ip 协议分析 23 当建立一个新的连接时,syn 标志变为 1。序号字段包含由这个主机选择的该连接的 初始序号(isn,initial sequence number)。该主机要发送数据的第一个字节序号为这个 isn 加 1,因为 syn 标志消耗了一个序号。 既然每个传输的字节都被计数,因此要确认序号是发送确认的一端所期望收到的下一 个序号。因此,确认序号应当是上次已成功收到的数据字节序号加 1。只有 ack 标志为 1 时,确认序号字段才有效。发送 ack 无须任何代价,因为 32 位的确认序号字段和 ack 标志一
28、样,总是 tcp 首部的一部分。因此,可以看到一旦一个连接建立起来,这个字段总 是被设置,ack 标志也总是被设置为 1。 tcp 为应用层提供全双工服务,这意味数据能在两个方向上独立地进行传输。因此, 连接的每一端必须保持每个方向上的传输数据序号。 首部长度给出首部中 32 位的数目。需要这个值是因为任选字段的长度是可变的。这个 字段占 4 位,因此 tcp 最多有 60 字节的首部。然而,没有任选字段,正常的长度是 20 字节。 tcp 的流量控制由连接的两端通过声明的窗口大小来提供。窗口大小为字节数,起始 于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个 16 位字
29、段, 因而窗口大小最大为 65535 字节。 检验和覆盖了整个的 tcp 报文段:tcp 首部和 tcp 数据。这是一个强制性的字段, 必须由发送端计算和存储,由接收端进行验证。 可选字段是最长报文大小(mss,maximum segment size),两个连接方通常都在通信的 第一个报文段(为建立连接而设置 syn 标志的那个段)中指明这个选项,它指明本端所能接 收的最大长度的报文段。 2.3.2 udp udp 是一个简单的面向数据报的传输层协议,进程的每个输出操作都正好产生一个 udp 数据报,并组装成一份待发送的 ip 数据报。这与面向流字符的协议不同(如 tcp),应 用程序产生的
30、全体数据与真正发送的单个 ip 数据报可能没有什么联系。 udp 数据报封装成一份 ip 数据报的格式如图 2.9 所示。udp 不提供可靠性,它把应用 程序传给 ip 层的数据发送出去,但是并不保证它们能到达目的地。 udp 首部的各字段如图 2.10 所示。 ip 数据报 udp报文段 ip首部 udp首部 udp数据 20字节 8字节 图 2.9 udp 数据报 23 24 网络安全基础教程与实训(第 2 版) 16位源端口号 16位目的端口号 8字节 16位udp长度 16位udp校验和 数据(如果有) 图 2.10 udp 首部 端口号表示发送进程和接收进程。由于 ip 层已经把 i
31、p 数据报分配给 tcp 或 udp,因 此 tcp 端口号由 tcp 查看,而 udp 端口号由 udp 查看。tcp 端口号与 udp 端口号是相 互独立的。 尽管相互独立,但如果 tcp 和 udp 同时提供某种知名服务,两个协议通常选择相同 的端口号。这纯粹是为了使用方便,而不是协议本身的要求。 udp 长度字段指的是 udp 首部和 udp 数据的字节长度,该字段的最小值为 8 字节。 ip 数据报长度指的是数据报全长,因此 udp 数据报长度是全长减去 ip 首部的长度。 udp 检验和覆盖 udp 首部和 udp 数据。而 ip 首部的检验和只覆盖 ip 的首部,并不 覆盖 ip
32、 数据报中的任何数据。 udp 和 tcp 在首部中都有覆盖它们首部和数据的检验和。udp 的检验和是可选的, 而 tcp 的检验和是必需的。 udp 检验和的基本计算方法与 ip 首部检验和计算方法之间存在许多不同的地方。首 先,udp 数据报的长度可以为奇数字节,但是检验和算法是把若干个 16 位字相加。其次, udp 数据报和 tcp 段都包含一个 12 字节长的伪首部,它是为了计算检验和而设置的。伪 首部包含 ip 首部的一些字段。其目的是让 udp 两次检查数据是否已经正确到达目的地, udp 数据报中的伪首部格式如图 2.11 所示。 32位源ip地址 32位目的ip地址 udp伪
33、首部 0 8位协议(17) 16位源端口号 16位udp长度 16位udp长度 16位目的端口号 16位udp校验和 udp首部 数据 填充字节(0) 图 2.11 udp 检验和计算过程中使用的各个字段 24 第 2章 网络监听与 tcp/ip 协议分析 25 如果数据报的长度为奇数,则在计算检验和时需要加上填充字节。如果检验和的计算 结果为 0,则存入的值为全 1(65535),这在二进制反码计算中是等效的。如果传送的检验 和为 0,说明发送端没有计算检验和。 如果发送端没有计算检验和而接收端检测到检验和有差错,那么 udp 数据报就要被丢 弃,而且不产生任何差错报文。 udp 检验和是一
34、个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是 发现 udp 首部和数据在发送端到接收端之间发生的任何改动。 2.4 tcp 会话安全 tcp 协议面向连接,收发双方在发送数据之前必须建立一条连接。 tcp 连接包括:连接建立、数据传输和连接终止。tcp 用三次握手建立一个连接。 1. 连接建立(三次握手) 一对终端同时初始化一个它们之间的连接,但通常是由一端打开一个套接字,然后监 听来自另一方的连接,这就是通常所指的被动打开。被动打开的一端就是服务器端。而客 户端通过向服务器端发送一个 syn 来建立一个主动打开,作为三次握手的一部分。服务器 端为一个合法的 syn 回送一个
35、syn/ack。最后,客户端再发送一个 ack。这样就完成了 三次握手,并进入了连接建立状态。 2. 数据传输 很多重要的机制在 tcp 的数据传送状态保证了 tcp 的可靠性和强壮性。它们包括: 使用序号对收到的 tcp 报文段进行排序以及检测重复的数据;使用校验和来检测报文段的 错误;使用确认和计时器来检测和纠正丢包或延时。 在三次握手过程中,两个主机的 tcp 层间要交换初始序号。这些序号用于标识字节流 中的数据,并且还是对应用层的数据字节进行计数的整数。通常在每个 tcp 报文段中都有 一对序号和确认号。tcp 报文发送者认为自己的字节编号为序号,而认为接收者的字节编 号为确认号。tc
36、p 报文的接收者为了确保可靠性,在接收到一定数量的连续字节流后才发 送确认。这是对 tcp 的一种扩展,通常称为选择确认(sack)。选择确认使得 tcp 接收者 可以对乱序到达的数据块进行确认。 3. 连接终止 连接终止使用了四次握手,每个终端的连接在此过程中都能独立地被终止。因此,一 个典型的拆接过程需要每个终端都提供一对 fin 和 ack。 2.5 tcp/ip 报文捕获与分析 报文捕获功能可以在报文捕获面板中进行完成,图 2.12 是捕获面板的功能图,图中显 示的是处于开始状态的面板。 25 26 网络安全基础教程与实训(第 2 版) 图 2.12 捕获面板 1. 捕获过程报文统计
37、在捕获过程中可以通过面板查看捕获报文的数量和缓冲区的利用率,如图 2.13 所示。 图 2.13 报文统计 2. 捕获报文查看 sniffer 软件提供了强大的分析能力和解码功能。图 2.14 所示是为捕获的报文提供了一 个专家分析系统进行分析,图 2.14 中还包括解码选项及图形和表格的统计信息。 专家分析系统提供了一个智能的分析平台,对网络上的流量进行了一些分析,对于分 析出的诊断结果则可以通过查看在线帮助获得。 图 2.15 中显示出在网络中 wins 查询失败的次数及 tcp 重传的次数统计等内容,以便 了解网络中高层协议出现故障的可能点。 对于某项统计分析可以通过用鼠标双击此条记录来
38、查看详细的统计信息,且对于每一 项都可以通过查看帮助来了解其产生的原因。 图 2.16 是对捕获报文进行解码的显示,通常分为 3 部分,目前大部分此类软件结构都 采用这种结构显示。对于解码主要要求分析人员对协议比较熟悉,这样才能看懂解析出来 的报文。使用该软件是很简单的事情,要能够利用软件解码分析来解决问题,关键是要对 各种层次的协议了解得比较透彻。工具软件只提供一个辅助的手段。因涉及的内容太多, 这里不对协议进行过多讲解,读者可参阅其他相关的资料。 26 第 2章 网络监听与 tcp/ip 协议分析 27 图 2.14 报文查看 图 2.15 捕获的记录 图 2.16 查看 mac 信息 对
39、于 mac 地址,sniffer 软件进行了首部的替换,如 00e0fc 开头的就替换成 huawei, 这样有利于了解网络上各种相关设备的制造厂商信息。 利用该软件可按照过滤器设置的过滤规则进行数据的捕获或显示,方法是选择 capture|define filter 命令和 display|define filter 命令。 过滤器可以根据物理地址或 ip 地址和协议选择进行组合筛选。 3. 设置捕获条件 基本的捕获条件有以下两种。 (1) 链路层捕获,按源 mac 和目的 mac 地址进行捕获,输入方式为十六进制连续输 入,如 00e0fc123456。 (2) ip 层捕获,按源 ip
40、和目的 ip 进行捕获。输入方式为点间隔方式,如 。 如果选择 ip 层捕获条件,则 arp 等报文将被过滤掉。 设置的对话框如图 2.17 所示,具体设置步骤如下。 27 28 网络安全基础教程与实训(第 2 版) 在 advance 选项卡中,可以编辑协议的捕获条件,如图 2.18 所示。 在协议选择树中可以选择需要捕获的协议条件,如果什么都不选,则表示忽略该条 件,捕获所有协议。 在 packet size 选项组中,可以设置捕获等于、小于、大于某个值的报文。 在 packet type 选项组中,可以选择网络上有错误时是否捕获。 单击 profiles 按钮,可以保
41、存当前设置的过滤规则,在捕获主面板中,可以选择保 存的捕获条件。 图 2.17 设置基本捕获条件 图 2.18 设置高级捕获条件 在 data pattern 选项卡中,可以编辑任意捕获条件(通过单击相关的按钮进行),如图 2.19 所示。 图 2.19 在 data pattern 选项卡中编辑任意捕获条件 4. arp 报文解码 sniffer 解码的 arp 请求和应答报文的结构如图 2.20 所示。 28 第 2章 网络监听与 tcp/ip 协议分析 29 图 2.20 arp 报文解码 5. ip 报文解码 ip 报文包括 ip 协议头和载荷,其中对 ip 协议首部的分析是 ip 报
42、文分析的重要内容。 关于 ip 报文的详细信息可参考相关资料。下面给出 ip 协议首部的一个结构。 版本:4ipv4。 首部长度:单位为 4 字节,最大是 60 字节。 tos:ip 优先级字段。 总长度:单位字节,最大为 65535 字节。 标识:ip 报文标识字段。 标志:占 3 字节,只用到低位的两个字节。 段偏移:分片后的分组在原分组中的相对位置,共 13 字节,单位为 8 字节。 寿命:ttl(time to live)丢弃 ttl=0 的报文。 协议:携带的是何种协议报文。 首部检验和:对 ip 协议首部的校验和。 源 ip 地址:ip 报文的源地址。 目的 ip 地址:ip 报文的目的地址。 图 2.21 为 sniffer 对 ip 协议首部的解码分析结构,和 ip 首部各个字段相对应。图 2.21 中的报文协议字段的编码为 0x11,通过 sniffer 解码分析转换为十进制的 17,代表 udp 协 议。其他字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空航天复合材料 课件知识点3 聚合物基复合材料制备工艺
- 社会稳定测试题及答案
- 储备兽医面试题及答案
- 折花技能培训
- 四肢骨折护理常规
- 纵膈肿瘤切除术诊疗规范
- 2025年中国喷射式干手机行业市场全景分析及前景机遇研判报告
- 2025年中国尼龙钓鱼线行业市场全景分析及前景机遇研判报告
- 美容店入职培训
- 砖瓦行业安全培训
- 2024年广东惠州市交通投资集团招聘笔试参考题库含答案解析
- 便利店食品管理制度
- 《核分析技术》课件
- 空压机说明书(中文)
- 【基于Python的电商系统设计与实现14000字(论文)】
- 录用体检操作手册(试行)
- 农民工工资表(模板)
- 各级无尘室尘埃粒子测量表
- 湖北省武汉市江汉区2022-2023学年三年级下学期期末数学试卷
- 南充市仪陇县县城学校考调教师考试真题2022
- 广东省广州市白云区2022-2023学年数学六年级第二学期期末质量检测试题含解析
评论
0/150
提交评论