哈工大计算机网络实验报告之六
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络课程实验报告
实验6:利用Ethereal分析IP、ARP协议及以太网数据帧格式
实验过程:
利用Ethereal分析IP协议:(12分)得分:通过分析执行traceroute程序发送和接收到的IP数据包,分析IP数据包的各个字段,并详细研究IP分片。
(1)在你的捕获窗口中,应该能看到由你的主机发出的一系列ICMP Echo Request包和中间路由器返回的一系列ICMP TTL-exceeded消息。选择第一个你的主机发出的ICMP Echo Request消息,在packet details窗口展开数据包的Internet Protocol部分。
思考下列问题:
●IP头有多少字节?该IP数据包的净载为多少字节?并解释你是怎样确定该IP数据包的净载
大小的?
IP头20字节,该IP数据包的净载为32字节。计算方法:该IP数据包的总字节数(Total length)为56,其中头长(Header length)为20,Flags长为4,所以净载为(56-20-4)=32字节。
(2)单击Source列按钮,这样将对捕获的数据包按源IP地址排序。选择第一个你的主机发出的ICMP Echo Request消息,在packet details窗口展开数据包的Internet Protocol部分。在“listing of captured packets” 窗口,你会看到许多后续的ICMP消息(或许还有你主机上运行的其他协议的数据包)思考下列问题:
●你主机发出的一系列ICMP消息中IP数据报中哪些字段总是发生改变?哪些字段必须保持常
量?哪些字段必须改变?为什么?
Time to live,seq,checksum,identification,这些字段总是发生改变。Id、源地址、目的地址、服务类型、版本必须保持常量。Time to live,seq,checksum,identification必须改变。
原因:每当数据报经过一台路由器时,ttl减1;
每经过一个路由器,都必须重新计算。
(3)单击Time列按钮,这样将对捕获的数据包按时间排序。找到在将包大小改为2000字节后你的主机发送的第一个ICMP Echo Request消息。
思考下列问题:
●观察第一个IP分片,IP头部的哪些信息表明数据包被进行了分片?IP头部的哪些信息表明数
据包是第一个而不是最后一个分片?该分片的长度是多少?
Flags中More fragements位为1,说明数据包进行了分片;而fragment offset为0说明它是第一个分片,Flags中More fragements位为1说明它不是最后一个分片;该片长度为1480字节
(4)找到在将包大小改为3500字节后你的主机发送的第一个ICMP Echo Request消息。
思考下列问题:
●原始数据包被分成了多少片?IP头部哪些字段如何表明这几个分片是属于同一个组的?如
何标明这几个分片之间的顺序关系?
该数据报被分成了3片;
它们的identification相同说明它们是一个组的;
通过比较fragment offset的大小可以知道它们的顺序关系,也可以通过上图的内容来判断每
个分片的抓包序号。
●实验结论,以及实验中遇到的其他问题是如何解决的?
结论:一个链路层帧能承载的最大数据量叫做最大传输单元(MTU),链路层协议严格地限制着IP数据报的长度,当要传递的数据报大小超过这个值时,就要进行分片。
问题:用icmp作为数据包的筛选条件时只能找到分片的数据报的最后一片,一般把筛选条件设置为空,我们之前找到的最后一片的前几个数据包就是前几个分片。
利用Ethereal分析以太网帧(10分)得分:
(1)选择包含HTTP GET报文的以太网帧,在分组详细信息窗口中,展开Ethernet II信息部分。根据操作,思考以下问题:
●你的主机的48位以太网地址是多少?(操作截图)
●目的主机以太网地址是多少?是服务器的地址吗?如果不是,该地址是什么
设备的以太网地址?
不是服务器的地址,是路由器的以太网地址
(2)选择包含HTTP响应报文第一个字节的以太网帧,根据操作,思考以下问题:
●以太网Frame源地址是多少?该地址是你主机的地址吗?是服务器的地址
吗?如果不是,该地址是什么设备的地址?
不是主机地址,也不是服务器地址,它是路由器的地址
●实验结论,以及实验中遇到的其他问题是如何解决的?
结论:MAC地址只在同一子网中使用,当A子网中的某个节点想要访问B子网中的另一节点时,目的MAC地址是A子网的网关,因为A中发送数据的节点并不知道B子网中期待接收数据的节点的MAC地址。
利用Ethereal分析以ARP协议:(4分)得分:
(1)利用MS-DOS命令:arp 或c:\windows\system32\arp查看主机上ARP缓存的内容。回答下面问题:
●ARP缓存中每一列的含义是什么?
nternet Address 列表示其他主机的IP地址;
Physical Address列表示其他主机的MAC地址;
Type表示该ARP记录的类型。
(2)清除主机上ARP缓存的内容,抓取ping命令时的数据包。分析数据包,回答下面的问题:
●ARP数据包的格式是怎样的?由几部分构成,各个部分所占的字节数是多少?
ARP数据包格式:
ARP数据包
ARP数据包分为9部分
Hardware type:2字节
Protocol type:2字节
Hardware size:1字节
Protocol size:1字节
Opcode:2字节
Sender MAC address:6字节
Sender IP Address:4字节
Target MAC Address:6字节
Target IP Address:4字节
●ARP协议属于哪一层的协议,说明你的理由。
链路层协议。因为它运行在链路层和网络层之间,为链路层寻址提供服务。
●为什么ARP查询要在广播帧中传送,而ARP响应要在一个有着明确目的局域网地址的帧中
传送?
因为ARP进行查询工作时,并不知道目的MAC地址,所以要通过广播的形式,向局域网中所有节点进行查询;但ARP响应时已经知道源MAC地址(就是发送广播帧的节点),所以要在一个有着明确目的局域网地址的帧中传送。
●实验结论,以及实验中遇到的其他问题是如何解决的?
结论:ARP协议适用于把同一子网的其他节点的网络层地址转换成链路层地址,ARP查询报文通过广播发送,ARP响应报文由目的主机发回给发送主机。
问题:报告上的地址ping不过去,后来才知道要ping我所在的局域网中另一台开着的电脑即可。指导教师评语: