北邮计网实验协议数据的捕获和解析

上传人:仙*** 文档编号:28425286 上传时间:2021-08-28 格式:DOC 页数:16 大小:666.50KB
返回 下载 相关 举报
北邮计网实验协议数据的捕获和解析_第1页
第1页 / 共16页
北邮计网实验协议数据的捕获和解析_第2页
第2页 / 共16页
北邮计网实验协议数据的捕获和解析_第3页
第3页 / 共16页
点击查看更多>>
资源描述
计算机网络实验二:协议数据的捕获和解析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)为本机网卡,选中混杂模式(promiscuousmode)捕获选项,设置合适的捕获过滤器(Capture Filter):l 对于 ping 命令,设置过滤器为icmpl 对于 DHCP 消息,设置过滤器为udp port 67l 对于 ARP 消息,设置过滤器为arpl 对于通过网页浏览应用来捕获 TCP 消息,设置过滤器为 tcp port 804. 开始捕获。 (2) 数据捕获 捕获ICMP 协议数据1. 运行 ping 命令(例如:c ping 192.168.0.1),远程主机地址可以是本机地址、网关路由器地址,也可以是域名(如)。将捕获到的数据保存为文件。2. 使用 Windows 中ping 命令的-l 选项(例如:cping -l 8000 192.168.0.1),制作大于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标志01MF=1 DF=0,允许分片,为第一片,片偏移00偏移量为0生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和6530IP头部校验和为6530源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.254 字 段 报 文(16进制)内 容包头长度45包头长20字节服务类型00正常时延,正常吞吐量,正常可靠性总长度05DC数组分组长1500字节标识14a0标识为5280标志01MF=1 DF=0,允许分片,为第二片,片偏移05cb偏移量为1480生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和6477IP头部校验和为6477源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.254字 段 报 文(16进制)内 容包头长度45包头长20字节服务类型00正常时延,正常吞吐量,正常可靠性总长度05DC数组分组长1500字节标识14a0标识为5280标志01MF=1 DF=0,允许分片,为第三片,片偏移0b90偏移量为2960生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和63beIP头部校验和为63be源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.254字 段 报 文(16进制)内 容包头长度45包头长20字节服务类型00正常时延,正常吞吐量,正常可靠性总长度05DC数组分组长1500字节标识14a0标识为5280标志01MF=1 DF=0,允许分片,为第四片,片偏移1158偏移量为4440生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和6305IP头部校验和为6305源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.254字 段 报 文(16进制)内 容包头长度45包头长20字节服务类型00正常时延,正常吞吐量,正常可靠性总长度05DC数组分组长1500字节标识14a0标识为5280标志01MF=1 DF=0,允许分片,为第五片,片偏移1720偏移量为5920生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和624cIP头部校验和为624c源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.254字 段 报 文(16进制)内 容包头长度45包头长20字节服务类型00正常时延,正常吞吐量,正常可靠性总长度0274数组分组长628字节标识14a0标识为5280标志00MF=0 DF=0,允许分片,为最后一片片偏移1ce8偏移量为7400生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和84fbIP头部校验和为84fb源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.2542)IP包头校验和的校验原理当数据到达时,所有的16位(半字)累加起来,然后再取结果的补码。字 段 报 文(16进制)内 容包头长度45包头长20字节服务类型00正常时延,正常吞吐量,正常可靠性总长度003c数组长度60字节标识148a标识为5258标志00MF=0 DF=0,允许分片,为最后一片片偏移0偏移量为0生存周期40每跳生存时间为64秒协议01携带数据来自ICMP协议头部校验和8ae6IP头部校验和为8ae6源地址c0a80166源地址为192.168.1.102目的地址D34445fe目的地址为211.68.69.254450003c0a620004018ae6 192.168.1.102 211.68.69.2544,5 and 0-01000101 00000000003c -00000000 00111100148a -00010100 1000101000 and 0 -00000000 0000000040 and 1 -01000000 000000018ae6 -10001010 11100110192.168 -11000000 10101000 1.102 -00000001 01100110211.68 -11010011 0100010069.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 typeboot reply(2)操作码Hardware typeEthernet硬件类型Hardware address length6硬件地址长度Hops0跳数Transaction ID0xe4c5866c事务标识Seconds elapsed0过去的秒数Client IP address0.0.0.0客户IPYour IP address192.168.1.108你的主机IP地址Next server IP address0.0.0.0下一个服务器的IP地址Relay agent IP address0.0.0.0中介代理的IP地址Client MAC address58:94:6b:4a:cd:28客户MAC地址DHCP message typeDHCP ACK(5)DHCP消息类型Server identifier192.168.1.1供应商标识符Subnet mask255.255.255.0子网掩码Router192.168.1.1路由IP address lease time2 hoursIP地址的租用时间Domain Name server: 10.3.9.4 /10.3.9.5 域名服务器DHCP向网络主机提供配置参数,它由两个基本部分组成:一部分是向网络主机传送专用的配置信息,另一部分是给主机分配网络地址。DHCP是用于向客户传送配置信息的,客户从DHCP服务器那里获得配置信息后应该可以和Internet上任何一台主机通信。在初始化一台主机时并不需要配置所有这些参数,客户和服务器可以通过一种商讨机制决定传送哪些参数。DHCP允许(不要求)客户参数配置不直接与IP协议相关,而且它也不将最加入的主机加入域名系统(DNS)中。2) 根据捕获到消息,画出 DHCP 地址分配过程的消息序列图。注意DHCP 是采用client-server 模式工作的,你捕获到的消息中,DHCP server 是否由路由器充当?是否有DHCP Relay?1 . 执行ipconfig/renew更新所有适配器,由于本地主机没有被分配到IP地址,并且也不知道DHCP服务器的地址,所以发送DHCP Discover报文时,源地址为0.0.0.0,目的地址为255.255.255.255。本地网络上的所有主机都能收到DHCP Discover报文。 2 只有DHCP服务器收到这个DHCP,Discover报文后,向网络广播DHCP Offer报文作为回复。 3 本地主机(0.0.0.0)收到DHCP Offer报文后,向DHCP服务器发送DHCP Request报文 4DHCP(192.168.1.1)服务器收到DHCP Request报文后,回复DHCP ACK报文,给本地主机分配一个IP地址。本地主机就得到了一个临时IP地址(192.168.1.108)。至此四次握手完成。在我捕获到的消息中,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。 TCP的流量控制由连接的每一端通过声明的窗口大小(windows size)来提供。窗口大小用数据包来表示,例如Windows size=3, 表示一次可以发送三个数据包。窗口大小起始于确认字段指明的值,是一个16bits字段。窗口大小可以调节。 校验和(checksum)字段用于校验TCP报头部分和数据部分的正确性。 最常见的可选字段是MSS(Maximum Segment Size,最大报文大小)。MSS指明本端所能够接收的最大长度的报文段。当一个TCP连接建立时,连接的双方都要通告各自的MSS协商可以传输的最大报文长度。我们常见的MSS有1024(以太网可达1460字节)字节。4) 对照教材 6-33 图,理解TCP 状态转换的过程,按照你所捕获的消息,画出Client 侧的状态转换图,并进行解释。 当客户机器上的一个应用程序发出CONNECT请求的时候,本地的TCP创建一条连接记录,并将它标记为SYN SENT状态,然后发送一个SYN数据段。当SYN+ACK到达时候,三步握手完成,连接建立开始发送和接收数据。 当应用结束时,发出CLOSE原语,从而使本地的TCp实体发送一个FIN数据段,并等待相应ACK,当ACK到达时,发生一次状态迁移,切换到FIN WAIT 2,而且连接的一个方向现在被关闭。当另一方也关闭的时候,一个FIN数据段会到来,然后它被确认。现在双方都已经关闭了,但是TCP要等待一段最大的分组生存期的时间,以确保该链接的所有分组都已经消失了,以防万一发生确认被丢失的情形。当定时器到期之后,TCP删除该链接记录。 当客户完成的时候,它执行CLOSE,从而导致发送一个FIN到达服务器。然后,服务器接到信号,当它也执行CLOSE的时候,TCP实体给客户发送一个FIN数据段。当客户的确认回来的时候,服务器释放该链接,并且删除相应的链接记录。6、 实验总结1. 通过本实验更加深刻了课堂内学习的知识。2. 实验过程很累人,实际花费超过了6个小时,但是也是一种提高过程。3. 并且在验证头部校验和的时候,尽管是把各项简单求和,但最高位可能产生进位,这时候应该把这些进位累加到最低位上去,从而验证checksum是否正确。这块在计算时,一直疏忽了,后来才反应过来。4. 最后一点,本次实验结束之后我们都感觉自己有较大的提高和认识。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!