计算机网络ethereal实验

  • 格式:doc
  • 大小:440.00 KB
  • 文档页数:5

第1页 共9页

计算机网络

实验一

一、 实验目的

通过实验深入了解数据包分析,并且学会有ethereal进行抓包,掌握在ethereal中查看数据,从而认识网络协议分析器。

二、 实验内容

我根据实验的环境,将实验分为两个部分,一个是在控制台输入命令行控制,另一个是在ethereal软件中操作,并对得到的实验结果进行分析。这里面会有我自己设计的独到的实验内容,也有我对抓包情况的分析。

三、 实验过程

1.CMD操作:

1) nslookup命令查询域名服务器。

会返回一个ip地址,即域名服务器的地址。

2) Ipconfig获取ip信息。

在这里可以获取IP地址,子网掩码,以及网管等信息。

3) 针对telnet命令行的测试:

链接百度的服务器,端口号是80

一旦成功建立连接,cmd会出现一个没有任何字符显示的黑框,这个时候输入get请求报文,格式如下:

GET /index.html HTTP/1.0

输入的格式,大小写不能够出现任何错误,输入内容虽被读取,但是并不回显。

两次按下回车后,将出现如下显示: 第2页 共9页

看到中间的“百度一下你就知道”就知道这是百度首页的HTML。

需要注意的是,此时服务器返回的是200, 即成功(OK)。

如果向谷歌服务器请求链接,情况将大为不同。

连接上服务器后,可以手动向服务器发送报文,如果输入格式正确可以得到服务器的响应:即发送一个网页页面的报文到cmd:

GET /index.html HTTP/1.0

由于中国没有谷歌的服务器,所以将会出现位置转移。由URL可以看出它自动定位到了最近的香港的服务器。 第3页 共9页

2.Ethereal操作:

无论是TCP,HTTP还是 DNS的Ethereal Lab实验都可以通过一次抓包完成,关键是要知道如何过滤到有用的和需要的信息。

对于一次抓包结果,显示如下:

在option中进行相应的设置,然后start抓包,结果如上。

彩色部分显示的是按照时间排布的接受到的包的最基本信息; 第4页 共9页

如果选中一个包,则下面灰色部分显示的是不同层的信息;

最下面是使用16进制输出信息的内容。

对某些重要信息的详细解释如下:

1)三次握手。

第一次握手:建立连接时,本机发送syn(即序列号)到服务器,seq=0(seq为随机的或默认的),进入syn_send状态,等待进行服务器确认。

第二次握手:服务器收到syn,必须确认syn,即发送一个ack(ack为请求建立连接方的seq号+1),同时也发送一个syn(syn+ack)包,进入syn_recv状态。

第三次握手:本机收到服务器的syn+ack包后,向服务器发送确认ack(ack为服务器的seq号+1)包,发送完毕后,二者都进入established状态,三次握手完成。

完成三次握手,开始进行数据传输。

上图是打开搜狗网页的显示。

第一行,是本机向服务器发送链接请求SYN

第二行,是服务器向本机发送的应答SYN,ACK

第三行,是本机向服务器发送的收到应答,ACK

至此,是三次握手的数据传送

第四行,客户端向服务器发送get请求

第五行,表示服务器接收到客户端的请求

2)连接结束的时候,会发出[FIN]信号,表示断开连接。

3)请求报文。

对于post请求:

可以在下面看到对应的报文详细内容,

第5页 共9页

在传输层会看到端口号,序列号,应答号,首部长度等信息

不同层的信息都可以悉数获取,这里就不一一列举了。

4)返回信息。

对于一个网页页面的请求(get),200表示成功,说明页面能够正常显示。

如果网页中有很多元素,他们不是一次性获取的,而是一个个依次获取。

Get的参数直接写在URL中,在很多网址中都可以看到。比如以下这条语句就是获取搜狗页面中一个gif图片的请求语句,可以在参数中直接看出来。

如果数据量大,则提交的时候需要用到post。