计算机网络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。