北邮 计网实验 协议数据的捕获和解析_第1页
北邮 计网实验 协议数据的捕获和解析_第2页
北邮 计网实验 协议数据的捕获和解析_第3页
北邮 计网实验 协议数据的捕获和解析_第4页
北邮 计网实验 协议数据的捕获和解析_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络 实验二:协议数据的捕获和解析 1、 实验类别 协议分析验证型 二.、实验内容和实验目的 本次实验主要包含下列内容: 1)使用Wireshark 软件捕获在使用ping 命令时产生的ICMP 消息; 2)分析网络层IP 包头格式,理解各字段的作用,对于分段和校验和进行验证; 3)使用Wireshark 软件捕获在使用ARP 消息,分析其消息格式,理解其工作原理; 4)使用Wireshark 捕获DHCP 消息,分析其消息序列,理解DHCP 的功能和操作原理; 5)使用Wireshark 捕获TCP 消息,分析TCP 报文段头格式,理解连接建立和释放的原理, 差错控制原理、序号和窗口管理的原理。 通过本实验来深入理解分层体系结构,理解和掌握TCP/IP 协议栈的代表协议 IP、TCP 、UDP、ICMP、ARP 和DHCP 协议的要点。 三、实验设备环境 1 台装有 MS Windows 系列操作系统的计算机,能够连接到Internet,并已安装 Wireshark 软件。 4、 实验步骤 (1)准备工作 1. 下载 Wireshark 软件并了解其功能和使用方法。 2. 确保计算机已经连接到网络。 3. 启动 Wireshark1,设置捕获接口(Interface)为本机网卡,选中混杂模式( promiscuous mode)捕获选项,设置合适的捕获过滤器(Capture Filter): 对于 ping 命令,设置过滤器为 icmp 对于 DHCP 消息,设置过滤器为udp port 67 对于 ARP 消息,设置过滤器为arp 对于通过网页浏览应用来捕获 TCP 消息,设置过滤器为 tcp port 80 4. 开始捕获。 (2) 数据捕获 捕获ICMP 协议数据 1. 运行 ping 命令(例如: c ping ) ,远程主机地址可以是本机地址、网关路 由器地 址,也可以是域名(如) 。将捕获到的数据保存为文件。 2. 使用 Windows 中ping 命令的-l 选项(例如:cping -l 8000 ) ,制作大于 8000 字 节的IP 包并发送,捕获后分析其分段传输的包结构。 捕获 DHCP 协议数据 1. 使用 ipconfig 命令释放计算机的IP 地址(cipconfig -release) ; 2. 使用 ipconfig 命令重新申请IP 地址(cipconfig -renew) 。 此时 wireshark 窗口中可以捕获到完整的DHCP 地址分配的流程,将捕获到的数据保存为 文件。 捕获 ARP 协议数据 采用与捕获 DHCP 协议数据相同的方法释放IP 地址并重新申请,在wireshark 窗口中可以 捕获到ARP 请求和响应消息,保存为文件。 捕获 TCP 协议数据 打开浏览器,输入一个页面内容较简单网页URL,如;网页全部显示后关 闭浏览器。 (3) 协议分析 运行Wireshark 软件,打开所捕获的数据文件,完成下列分析工作: 1. IP 包头分析:对于采用ping 命令-l 选项捕获的ICMP 消息,对承载ICMP 消息的IP 包 进行分析,记录包头各字段的值,对照讲义和教材分析各字段的功能,并对于校验和和分 段进行验证; 对于 Windows Vista 和Windows 7 操作系统,需要以管理员身份运行; 2. ICMP 消息分析:记录并分析ICMP 消息中分析各字段的功能; 3. DHCP 消息分析:针对一次地址分配过程(Transaction ID 相同的4 个消息) ,分析其通 信过程, 画出地址分配的消息序列图,并记录采用DHCP 协议配置的各个参数。 4. ARP 消息分析:对照讲义理解ARP 的操作过程,记录并分析消息中各字段的功能。 5. TCP 报头及消息分析:针对 TCP 连接建立、连接释放、数据和应答报文段,对照讲义 和教材分 析各字段的功能;针对一次完整的TCP 通信过程,画出消息序列图,应包含连接建立、数 据传 送和连接释放阶段。 上述分析工作应在实验报告中进行详细描述,具体要求参见第 9 节。 (4) 撰写实验报告 按要求撰写实验报告,对于捕获到的数据进行认真分析,归纳各协议的工作原理和实现 要点。 5、 实验分析 1.IP协议分析 1)采用ping 命令-l 选项捕获的ICMP 消息 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠 性 总长度 05DC 数组分组长1500字节 标识 14a0 标识为5280 标志 01 MF=1 DF=0,允许分片,为第一片, 片偏移 00 偏移量为0 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 6530 IP头部校验和为6530 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠 性 总长度 05DC 数组分组长1500字节 标识 14a0 标识为5280 标志 01 MF=1 DF=0,允许分片,为第二片, 片偏移 05cb 偏移量为1480 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 6477 IP头部校验和为6477 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠 性 总长度 05DC 数组分组长1500字节 标识 14a0 标识为5280 标志 01 MF=1 DF=0,允许分片,为第三片, 片偏移 0b90 偏移量为2960 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 63be IP头部校验和为63be 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠 性 总长度 05DC 数组分组长1500字节 标识 14a0 标识为5280 标志 01 MF=1 DF=0,允许分片,为第四片, 片偏移 1158 偏移量为4440 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 6305 IP头部校验和为6305 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠 性 总长度 05DC 数组分组长1500字节 标识 14a0 标识为5280 标志 01 MF=1 DF=0,允许分片,为第五片, 片偏移 1720 偏移量为5920 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 624c IP头部校验和为624c 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠性 总长度 0274 数组分组长628字节 标识 14a0 标识为5280 标志 00 MF=0 DF=0,允许分片,为最后一片 片偏移 1ce8 偏移量为7400 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 84fb IP头部校验和为84fb 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 2) IP包头校验和的校验原理 当数据到达时,所有的16位(半字)累加起来,然后再取结果的补码。 字 段 报 文(16进制) 内 容 包头长度 45 包头长20字节 服务类型 00 正常时延,正常吞吐量,正常可靠性 总长度 003c 数组长度60字节 标识 148a 标识为5258 标志 00 MF=0 DF=0,允许分片,为最后一片 片偏移 0 偏移量为0 生存周期 40 每跳生存时间为64秒 协议 01 携带数据来自ICMP协议 头部校验和 8ae6 IP头部校验和为8ae6 源地址 c0a80166 源地址为02 目的地址 D34445fe 目的地址为 54 4 5 0 003c 0a62 00 0 40 1 8ae6 02 54 4,5 and 0-01000101 00000000 003c -00000000 00111100 148a -00010100 10001010 00 and 0 -00000000 00000000 40 and 1 -01000000 00000001 8ae6 -10001010 11100110 192.168 -11000000 10101000 1.102 -00000001 01100110 211.68 -11010011 01000100 69.254 -01000101 11111110 简单求和后发现结果为:1111 1111 1111 1111 符合条件,是正确的包,即IP头部校验和 为8ae6是正确的。(。 。 。 。 ) 3) IP包分段原理: 首先同一个数据报的所有分段包含同样的Identification(标识)值,同时每一个分段使 用DF、MF和offset来表示该分段的信息。 DF代表不分段(Dont Fragment),它让路由器不要分割该数据报,因为目标主机无法将 分片重组回原来的数据报,而数据报在分段后,此位置0; MF表示更多的分段(More Fragment),除了最后一个分段以外其他所有的分段必须设置 这一位,将其置1,最后一个分段置0; Fragment offset分段偏移域指明了该分段在当前数据报中的什么位置上。除了一个数 据包的最后一个分段以外,其他所有的分段必须是8字节的倍数,这里8字节是基本分段单 位。 由截获的数据报来看,一共六段,除第一段offset为0外,其他各段偏移量为1480的倍 数,也即前边每一段数据报(除包头)的长度,1480也为8的倍数,由此指明了各段在当前数 据包中的位置。 同时,除最后一段MF为0外,其他各段MF为1,表明各段不是一个完整的数据报,而是 分割之后形成的分段。 2. ICMP 协议分析 1) ICMP 的功能 ICMP 报文被封装在 IP 包里,并且 ICMP 协议数据包对 IP 分组在传送时出现的异 常情况进行报告,对 IP 报文传输时出现的差错、拥塞、路由改变、以及路由器或主机 信息的获取等情况,向源端主机提交报告,由源主机采取相应措施,改进传输质量。 其中有 Destination un reachable、time exceeded、source quench、redirect、 ECHO and ECHO reply、time stamp request and reply 几种不同功能的 ICMP 报 文。 2) 记录 ICMP 的包格式,自己查找资料总结各字段的功能。 ICMP 协议包构成:前 8 字节由报文类型(1 字节)、代码(1 字节) 、校验和(2 字 节) ,选项部分(4 字节) 。 ICMP 报文分为两大类差错报告报文与询问报文,差错报文共有五种、询问报 文有两种 下图为 ICMP 请求包 TYPE类型为8 code代码为0 checksum校验和为4d2c Identifier(大端表示)为1 (小端表示)为256 sequence number序列号(大端表示)为47, (小端表示)为12032 下图ICMP 应答包 TYPE类型为0 code代码为0 checksum校验和为552c Identifier(大端表示)为1 (小端表示)为256 sequence number序列号(大端表示)为47, (小端表示)为12032 由此可见,请求和应答数据包的区别在于类型,请求包为 Type8,而应答包为 Type0。ICMP 与 IP 协议同处于 TCP/IP 模型的网际层,但 ICMP 报文是封装在 IP 数据报的 数据部分进行传输的。 3.DHCP 协议分析 1) 对照讲义和教材理解 DHCP 的功能,观察DHCP ACK 消息的各字段,自己查找资料 理解各字段的功能,总结采用DHCP 协议可以提供哪些配置参数。 DHCP是动态主机配置协议(Dynamic host configuration protocol)的简称,它提供 对于远程主机的自动配置,包括IP地址、路由地址、子网掩码、DNS服务器地址,是一个应 用层上的协议。 作为BOOTP的拓展,它的作用是给内部网络或网络服务供应商自动分配 IP地址,给用 户或者内部网络管理员作为对所有计算机作中央管理的手段。它也是client-server的范例。 下图是DHCP ACK消息包含的各字段 Message type boot reply(2) 操作码 Hardware type Ethernet 硬件类型 Hardware address length 6 硬件地址长度 Hops 0 跳数 Transaction ID 0xe4c5866c 事务标识 Seconds elapsed 0 过去的秒数 Client IP address 客户 IP Your IP address 08 你的主机 IP 地址 Next server IP address 下一个服务器的 IP 地址 Relay agent IP address 中介代理的 IP 地址 Client MAC address 58:94:6b:4a:cd:28 客户 MAC 地址 DHCP message type DHCP ACK(5) DHCP 消息类型 Server identifier 供应商标识符 Subnet mask 子网掩码 Router 路由 IP address lease time 2 hours IP 地址的租用时间 Domain Name server: / 域名服务器 DHCP 向网络主机提供配置参数,它由两个基本部分组成:一部分是向网络主机传送专 用的配置信息,另一部分是给主机分配网络地址。DHCP 是用于向客户传送配置信息的,客 户从 DHCP 服务器那里获得配置信息后应该可以和 Internet 上任何一台主机通信。在初始 化一台主机时并不需要配置所有这些参数,客户和服务器可以通过一种商讨机制决定传送 哪些参数。DHCP 允许(不要求)客户参数配置不直接与 IP 协议相关,而且它也不将最加 入的主机加入域名系统(DNS)中。 2) 根据捕获到消息,画出 DHCP 地址分配过程的消息序列图。注意 DHCP 是采用client- server 模式工作的,你捕获到的消息中,DHCP server 是否由路由器充当?是否有DHCP Relay? 1 . 执行ipconfig/renew更新所有适配器,由 于本地主机没有被分配到IP地址,并且也 不知道 DHCP服 务器的地址,所以 发送DHCP Discover报文时,源地址为,目的地址为 55。本地网络上的所有主机都能收到 DHCP Discover报文。 2)只有DHCP 服 务器收到这个DHCP,Discover 报文后, 向网络广播DHCP Offer报文作为回 复。 3)本地主机()收到DHCP Offer报文后, 向DHCP服务器发送DHCP Request报文 4DHCP()服务器收到DHCP Request报文后,回复DHCP ACK报文,给本地主机 分配一个IP地址。本地主机就得到了一个临时IP地址(08 )。至此四次握手完成。 在我捕获到的消息中,DHCP sever由路由器充当,无DHCP relay, 因为在同一网段内。 4. ARP 协议分析 1) 根据捕获到的消息,对照讲义,理解 ARP 的功能和操作原理。 本地局域网内的主机用广播的方式发送ARP报文,来获取彼此的硬件地址。 ARP基本功能:在以太网协议中规定,同一局域网中的一台主机要和另一台主机迚行直接 通信,必须要知道目标主机的MAC地址。而在TCP/IP 协议栈中,网络层和传输层只关心目 标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层 IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP 地址,获得其MAC地址。这就是ARP 协议要做的事情。所谓地址解析( address resolution) 就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。 2) 记录 ARP 的包格式,自己查找资料总结各字段的功能。 ARP报文的格式: 硬件类型:指明硬件的类型,以太网是1。 协议类型:指明发送者 映射到数据链路标识的网络层协议的类型;IP对应0x0800。 硬件地址长度:也就是MAC 地址的长度,单位是字节,这里是6。 协议地址长度:网络层地址的长度,即IP地址长 度,单位是字节。 操作:指明是ARP请求(1)还是ARP应答(2) 剩下的字段都比较 简单,不作说明 5、 TCP 协议分析 1) 对照讲义和教材理解 TCP 报文段的首部各字段的功能,以表格的方式总结每个字段的 名字、长度和功能。 源端口和目的端口域标明了一个连接的两个端点(16位)+(16位) 序列号发送TCP包的序列(32 位) 确认号指定下一个期望的字节(32位) TCP头长度指明在头部TCP 头部包含多少个32位的字 (4位)+后边的(6位保留 位)+(6位标志域) URG 用来 指示 出紧 急数 据在 当前 数据 段中 的位 置 ACK 表示 是否 包含 确认 信息 PUSH 表示 这是 带有 PUSH 标志 的数 据 RST 被用 于重 置一 个已 经混 乱的 连接 SYN 被用 于建 立连 接的 过程 FIN被 用于 释放 一个 连接 窗口 大小 表示 接收 方的 窗口 大小 (16位) 校验和提供额外可靠性(16 位) 紧急指针16位,指向后面是优先数据的字节,在URG标志 设置了时才有效 可选项:长度不定,但长度必须以字节。如果没有 选项就表示这个一字节的域等于0。 数据的开始处偏移量能够被32整除,一般额外的零以保证 TCP头是32 位的整数倍。 2) 针对连接建立消息和连接释放消息,分析相应标志位和序号的作用,参照讲义中的示 例画出连接建立和连接释放过程的消息序列图,在图上标出对应的标志位和序号。 建立连接: 在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。 第 一次握手: 建立连接时, 客户端发送 syn 包(syn=j)到服务器, 并进入 SYN_SEND 状态, 等待服务器确认; 第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1) , 同时自己 也发送一个 SYN 包(syn=k) ,即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态; 第三次握手:客户端收到服务器的 SYNACK 包,向服务器发送确认包 ACK(ack=k+1), 此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三 次握手。 完成三次握手, 客户端与服务器开始传送数据 释放连接: 虽然TCP连接是全双工的,但可将其视为一对单工连接,每个连接单独释放,两个单工 之间独立。步骤: (1)客户端1发送一个FIN,用来关闭1到2的数据发送 (2)服务器2收到这个FIN,它发回一个ACK ,确认序号为收到的序号+1,和SYN一样, 一个FIN将占用一个序号 (3)服务器2关闭与客户端1的连接,发送一个FIN给客户端1 (4)客户端1发回ACK报文确认,并将确认信号设置为收到序号+1 3) 针对 TCP 的数据传输过程中的数据报文段和应答报文段,分析发送序号、应答序号、 应答标志位、窗口大小、数据长度、MSS 等字段的作用,参照讲义中的示例画出数据传输 过程的消息序列图,其中应包括数据校验错和数据丢失导致的数据重传情形,在图上应标 出对应的序号、标志位和窗口大小。 每个 TCP 报文头部都包含源端口号(source port)和目的端口号( destination port) ,用 于标识和区分源端设备和目的端设备的应用进程。在 TCP/IP 协议栈中,源端口号和目的端 口号分别与源 IP 地址和目的 IP 地址组成套接字(socket) ,唯一的确定一条 TCP 连接。 序列号(Sequence number)字段用来标识 TCP 源端设备向目的端设备发送的字节流, 它表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流 动,则 TCP 用序列号对每个字节进行计数。序列号是一个 32bits 的数。 既然每个传输的字节都被计数,确认序号(Acknowledgement number,32bits)包含发 送确认的一端所期望接收到的下一个序号。因此,确认序号应该是上次已成功收到的数据 字节序列号加 1。 T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论