《北邮-计网实验2-IP和TCP数据分组的捕获和解析(共28页).doc》由会员分享,可在线阅读,更多相关《北邮-计网实验2-IP和TCP数据分组的捕获和解析(共28页).doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验报告实验二:IP和TCP数据分组的捕获和解析ytinrete1. 实验类别协议分析型2. 实验内容和实验目的本次实验内容:1)捕获在连接Internet过程中产生的网络层分组:DHCP分组,ARP分组,IP数据分组,ICMP分组。2)分析各种分组的格式,说明各种分组在建立网络连接过程中的作用。3)分析IP数据分组分片的结构。通过本次实验了解计算机上网的工作过程,学习各种网络层分组的格式及其作用,理解长度大于1500字节IP数据组分片传输的结构。4)分析TCP建立连接,拆除连接和数据通信的流程。3. 实验组人数单人组4. 实验环境windows7WireShark5
2、. 实验步骤和实验结果5.1 捕获DHCP报文并分析打开软件,并设置过滤器为udp.port= =68则可捕获DHCP报文分析DHCP分组格式:OP:若是 client 送给 server 的,设为 1 ,反向为 2。HTYPE:硬件,Ethernet 为 1。HLEN:硬件地址长度, Ethernet 为 6。HOPS:若需经过 router 传送,每站加 1 ,若在同一网内,为 0。TRANSACTION ID:DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。SECONDS:Client 端启动时间(秒)。FLAGS:从 0 到 15 共 16 bits ,最左
3、一 bit 为 1 时表示 server 将以广播方式传送给 client ,其余尚未使用。Ciaddr:要是 client 端想继续使用之前取得之 IP 地址,则列于这里。Yiaddr:从 server 送回 client 之 DHCP OFFER 与 DHCPACK中,此栏填写分配给 client 的 IP 地址。Siaddr:若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK中,此栏填写开机程序所在 server 之地址。Giaddr:若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。Ch
4、addr:Client 之硬件地址。Sname:Server 之名称字符串,以 0x00 结尾。File:若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。Options:允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息查看DHCP的四次握手获得IP地址,缺省路由DNS等参数的过程。在DOS窗口执行命令ipconfig/release先释放已经申请的IP地址。再执行ipconfig/renew。Wireshark捕获四次握手具体分析分析四次握手的过程:1)第一次握手本地端向网络以广播形式发送DHCP discover报文,等待
5、网络中的DHCP server给出回应。由抓包结果可知,discover报文第二层源mac地址为源端口mac,目的mac为广播地址ff:ff:ff:ff:ff:ff. 。三层源地址为0.0.0.0,目的地址为广播地址255.255.255.255。UDP源端口为68,目的端口为 67。2) 第二次握手当DHCP server接收到本地端发出的discover报文后,它会从那些还没有租出的地址范围内,选择最前面的空置 IP ,连同其它 TCP/IP 设定,响应给本地端一个 DHCP offer 封包。 由于客户端在开始的时候还没有 IP 地址,所以在其 DHCP discover 封包内会带有其
6、 MAC 地址信息,并且有一个 XID 编号来辨别该封包,DHCP 服务器响应的 DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCP offer 封包会包含一个租约期限的信息,当本地端到了这个期限,会释放出IP,再次发送discover报文重新申请。由抓包结果可得:Client IP address =0.0.0.0(0.0.0.0) Your(Client)IPaddress=10.201.18.140(10.201.18.140):DHCP Server分配给本地端的IP地址 DHCP Message TypeDHCP Offer :表示这是off
7、er报文Server identifier=10.3.9.3 (10.3.9.3):DHCP server的 IP地址Ip address lease time=12 hour 表示租期是12小时Subnet Mask=255.255.255.128 :子网掩码Domain Name= : 域名Router=10.201.18.129(10.201.18.129) :路由网关3) 第三次握手本地端向网络以广播形式发送request报文作为响应,告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。由抓包结果可看出这是一个request报文,IP为我们刚刚申请的IP:10.201
8、.18.140。4) 第四次握手网络中的DHCP server接收到本地端发送的request之后,向本地端以单播方式回应DHCP ack报文,确认IP租约生效,整个过程结束由抓包结果可以看出,这是一个ACK报文,内容类似于DHCP offer。四次握手用简图可表示为:DHCP分组在建立网络连接中用于给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。5.2 观察ARP和PING命令的执行过程Arp分组格式为:开始测试arp分组,在命令行中输入 Ping 10.201.18.129可见给10.201.18.129发送了4个数据包都得到了回复。从
9、抓包结果看首先以广播的形式发出了一个长度为42的报文,内容是请求10.201.18.129的mac地址,请求告知10.201.18.140。然后接收到一个长度为60的回复报文,头6个字节是本地的mac地址接着的6个字节就是对方的mac地址,这样我们就知道了对方地址。加进缓存表。DHCP分组在建立网络连接中用于获取目标主机的mac地址。在以太网协议中规定,同一局域网中的一台主机要和另一台主机迚行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的
10、主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。5.3 IP数据分组分组格式实验结果:字段 报文 解释 版本Version: 4版本为IPv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:default正常时延、正常吞吐量、正常可靠性 总长度 Total length : 1454数据分组长1454字节 标识 Identifi
11、cation : 0x709b(28827)标识为 28827 标志 Flags: 0x00DF=0;MF=0; 片偏移 Fragment offset:0偏移量为0 生存周期 Time to live:47每跳生存时间为47秒 协议 Protocol: TCP(6)使用TCP协议 首部校验和 Header checksum:0x4036correctIP头部校验和为0x4036,校验正确源地址 Source:58.250.135.111源地址:58.250.135.111 目标地址Destination:10.201.8.71目标地址:10.201.8.715.4 ICMP分组分组格式:实验
12、结果:字段 报文 解释类型 Type :0echo响应 代码 Code: 0echo响应校验和 Checksum:0x5543校验和为0x5543校验正确 标识符Identifier(BE):1 Identifier(LE):256标识符序列号Sequence number(BE):24Sequence number(LE):6144序列号ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些
13、控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。5.5 分析IP数据分组的分片传输过程ping -l 8000 则捕捉到如下所示:可见,整个8000的包被分成6个包,下面一一分析:第一个字段 报文 解释 版本Version: 4版本为IPv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:0x00正常时延、正常吞吐量、正常可靠性 总长度 Total length : 1500数据分组长1500字节 标识 Identification : 0x02f5(757)标识为 757
14、 标志 Flags: 0x01DF=0;MF=1(还有帧); 片偏移 Fragment offset:0偏移量为0 生存周期 Time to live:64每跳生存时间为64秒 协议 Protocol: ICMP(1)使用ICMP协议 首部校验和 Header checksum:0xc46bcorrectIP头部校验和为0xc46b,校验正确源地址 Source:10.201.8.71源地址:10.201.8.71目标地址Destination:121.194.0.239目标地址:121.194.0.239数据段Data (1480 bytes)数据段长度为 1480字节第二个字段 报文 解释
15、 版本Version: 4版本为IPv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:0x00正常时延、正常吞吐量、正常可靠性 总长度 Total length : 1500数据分组长1500字节 标识 Identification : 0x02f5(757)标识为 757 标志 Flags: 0x01DF=0;MF=1(还有帧); 片偏移 Fragment offset:1480偏移量为1480 生存周期 Time to live:64每跳生存时间为64秒 协议 Protocol: ICM
16、P(6)使用ICMP协议 首部校验和 Header checksum:0xc3b2correctIP头部校验和为0xc3b2,校验正确源地址 Source:10.201.8.71源地址:10.201.8.71目标地址Destination:121.194.0.239目标地址:121.194.0.239数据段Data (1480 bytes)数据段长度为 1480字节第三个字段 报文 解释 版本Version: 4版本为IPv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:0x00正常时延、正
17、常吞吐量、正常可靠性 总长度 Total length : 1500数据分组长1500字节 标识 Identification : 0x02f5(757)标识为 757 标志 Flags: 0x01DF=0;MF=1(还有帧); 片偏移 Fragment offset:2960偏移量为2960生存周期 Time to live:64每跳生存时间为64秒 协议 Protocol: ICMP(6)使用ICMP协议 首部校验和 Header checksum:0xc2f9correctIP头部校验和为0xc2f9,校验正确源地址 Source:10.201.8.71源地址:10.201.8.71目标
18、地址Destination:121.194.0.239目标地址:121.194.0.239数据段Data (1480 bytes)数据段长度为 1480字节第四个字段 报文 解释 版本Version: 4版本为IPv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:0x00正常时延、正常吞吐量、正常可靠性 总长度 Total length : 1500数据分组长1500字节 标识 Identification : 0x02f5(757)标识为 757 标志 Flags: 0x01DF=0;MF
19、=1(还有帧); 片偏移 Fragment offset:4440偏移量为4440生存周期 Time to live:64每跳生存时间为64秒 协议 Protocol: ICMP(6)使用ICMP协议 首部校验和 Header checksum:0xc240correctIP头部校验和为0xc240,校验正确源地址 Source:10.201.8.71源地址:10.201.8.71目标地址Destination:121.194.0.239目标地址:121.194.0.239数据段Data (1480 bytes)数据段长度为 1480字节第五个字段 报文 解释 版本Version: 4版本为I
20、Pv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:0x00正常时延、正常吞吐量、正常可靠性 总长度 Total length : 1500数据分组长1500字节 标识 Identification : 0x02f5(757)标识为 757 标志 Flags: 0x01DF=0;MF=1(还有帧); 片偏移 Fragment offset:5920偏移量为5920生存周期 Time to live:64每跳生存时间为64秒 协议 Protocol: ICMP(6)使用ICMP协议 首部校验和
21、 Header checksum:0x187correctIP头部校验和为0xc187,校验正确源地址 Source:10.201.8.71源地址:10.201.8.71目标地址Destination:121.194.0.239目标地址:121.194.0.239数据段Data (1480 bytes)数据段长度为 1480字节第六个字段 报文 解释 版本Version: 4版本为IPv4首部长度 Header length: 20 bytes首部长20字节 服务类型 Differentiated services codepoint:0x00正常时延、正常吞吐量、正常可靠性 总长度 Tota
22、l length : 628数据分组长628字节 标识 Identification : 0x02f5(757)标识为 757 标志 Flags: 0x00DF=0;MF=0(接下来没有帧了); 片偏移 Fragment offset:7400偏移量为7400生存周期 Time to live:64每跳生存时间为64秒 协议 Protocol: ICMP(6)使用ICMP协议 首部校验和 Header checksum:0xe436correctIP头部校验和为0xe436,校验正确源地址 Source:10.201.8.71源地址:10.201.8.71目标地址Destination:121
23、.194.0.239目标地址:121.194.0.239数据段Data (608 bytes)数据段长度为 608字节由此可看出分段方式为 8000=14805+608-8(多余的8字节为控制信息)5.6 分析TCP建立连接,拆除连接和数据通信的流程WireShark的Filter项 填为tcp.port=21 (仅观察FTP的TCP通信,FTP端口号为21)。捕获所有下面通信过程的TCP报文进行分析。1) 观察TCP建立连接的三次握手和粗暴方式拆除连接的流程。执行命令ftp 连接建立后直接按下Ctrl-C中止程序运行。实验结果:三次握手:可以看出,本地端IP为:10.201.8.71 目标I
24、P为:202.38.97.197A) 第一次握手:字段 报文 解释 源端口Source port: 59518源端口:59518目的端口 Destination port: ftp (21)目的端口:21 (FTP)序列 Sequence number: 0 (relative sequence number)相对序列为0首部长度 header length :32 bytes首部长度 32 字节标志位Flags: 0x002 (SYN)标志位只设置SYN,请求建立连接窗口大小Window size value : 8192窗口大小:8192 校验Checksum: 0x84b7校验和为: 0
25、x84b7选项 Options: (12 bytes)选项是:12字节可以看出本地端发出第一次握手,sequence=0,请求链接SNY=1。B) 第二次握手字段 报文 解释 源端口Source port: ftp (21)源端口:21 (FTP)目的端口 Destination port:59518目的端口:59518序列 Sequence number: 1 (relative sequence number)相对序列为1首部长度 header length :32 bytes首部长度 32 字节标志位Flags: 0x012 (SYN, ACK)标志位设置SYN,ACK表示确认链接窗口大
26、小Window size value : 14600窗口大小:14600校验Checksum: 0xaf6a校验和为: 0xaf6a选项 Options: (12 bytes)选项是:12字节可以看出对方已经确认连接请求ACK=1。C) 第三次握手字段 报文 解释 源端口Source port: 59518源端口:59518目的端口 Destination port: ftp (21)目的端口:21 (FTP)序列 Sequence number: 1 (relative sequence number)相对序列为1首部长度 header length :32 bytes首部长度 32 字节标
27、志位Flags: 0x010 (ACK)标志位只设置ACK,确认连接窗口大小Window size value : 2048窗口大小:2048 校验Checksum: 0x2145校验和为: 0x2145选项 Options: (12 bytes)选项是:12字节本地端向目标发送确认信号ACK=1,连接建立。粗暴方式拆除连接:用户直接与服务器断开连接。2) 观察TCP建立连接的三次握手,数据通信和优雅方式拆除连接的流程。执行命令ftp 用户名输入anonymous口令输入ab执行成功后输入命令bye链接建立与前次相同,这里不再重复,重点研究优雅方式拆除连接的流程。四次握手拆除链接:我们向目标地
28、址发出quit请求。A) 第一次握手字段 报文 解释 源端口Source port: ftp (21)源端口:21 (FTP)目的端口 Destination port:60014目的端口:60014序列 Sequence number: 248 (relative sequence number)相对序列为248首部长度 header length :20 bytes首部长度 20 字节标志位Flags: 0x011 (FIN,ACK)标志位设置FIN,ACK,回应quit请求窗口大小Window size value : 115窗口大小:115校验Checksum: 0x79dd校验和为:
29、 0x79dd目标给本地端发送确认quit请求的回答FIN=1, ACK=1。B) 第二次握手字段 报文 解释 源端口Source port: 60014 源端口:60014 目的端口 Destination port:ftp (21)目的端口:21 (FTP)序列 Sequence number: 33 (relative sequence number)相对序列为33首部长度 header length :20 bytes首部长度 20 字节标志位Flags: 0x010 (ACK)标志位设置ACK,回应窗口大小Window size value : 1989窗口大小:1989校验Chec
30、ksum: 0x729a校验和为:0x729a本地端向目标端发送确认信息ACK=1。C) 第三次握手字段 报文 解释 源端口Source port: 60014 源端口:60014 目的端口 Destination port:ftp (21)目的端口:21 (FTP)序列 Sequence number: 33 (relative sequence number)相对序列为33首部长度 header length :20 bytes首部长度 20 字节标志位Flags: 0x011 (FIN,ACK)标志位设置FIN,ACK,发出拆除请求窗口大小Window size value : 1986
31、窗口大小:1986校验Checksum: 0x728d校验和为:0x728d本地端向目标发出拆除请求FIN=1。D) 第四次握手字段 报文 解释 源端口Source port: ftp (21)源端口:21 (FTP)目的端口 Destination port: 60014 目的端口:60014 序列 Sequence number: 249 (relative sequence number)相对序列为249首部长度 header length :20 bytes首部长度 20 字节标志位Flags: 0x010 (ACK)标志位设置ACK,回复拆除完成窗口大小Window size val
32、ue : 115窗口大小:115校验Checksum: 0x79dc校验和为:0x79dc目标向本地端发送确认信息,拆除链接完成ACK=1。至此,四次握手完毕。6.实验心得这一次实验耗费了极大的时间和精力,但是同时也学到了很多的知识,收获颇丰。首先我是第一次使用这种软件,还要从教程看起,特别是在设置捕捉过滤器和显示过滤器方面遇到了不少麻烦,都是通过上网查资料解决的。上手以后就比较方便了。第二个比较大的问题是在抓取IP数据包时,总是校验失败,一直搞不清楚原因,校验提示checksum overflow,最后也是靠上网搜索资料,更改网卡参数解决的,期间还有很多小问题,总之是一波三折,但是最后完成我也挺满意。这次试验让我更直观的学习了各种数据包的格式,连接建立的步骤,巩固了所学的知识,同时还能联系实际,有了更感性的认识。同时增强了我的动手能力和解决问题的能力,是我获益匪浅。专心-专注-专业