计算机网络:利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析 ;利用ethereal分析协议HTTP、FTP和DNS

阅读: 评论:0

计算机网络:利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析 ;利用ethereal分析协议HTTP、FTP和DNS

计算机网络:利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析 ;利用ethereal分析协议HTTP、FTP和DNS

目录

  • 实验内容
  • 实验目的
  • 实验预备知识
  • 实验过程描述
    • 实验一:HTTP GET/response交互
    • 实验二:Ethereal分组俘获
    • 实验三:获取长文件
    • 实验四:嵌有对象的HTML文档
    • 实验五:HTTP认证
    • 实验六:跟踪DNS
    • 实验七
    • 实验八
    • 实验九
  • 实验结果
    • 实验一结果
    • 实验二结果
    • 实验三实验结果
    • 实验五结果
    • 实验六跟踪DNS结果
    • 实验七实验结果
    • 实验八实验结果
    • 实验九实验结果
  • 实验当中问题及解决方法

实验内容

  1. 利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析
  2. 利用ethereal分析协议HTTP、FTP和DNS

实验目的

1、 分析HTTP协议
2、 分析DNS协议
3、 分析TCP套接字的实现及UDP套接字的实现

实验预备知识

  1. HTTP协议
  2. DNS协议
  3. TCP报文
  4. UDP报文

实验过程描述

实验一:HTTP GET/response交互

(1) 启动Web browser。
(2) 启动Ethereal分组嗅探器。在窗口的显示过滤说明处输入“http”
(3) 开始Ethereal分组俘获。
(4) 在打开的Web browser窗口中输入一下地址(浏览器中将显示一个只有一行文字的非常简单的HTML文件):
.html
(5) 停止分组俘获。
抓到两个包如下:

实验二:Ethereal分组俘获

(1) 启动浏览器,清空浏览器的缓存
(2) 启动Ethereal分组俘获器。开始Ethereal分组俘获。
(3) 在浏览器的地址栏中输入以下URL: .html
(4) 在浏览器中重新输入相同的URL
(5) 停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”
实验结果如下:

实验三:获取长文件

1.启动浏览器,将浏览器的缓存清空。
2.启动Ethereal分组俘获器。开始Ethereal分组俘获。
3.在浏览器里输入
.html
浏览器将显示一个相当大的美国权力法案。
4.停止Ethereal分组俘获,在显示过滤筛选说明处输入http
实验结果如下:

实验四:嵌有对象的HTML文档

1.启动浏览器,将浏览器的缓存清空。
2.启动Ethereal分组俘获器。开始Ethereal分组俘获。
3.在浏览器的地址栏中输入以下URL: .html,浏览器将显示一个具有两个图片的短HTTP文件
4.停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
实验结果:

实验五:HTTP认证

1.启动浏览器,将浏览器的缓存清空。
2.启动Ethereal分组俘获器。开始Ethereal分组俘获。
3.在浏览器的地址栏中输入以下URL: .html,浏览器将显示一个HTTP文件,输入所需要的用户名和密码(用户名:eth-students,密码:networks)。
4.停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”
实验结果:

实验六:跟踪DNS

  1. 以管理员身份进入Dos环境,用ipconfig /flushdns清空主机上DNS缓存
  2. 启动浏览器,将浏览器的缓存清空
  3. 启动Ethereal分组俘获器,在显示过滤筛选说明处输入“ip.addr==10.236.134.77”
  4. 开始Ethereal分组俘获
  5. 在浏览器的地址栏中输入:
  6. 停止分组俘获

实验结果:

实验七

1.开始Ethereal分组俘获。
2.在DOS上执行命令:nslookup www.mit.edu。
3.停止分组俘获。
实验结果:

实验八

重复上面的实验,只是将命令替换为:nslookup –type=NS mit.edu

实验九

重复上面的实验,只是将命令替换为:nslookup kr bitsy.mit.edu
结果如下:

实验结果

实验一结果



1.你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少?
我的浏览器和服务器所运行的HTTP的版本都是HTTP1.1
在报文里找到如下字段:

2.你的浏览器向服务器指出它能接收何种语言版本的对象?
zh-CN
在报文里找到如下字段:


3. 你的计算机的IP地址是多少?服务器gaia.cs.umass.edu的IP地址是多少?
我的IP是10.236.134.77 服务器的IP是128.119.245.12

4.从服务器向你的浏览器返回的状态代码是多少?
200

5.你从服务器上所获取的HTML文件的最后修改时间是多少?

6.返回到你的浏览器的内容一共多少字节?

126字节

实验二结果


7.分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求报文中,是否有一行是:IF-MODIFIED-SINCE?
没有

8.分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?
明确返回了

371字节,内容如下

9.分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么?

浏览器再次请求服务器的时候,包含if-Modified-Since:,后面跟着的信息是在缓存中获得的最后修改时间。

10.服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。

状态码是:304
没有返回,因为服务器把收到的if-Modified-Since和Last-Modified做对比,一致,说明没有被修改,就返回304浏览器只需要从缓存中获取信息即可。

实验三实验结果


11.你的浏览器一共发出了多少个HTTP GET请求?
一个 GET请求

  1. 承载这一个HTTP响应报文一共需要多少个data-containing TCP报文段?
    四个 如下:

    13.与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么? 200 OK

实验四实验结果:

14.你的浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?
发出了三个HTTP GET请求,目的地址的IP:128.119.245.12
;128.119.245.12;159.182.31.51

15.浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。
串行下载,看下图所示抓到的包,都是一个HTTP GET一个响应报文再下一个HTTP GET…按先后排序的,所以是串行。

实验五结果


16.对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)?
状态码:401 状态短语:Unauthorized

  1. 当浏览器发出第二个HTTP GET请求时,在HTTP GET报文中包含了哪些新的字段?
    Authorization和Credentials

实验六跟踪DNS结果


(18)定位到DNS查询报文和查询响应报文,这两种报文的发送是基于UDP还是基于TCP的?
都是基于UDP的


(19)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?des-port:53 src-port:51036

(20)DNS查询报文发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)决定你主机的本地DNS服务器的IP地址。这两个地指相同吗?
DNS报文发送的目的地的IP:211.137.191.26


发现相同
(21)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
两个查询报文,一个是A类查询(IPv4),一个是AAAA类查询(IPv6),查询报文不包含“answers”



(21)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?提供了4个,具体包含如下:

(22)考虑一下你的主机发送的subsequent(并发)TCP SYN分组, SYN分组的目的IP地址是否与在DNS查询响应报文中提供的某个IP地址相对应?
看这个AAAA类的DNS查询响应报文中的地址,可以和SYN分组的目的地址对应

如下:

(24)打开的WEB页中包含图片,在获取每一个图片之前,你的主机发出新的DNS查询了吗?
没有

实验七实验结果


(25)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?
DNS查询报文的目的端口号和DNS查询响应报文的源端口号都是 53

(26)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
目的IP
是默认的本地DNS服务器的地址,因为抓包前没有清DNS缓存,上个实验访问过一次了

(27)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
查询报文有A类的也有AAAA类的,查询报文不包含answers
(28)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?提供了三个answers,内容如下:

实验八实验结果


(29)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
目的IP是211.137.191.26是本地DNS服务器地址
(30)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?NS类的,不包含
(31)检查DNS查询响应报文,其中响应报文提供了哪些MIT名称服务器?响应报文提供这些MIT名称服务器的IP地址了吗?如下图,没有提供IP

实验九实验结果


(32)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?如果不是,这个IP地址相当于什么?DNS查询报文发送的目的地的IP见上图
本地DNS服务器:

从抓到的包来看DNS查询报文是先向三个本地DNS服务器发,但是由于抓包前清空了本地DNS缓存,所以返回的响应报文里面没有answers,然后,发现DNS查询报文又向IP为18.72.0.3服务器发包。

(33)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
向本地DNS服务器发送的DNS查询报文有A类的也有AAAA类的,不包含answers。向18.72.0.3发送的DNS查询报文为PTR类的还有A类和AAAA类的,不包含answers。

(34)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
有一个answers 内容如下:

实验当中问题及解决方法

1、不明白什么是DNS的查询类型
解决:百度
DNS的查询类型有20种,比较常用的查询类型有有A,NS,CNAME,PTR,MX等五种类型。
1)A:由DNS域名到IP地址的查询,即正向查询,编程中由函数gethostbyname实现。
2)PTR:由IP到域名的查询,即逆向查询,编程中由函数gethostbyaddr。
3)NS:查询解析的名字服务器(Name server)。
4)CNAME:查询DNS的别名。
5)MX:邮箱服务器查询。

2. 在做实验八实验九的时候,总是出现DNS请求超时解析不不来的问题。如下:

解决方法:更换DNS服务器
Ipconfig /all 查到DNS服务器有四个——2001:da8:7007:107::66
;2001:da8:7007:107::77;211.137.191.26;202.102.154.3
每个试一遍发现有一个好用的。

4. 安装java虚拟机,运行TCPClient和TCPServer和UDP Client和UDP Server进行相应的捕包,出现了下面的报错;

原因是看TCP Server代码,服务器端口是一直开着的,客户端收到大写转小写就把端口关了,如果重复运行TCPServer.java的话会报错,因为端口被重复多次使用,解决方法就是换一个端口号。
5. 运行TCPClient和TCPServer和UDP Client和UDP Server进行相应的捕包,发现用校园网不行,得用自己手机的热点才能捕到包
6. 如果运行TCPClient和TCPServer在同一个主机上是捕不到包的,应该是进程间相互通信,不通过网络。

本文发布于:2024-01-31 20:30:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170670421731157.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计算机网络   协议   TCP   UDP   ethereal
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23