1学生实验报告姓名:学号:班级:指导老师:内容摘要该实验报告介绍了DNS协议分析实验和http的相关分析。DNS协议分析是通过nslookup进行域名解析并通过协议分析软件来分析DNS协议的报文格式,如:DNS中RR格式的具体内容,以及DNS报文中事物标号,报文类型,问题的个数,回答RR个数,权威域名RR数,附加RR数,问题具体RR数,回答具体RR数,域名对应的权威域名服务器的相关RR和附加的具体RR数;http协议分析主要有获取网页的流程,其次是分析http请求报文和响应报文的格式并进行简单的报文分析,和对于网页中用户登录时的密码是为明文的分析,WEB缓存的验证,以及对http1.0和1.1之间的区别分析一、DNS协议分析:实验目的1.学会客户端使用nslookup命令进行域名解析2.通过协议分析软件掌握DNS协议的报文格式实验原理连上internet的PC机,并且安装有协议分析软件Wireshark。实验原理及概况1.DNS解析过程:(1)当客户机提出查询请求时,首先在本地计算机的缓存中查找,如果在本地无法查询信息,则将查询请求发给DNS服务器(2)首先客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则进行此记录进行解析,如果没有区域信息可以满足查询要求,服务器在本地缓存中查找(3)如果本地服务器不能在本地找到客户机查询的信息,将客户机请求发送到根域名DNS服务器(4)根域名服务器负责解析客户机请求的根域名部分,它将包含下一级域名信息的DNS服务器地址地址返回给客户机的DNS服务器地址(5)客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域名的DNS服务器地址(6)按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应IP地址信息(7)客户机的本地DNS服务器将递归查询结构返回客户机(8)客户机利用从本地DNS服务器查询得到的IP访问目标主机,就完成了一个解析过程(9)同时客户机本地DNS服务器更新其缓存表,客户机也更新期缓存表,方便以后查询3.DNS处于IP分层结构的应用层,是一种应用层协议,DNS协议数据单元2封装在UDP数据报文中,DNS服务器端使用公用端口号为53(使用UDP协议0x11)2.DNS报文协议结构;标识标志问题数资源记录数授权资源记录数额外资源记录数查询问题回答(资源记录数可变)授权(资源记录数可变)额外资源记录数(资源记录数可变)该报文是由12字节的首部和4个长度可变的字节组成标识字段:占用两个字节,由客户程序设置,并由服务器返回结果标志字段:该字段占两个字节长,被细分成8个字段:QR1Opcode4AA1TC1RD1RA1Zero3Rcode4QR:1bits字段,0表示查询报文,1表示响应报文Opcode:4bits字段,通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)AA:1bits标志表示授权回答(authoritiveanswer),该名字服务器是授权于该领域的TC:1bits字段,表示可截(truncated),使用UDP时,它表示当应答的总长度超过512字节时,只返回前512个字节RD:1bits字段,表示期望递归,该比特能在一个查询中设置,并在一个响应中返回,这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询,如果该位为0,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询的其他名字服务器列表,这称为迭代查询(期望递归)RA:1bits字段,表示可用递归,如果名字服务器支持递归查询,则在响应中将该bit置为1(可用递归)zero:必须为0rcode:是一个4bit的返回码字段,通常值为0(没有差错)和3(名字差错),名字差错只有从一个授权名字服务器上返回,它表示在查询中指定的域名不存在随后的4个bit字段说明最后4个变长字段中包含的条目数,对于查询报文,问题数通常是1,其他三项为0,类似的,对于应答报文,回答数至少是1,剩余两项可以使0或非05.DNS查询报文中每个查询问题的格式01631查询名查询类型查询类3查询名:要查找的名字查询类:通常值为1,表示是互联网的地址,也就是IP协议族的地址查询类型:有很多种查询类型,一般最常用的查询类型是A类型(表示查找域名对应的IP地址)和PTR类型(表示查找IP地址对应的域名)查询名为要查找的名字,它由一个或者多个标示符序列组成,每个标示符已首字符字节数的计数值来说明该表示符长度,每个名字以0结束,计数字节数必须是0~63之间,该字段无需填充字节,如:gemine.tuc.noao.edu实验步骤1.打开Wireshark,设置好过滤器(1).打开后选择capture,后选择interfaces;(2).接着选择有数据变动的网络连接,后选option;(3)在Filter里输入udpport53;2.使用命令提示符输入nslookup查找地址,4分析Wireshark捕获的数据包;具体分析如下:1.第一帧:由本地PC机IP地址为182.1.63.149发送报文给本地DNS服务器219.229.240.19的反向查询,用于查询本地服务器的名字,具体协议如下:5报文标识为1;标志为1;问题数1;回答数0;权威RR为0;附加RR为0;询问IP地址为219.229.240.19的权威域名,type类型为PTR;第二帧是本地DNS服务器响应报文,包含了查询结果,即本地DNS服务器的名字:权威回答数1;本地DNS服务器的名字为dns.jxnu.edu.cn附加RR回答了本地域名服务器域名对应的IP地址;第三帧用于客户端发送给本地DNS服务器的请求报文,用于请求域名服务器的响应报文,包含了回答地址其中,权威RR回答了IP地址,别名等信息;二、Http协议分析:生存时间别名7实验目的1.分析http1.0和1.1之间的区别(持续连接和非持续连接,流水线和非流水线)。2.分析http的请求报文和响应报文的格式。3.验证Web缓存。4.验证cookie的存在。5.验证http的明文传输特性。实验原理HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(useragent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(originserver)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnel)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如HTTP/1.1200OK,以及返回的内容,如请求的文件、错误消息、或者其它信息注:取自维基百科实验步骤1.设置协议分析软件Wireshark的过滤器,只捕获http的报文;1).打开Wireshark后选择capture,后选择interfaces2).接着选择有数据变动的网络连接,后选择option3).在Filter里输入tcpport8082.打开浏览器,访问不同的网站,抓取不同的http报文,本实验捕获访问百度网站进行分析,在浏览器输入网址后,点击抓包按钮,开始抓包请求方式:GET,HTTP版本为1.1浏览器类型是MOZILA/5.09内容的获取:获取页面文档阶段上传浏览器缓存cookie内容为加密的用户名,密码等状态码:200回应内容:OK时间2013年9月30日。。。最终收到完整的页面103.登陆检测http是否为明文登陆4.Http1.0和Http1.1的区别HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。此外,由于大多数网页的流量都比较小,一次TCP连接很少能通过slow-start区,不利于提高带宽利用率。HTTP1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。例如:一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。在HTTP/1.0中,要建立长连接,可以在请求消息中包含Connection:Keep-Alive头域,如果服务器愿意维持这条连接,在响应消息中也会包含一个Connection:Keep-Alive的头域。同时,可以加入一些指令描述该长连接的属性,如max,timeout等。从这一帧,可以得知登录密码是否为明文本处输入,用户名:007;密码:008账号:007;密码008所以http是明文传输