实验一 网络常用命令的使用及DNS层次查询、SMTP协议分析
利用分组嗅探器(ethereal)进行应用层协议分析
n 网络常用命令的使用
1、windows命令
不同的操作系统要用不同的命令进入命令行界面。
在Win9x/Me的开始菜单中的运行程序中键入"command"命令,可进入命令行界面。在Win2000/NT的开始菜单中的运行程序中键入"cmd"命令,可进入命令行界面。
开始——〉运行——〉键入cmd命令或command命令——〉回车
进入了命令行操作界面(DOS窗口),在DOS窗口中只能用键盘来操作。如下所示:
2、网络常用命令的作用与格式
了解和掌握网络常用命令将会有助于更快地检测到网络故障所在,从而节省时间,提高效率。网络命令数量比较多,在本次实验中我们学习的网络命令是为数不多的一些常用网络命令。
由于每个网络命令都有不同的作用,为了更好地掌握这些网络常用命令应该了解这些命令的基本格式,基本格式如下:
网络命令 参数1参数2参数3参数…
查看这些参数的方法是在网络命令后加“/?”,如要查看ping命令的参数可以输入ping/?显示如下:
【实验目的】
1、掌握网络常用命令的使用;
2、利用网络常用命令对网络中常见现象进行分析判断。
【实验内容】
1、掌握PING命令的基本使用方法(包括参数的使用),对网络常见故障利用命令进行分析判断:
Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。
如果执行Ping不成功,则可以预测故障出现在以下几个方面:网线故障,网络适配器配置不正确,IP地址不正确。如果执行Ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,Ping成功只能保证本机与目标主机间存在一条连通的物理路径。
命令格式:
ping IP地址或主机名 [-t] [-a] [-n count] [-l size]
常用参数含义:
-t不停地向目标主机发送数据;
-a 以IP地址格式来显示目标主机的网络地址 ;
-n count 指定要Ping多少次,具体次数由count来指定 ;
-l size 指定发送到目标主机的数据包的大小。
2、用Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间,分析网络延时产生的原因。
Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。
命令格式:
tracert IP地址或主机名 [-d][-h maximumhops][-j host_list] [-w timeout]
参数含义:
-d 不解析目标主机的名字;
-h maximum_hops 指定搜索到目标地址的最大跳跃数;
-j host_list 按照主机列表中的地址释放源路由;
-w timeout 指定超时时间间隔,程序默认的时间单位是毫秒。
例如大家想要了解自己的计算机与目标主机www.163.com之间详细的传输路径信息,可以在MS-DOS方式输入www.163.com。
如果我们在Tracert命令后面加上一些参数,还可以检测到其他更详细的信息,例如使用参数-d,可以指定程序在跟踪主机的路径信息时,同时也解析目标主机的域名。
3、利用Netstat命令了解网络的整体使用情况。显示当前正在活动的网络连接的详细信息,例如显示网络连接、路由表和网络接口信息,统计目前总共有哪些网络连接正在运行。
Netstat命令可以帮助网络管理员了解网络的整体使用情况。它可以显示当前正在活动的网络连接的详细信息,例如显示网络连接、路由表和网络接口信息,可以统计目前总共有哪些网络连接正在运行。
利用命令参数,命令可以显示所有协议的使用状态,这些协议包括TCP协议、UDP协议以及IP协议等,另外还可以选择特定的协议并查看其具体信息,还能显示所有主机的端口号以及当前主机的详细路由信息。
命令格式:
netstat [-r] [-s] [-n] [-a]
参数含义:
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。
在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此情况下,可执行程序的名称位于底部[]中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
-r 显示路由表。
-s 显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6的统计;-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
interval 重新显示选定的统计,各个显示间暂停的间隔秒数。
按 CTRL+C 停止重新显示统计。如果省略,则 netstat将打印当前的配置信息一次。
4、利用IPCONFIG命令显示所有当前的TCP/IP网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。 使用不带参数的IPCONFIG显示所有适配器的 IP 地址、子网掩码、默认网关。
命令格式:
Ipconfig[/all][/batch file][/renew all][/release all][/renew n][/release n]
参数含义:
/? 显示帮助信息
/all 显示现时所有网络连接的设置
/release 释放某一个网络上的IP位置
/renew 更新某一个网络上的IP位置
/flushdns 把DNS解析器的暂存内容全数删除
5、利用ARP确定对应IP地址的网卡物理地址。查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)
命令格式:
arp[-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]
参数含义:
-a[ InetAddr] [ -N IfaceAddr] 显示所有接口的当前 ARP 缓存表。要显示特定 IP 地址的 ARP 缓存项,请使用带有 InetAddr 参数的 arp -a,此处的 InetAddr 代表 IP 地址。如果未指定 InetAddr,则使用第一个适用的接口。要显示特定接口的 ARP 缓存表,请将 -N IfaceAddr 参数与 -a 参数一起使用,此处的 IfaceAddr 代表指派给该接口的 IP 地址。-N 参数区分大小写。
-g[ InetAddr] [ -N IfaceAddr] 与 -a 相同。
-d InetAddr [IfaceAddr] 删除指定的 IP 地址项,此处的 InetAddr 代表 IP 地址。对于指定的接口,要删除表中的某项,请使用 IfaceAddr 参数,此处的 IfaceAddr 代表指派给该接口的 IP 地址。要删除所有项,请使用星号 (*) 通配符代替 InetAddr。
-s InetAddr EtherAddr [IfaceAddr] 向 ARP 缓存添加可将 IP 地址 InetAddr 解析成物理地址 EtherAddr 的静态项。要向指定接口的表添加静态 ARP 缓存项,请使用 IfaceAddr 参数,此处的 IfaceAddr 代表指派给该接口的 IP 地址。
/? 在命令提示符下显示帮助。
6、课上补充讲解其他网络命令的使用。
【实验方式】现场参观并由实验指导教师讲解、演示;分组讨论与实践。
【实验地点】学院实验室。
【实验报告】1 在实验报告中写出网络常用命令的操作过程及效果,分析并总结实验中遇到的问题,写出实验体会。
n 2 DNS层次查询、SMTP协议分析
【实验前需要学习掌握的知识】
1、掌握DNS基本构成原理及三层结构。
2、电子邮件系统的构成,包含在发送方、接收方进行邮件传递涉及的各种协议及协议构成,区分SMTP协议与邮件消息格式的异同点。
3、了解常用捕包软件。捕包软件不但可以分析数据包的流向,也可以对数据包的内容进行监听,可以观察TCP/IP协议族中应用层、传输层、网络层、数据链路层和有关网络安全的各种协议的活动。
【实验目的】
1、了解和掌握DNS层次结构,利用NSLOOKUP命令对DNS层次结构进行访问;
2、了解电子邮件系统发送及接受处理过程,对SMTP协议进行分析;
3、掌握捕包软件ethereal的使用,了解网络协议实体间进行交互以及报文交换的情况;
【实验内容】
1、熟练掌握nslookup命令,并对nslookup命令的参数进行熟练掌握。
具体参数: nslookup –qt=类型 目标域名
注意qt必须小写。类型可以是一下字符,不区分大小写:
A 地址记录(Ipv4)
AAAA 地址记录(Ipv6)
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO 硬件配置记录,包括CPU、操作系统信息
ISDN 域名对应的ISDN号码
MB 存放指定邮箱的服务器
MG 邮件组记录
MINFO 邮件组和邮箱的信息记录
MR 改名的邮箱记录
MX 邮件服务器记录
NS 名字服务器记录
PTR 反向记录(从IP地址解释域名)
RP 负责人记录
RT 路由穿透记录
SRV TCP服务器信息记录
TXT 域名对应的文本信息
X25 域名对应的X.25地址记录
实验具体内容要求:到网上查找13个根名称的IP;任选一个根名称服务器,利用NSLOOKUP,在根名称服务器、顶级域名称服务器、权威名称服务器上,手动逐级进行NDS解析,并进行记录和分析;在本地名称服务器,利用NSLOOKUP,手动逐级进行NDS解析,并进行记录和分析。
2、 利用TELNET进行SMTP的邮件发送。
具体要求:连接smtp服务器->发命令"HELO <host_name>" ->发命令"AUTH LOGIN",然后服务器会以base64编码后的形式提示输入用户名->以base64编码后的形式输入用户名,如果用户名合法,服务器提示输入口令形式为“334 ******”->以base64编码后的形式输入口令。如果检验正确,服务器会返回"235 Authentication successful";编辑电子邮件(注意区分SMTP协议格式与邮件格式),利用SMTP协议进行收发电子邮件;观察并分析收发过程及协议信息。编码软件见Centri64.zip。利用TELNET进行POP3邮件接收。
简单示例:
TELENT 邮件服务器IP 25
HELO LIU
AUTH LOGIN
*******(输入以base64编码后用户名)
***********(输入以base64编码后密码)
MAIL FROM:<发送方的邮件地址>
RCPT TO:<接收方的邮件地址>
DATA
FROM:发送方邮箱
TO:接收方邮箱
SUBJECT:LIU
liuyang like Philatelic!
.(这个点与回车,必须的)
QUIT
3、熟练掌握抓包软件ethereal。
要深入理解网络协议,需要观察它们的工作并使用它们,即观察两个协议实体之间交换的报文序列,探究协议操作的细节,使协议实体执行某些动作,观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。
观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。一个分组嗅探器俘获(嗅探)由你的计算机发送和接收的报文。一般情况下,分组嗅探器将存储和显示出被俘获报文的各协议字段的内容。图1显示了一个分组嗅探器的结构。
图1右边是计算机上正常运行的协议(w在这里是因特网协议)和应用程序(如:web浏览器和ftp客户端)。分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。分组俘获库(packet capture library)接收计算机发送和接收的每一个链路层帧的拷贝。高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP等)交换的报文都被封装在链路层帧中,并沿着物理媒体(如以太网的电缆)传输。图1假设所使用的物理媒体是以太网,并且上层协议的报文最终封装在以太网帧中。
分组嗅探器的第二个组成部分是分组分析器。分组分析器用来显示协议报文所有字段的内容。为此,分组分析器必须能够理解协议所交换的所有报文的结构。例如:我们要显示图1中HTTP协议所交换的报文的各个字段。分组分析器理解以太网帧格式,能够识别包含在帧中的IP数据报。分组分析器也要理解IP数据报的格式,并能从IP数据报中提取出TCP报文段。然后,它需要理解TCP报文段,并能够从中提取出HTTP消息。最后,它需要理解HTTP消息。
Ethereal是一种可以运行在Windows, UNIX, Linux等操作系统上的分组分析器。Ethereal是免费的,可以从Http://www.ethereal.com得到。
运行ethereal程序时,其图形用户界面如图2所示。最初,各窗口中并无数据显示。ethereal的界面主要有五个组成部分:
命令菜单(command menus):命令菜单位于窗口的最顶部,是标准的下拉式菜单。最常用菜单命令有两个:File、Capture。File菜单允许你保存俘获的分组数据或打开一个已被保存的俘获分组数据文件或退出ethereal程序。Capture菜单允许你开始俘获分组。
俘获分组列表(listing of captured packets):按行显示已被俘获的分组内容,其中包括:ethereal赋予的分组序号、俘获时间、分组的源地址和目的地址、协议类型、分组中所包含的协议说明信息。单击某一列的列名,可以使分组列表按指定列进行排序。在该列表中,所显示的协议类型是发送或接收分组的最高层协议的类型。
分组首部明细(details of selected packet header):显示俘获分组列表窗口中被选中分组的头部详细信息。包括:与以太网帧有关的信息,与包含在该分组中的IP数据报有关的信息。单击以太网帧或IP数据报所在行左边的向右或向下的箭头可以展开或最小化相关信息。另外,如果利用TCP或UDP承载分组,ethereal也会显示TCP或UDP协议头部信息。最后,分组最高层协议的头部字段也会显示在此窗口中。
分组内容窗口(packet content):以ASCII码和十六进制两种格式显示被俘获帧的完整内容。
显示筛选规则(display filter specification):在该字段中,可以填写协议的名称或其他信息,根据此内容可以对分组列表窗口中的分组进行过滤。
实验步骤
(1)启动主机上的web浏览器。
(2)启动ethereal。会看到如图2所示的窗口,只是窗口中没有任何分组列表。
(3)开始分组俘获:选择“capture”下拉菜单中的“Start”命令,会出现如图3所示的“Ethereal: Capture Options”窗口,可以设置分组俘获的选项。
(4)在实验中,可以使用窗口中显示的默认值。在“Ethereal: Capture Options”窗口的最上面有一个“interface”下拉菜单,其中显示计算机所具有的网络接口(即网卡)。当计算机具有多个活动网卡时,需要选择其中一个用来发送或接收分组的网络接口(如某个有线接口)。随后,单击“ok”开始进行分组俘获,所有由选定网卡发送和接收的分组都将被俘获。
(5)开始分组俘获后,会出现如图4所示的分组俘获统计窗口。该窗口统计显示各类已俘获分组的数量。在该窗口中有一个“stop”按钮,可以停止分组的俘获。但此时最好不要停止俘获分组。
(6)在运行分组俘获的同时,在浏览器地址栏中输入某网页的URL,如:
http://www2.sdai.edu.cn为显示该网页,浏览器需要连接www2.sdai.edu.cn的服务器,并与之交换HTTP报文,以下载该网页。包含这些HTTP报文的以太网帧将被Ethereal俘获。
(7)当完整的页面下载完成后,单击Ethereal俘获窗口中的stop按钮,停止分组俘获。此时,分组俘获窗口关闭。Ethereal主窗口显示已俘获的你的计算机与其他网络实体交换的所有协议报文,其中一部分就是与www2.sdai.edu.cn服务器交换的HTTP报文。此时主窗口与图2相似。
(8)在显示筛选规则中输入“http”,单击“apply”,分组列表窗口将只显示HTTP协议报文。
(9)选择分组列表窗口中的第一条http报文。它应该是你的计算机发向www2.sdai.edu.cn服务器的HTTP GET报文。当你选择该报文后,以太网帧、IP数据报、TCP报文段、以及HTTP报文首部信息都将显示在分组首部子窗口中。单击分组首部详细信息子窗口中向右和向下箭头,可以最小化帧、以太网、IP、TCP信息显示量,可以最大化HTTP协议相关信息的显示量。其结果与图5相似。
(10)退出Ethereal。
【实验方式】由实验指导教师讲解、演示;分组讨论与实践。
【实验地点】学院实验室。
【实验报告】在实验报告中写出DNS层次查询的实现过程、利用SMTP协议实现接发邮件的过程、回答捕包实验中所提问题。分析并总结实验中遇到的问题,写出实验体会。
(1)列出在第7步中分组列表子窗口所显示的所有协议类型。
(2)从发出HTTP GET报文到接收到HTTP OK响应报文共需要多长时间?(在默认的情况下,分组列表窗口中Time列的值是从Ethereal开始追踪到分组被俘获的总的时间数,以秒为单位。若要按time-of-day格式显示Time列的值,需选择View下拉菜单,再选择Time Display Format,然后选择Time-of-day。)
(3)你主机的IP地址是什么?你所访问的主页所在服务器的IP地址是什么?
(4)写出两个第9步所显示的HTTP报文头部行信息。
n
3利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析
安装java虚拟机。熟悉捕包软件的使用,进行相应的捕包。具体程序上课时拷贝。
TCP客户端套接字程序1
import java.io.*;
import java.net.*;
class TCPClient{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser =
new BufferedReader(
new InputStreamReader(System.in));
Socket ClientSocket = new Socket("你同学机器的IP",6789);
DataOutputStream outToServer =
new DataOutputStream(
ClientSocket.getOutputStream());
BufferedReader inFromServer =
new BufferedReader(new InputStreamReader(
ClientSocket.getInputStream()));
sentence =inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER:"+
modifiedSentence);
ClientSocket.close();
}
}
TCP服务器端套接字程序2
import java.io.*;
import java.net.*;
class TCPServer{
public static void main(String argv[]) throws Exception
{
String ClientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true){
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(
connectionSocket.getInputStream()));
DataOutputStream outToClient =
new DataOutputStream(
connectionSocket.getOutputStream());
ClientSentence = inFromClient.readLine();
capitalizedSentence =
ClientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
UDP客户端套接字程序3
import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("你同学机器的IP");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,
IPAddress,9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence=
new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
UDP服务器端套接字程序4
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,
IPAddress,port);
serverSocket.send(sendPacket);
}
}
}
n
4利用ethereal分析协议HTTP、FTP和DNS
一、 实验目的
1、 分析HTTP协议
2、 分析DNS协议
二、 实验环境
与因特网连接的计算机网络系统;主机操作系统为windows;Ethereal、IE等软件。
三、 实验步骤
1、 HTTP GET/response交互
首先通过下载一个非常简单的HTML文件(该文件非常短,并且不嵌入任何对象)。
(1) 启动Web browser。
(2) 启动Ethereal分组嗅探器。在窗口的显示过滤说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
(3) 一分钟以后,开始Ethereal分组俘获。
(4) 在打开的Web browser窗口中输入一下地址(浏览器中将显示一个只有一行文字的非常简单的HTML文件):
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html
(5) 停止分组俘获。
窗口如图1所示。根据俘获窗口内容,回答“四、实验报告内容”中的1-6题。
图1分组俘获窗口
2、 HTTP 条件GET/response交互
(1) 启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单中的“Internet选项”命令,在出现的对话框中,选择“删除文件”)。
(2) 启动Ethereal分组俘获器。开始Ethereal分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file2.html,你的浏览器中将显示一个具有五行的非常简单的HTML文件。
(4) 在你的浏览器中重新输入相同的URL或单击浏览器中的“刷新”按钮。
(5) 停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的7-10题。
3、 获取长文件
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动Ethereal分组俘获器。开始Ethereal分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html,浏览器将显示一个相当大的美国权力法案。
(4) 停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的11-13题。
4、 嵌有对象的HTML文档
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动Ethereal分组俘获器。开始Ethereal分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file4.html,浏览器将显示一个具有两个图片的短HTTP文件
(4) 停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的14-15题。
5、 HTTP认证
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动Ethereal分组俘获器。开始Ethereal分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/ethereal-labs/protected_pages/HTTP-ethereal-file5.html,浏览器将显示一个HTTP文件,输入所需要的用户名和密码(用户名:eth-students,密码:networks)。
(4) 停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的16-17题。
6、 跟踪DNS
nslookup工具允许运行该工具的主机向指定的DNS服务器查询某个DNS记录。如果没有指明DNS服务器,nslookup将把查询请求发向默认的DNS服务器。其命令的一般格式是:
nslookup –option1 –option2 host-to-find dns-server
ipconfig命令用来显示你当前的TCP/IP信息,包括:你的地址、DNS服务器的地址、适配器的类型等信息。如果,要显示与主机相关的信息用命令:
ipconfig/all
如果查看DNS缓存中的记录用命令:
ipconfig/displaydns
要清空DNS缓存,用命令:
ipconfig /flushdns
运行以上命令需要进入MSDOS环境。
(1) 利用ipconfig命令清空你的主机上的DNS缓存。
(2) 启动浏览器,将浏览器的缓存清空。
(3) 启动Ethereal分组俘获器,在显示过滤筛选说明处输入“ip.addr==your_IP_address”(如:ip.addr==10.17.7.23),过滤器将会删除所有目的地址和源地址都与指定IP地址不同的分组。
(4) 开始Ethereal分组俘获。
(5) 在浏览器的地址栏中输入:http://www.ietf.org
(6) 停止分组俘获。
根据操作回答“四、实验报告内容”中的18-24题。
(7) 开始Ethereal分组俘获。
(8) 在www.mit.edu上进行nslookup(即执行命令:nslookup www.mit.edu)。
(9) 停止分组俘获。
根据操作回答“四、实验报告内容”中的25-28题。
(10) 重复上面的实验,只是将命令替换为:nslookup –type=NS mit.edu
根据操作回答“四、实验报告内容”中的29-31题。
(11) 重复上面的实验,只是将命令替换为:nslookup www.aiit.or.kr bitsy.mit.edu
根据操作回答“四、实验报告内容”中的32-34题。
四、 实验报告内容(全部问题必须实际操作并思考,可以选做8道题)
在实验的基础上,回答以下问题:
(1)你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少?
(2)你的浏览器向服务器指出它能接收何种语言版本的对象?
(3)你的计算机的IP地址是多少?服务器gaia.cs.umass.edu的IP地址是多少?
(4)从服务器向你的浏览器返回的状态代码是多少?
(5)你从服务器上所获取的HTML文件的最后修改时间是多少?
(6)返回到你的浏览器的内容以供多少字节?
(7)分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求报文中,是否有一行是:IF-MODIFIED-SINCE?
(8)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?
(9)分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么?
(10)服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。
(11)你的浏览器一共发出了多少个HTTP GET请求?
(12)承载这一个HTTP响应报文一共需要多少个data-containing TCP报文段?
(13)与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么?
(14)你的浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?
(15)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。
(16)对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)?
(17)当浏览器发出第二个HTTP GET请求时,在HTTP GET报文中包含了哪些新的字段?
(18)定位到DNS查询报文和查询响应报文,这两种报文的发送是基于UDP还是基于TCP的?
(19)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?
(20)DNS查询报文发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)决定你主机的本地DNS服务器的IP地址。这两个地指相同吗?
(21)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(22)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
(23)考虑一下你的主机发送的subsequent(并发)TCP SYN分组, SYN分组的目的IP地址是否与在DNS查询响应报文中提供的某个IP地址相对应?
(24)打开的WEB页中包含图片,在获取每一个图片之前,你的主机发出新的DNS查询了吗?
(25)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?
(26)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
(27)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(28)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
(29)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
(30)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(31)检查DNS查询响应报文,其中响应报文提供了哪些MIT名称服务器?响应报文提供这些MIT名称服务器的IP地址了吗?
(32)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?如果不是,这个IP地址相当于什么?
(33)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(34)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
实验二:利用分组嗅探器分析传输层与网络层协议
利用分组嗅探器分析数据链路层协议
n 利用分组嗅探器分析传输层与网络层协议
【实验前需要学习掌握的知识】
1、详细掌握TCP段结构。
2、详细掌握UDP段结构。
3、IP数据报结构
【实验目的】
1、了解传输层TCP/UDP协议构造;
2、了解网络层IP协议构造;
【实验内容】
1、对传输层协议TCP/UDP进行捕包分析并回答问题
俘获大量的由本地主机到远程服务器的TCP传输
(1)启动浏览器,打开http://gaia.cs.umass.edu/ethereal-labs/alice.txt网页,得到ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到你的主机上。
(2)打开http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html
窗口如下所示。
在Browse按钮旁的文本框中输入保存在你的主机上的文件ALICE'S ADVENTURES IN WONDERLAND的全名(含路径),此时不要按“Upload alice.txt file”按钮
(3)启动Ethereal,开始分组俘获。
(4)在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到gaia.cs.umass.edu服务器,一旦文件上传完毕,一个简短的贺词信息将显示在你的浏览器窗口中。
(5)停止俘获。
浏览追踪信息
(1)在显示筛选规则中输入“tcp”,你可以看到在你的主机和服务器之间传输的一系列的tcp和http报文,你应该能看到包含SYN报文的三次握手。也可以看到有你的主机向服务器发送的一个HTTP POST报文和一系列的“http continuation”报文。
(2)根据操作回答“实验报告”中的1-2题。
TCP基础
根据操作回答“实验报告”中的3-9题
TCP拥塞控制
(1)在Ethereal已俘获分组列表子窗口中选择一个TCP 报文段。选择菜单: Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)。你也许会看到如下所示的图。
根据操作回答“实验报告”中的10-11题。
2、对网络层协议IP进行捕包分析
注意分析网络层发送方和接收方IP地址关系,推荐采用对tracert命令进行捕包分析。
【实验方式】实验指导教师讲解演示,每位同学上机实验,并与指导教师讨论。
【实验地点】学院实验室。
下载共享版本http://www.pingplotter.com/安装pingplotter标准版(你有一个30天的试用期),通过对你所喜欢的站点执行一些traceroute来熟悉这个工具。ICMP回复请求消息的大小可以在pingplotter中设置:Edit->Options->Packet,在packet size字段中默认包的大小是56字节。pingplotter发送一系列TTL值渐增的包时,Trace时间间隔的值和间隔的个数在pingplotter中能够设置。按下面步骤做:
1.打开Ethereal,开始包捕获,然后在Ethereal包捕获的选择屏幕上点击OK;
2.开启pingplotter,然后在“Address to Trace”窗口输入目的地目标的名字:
在“#of times to Trace”区域输入3。然后选择Edit->Options->Packet,确认在packet size字段的值为56,点OK。然后按下Trace按钮。
3.接下来,发送一组具有较长长度的数据包,通过Edit->Options->Packet在包大小区域
输入值为2000,点OK。接着按下Resume按钮;
4.再发送一组具有更长长度的数据包,通过Edit->Options->Packet在包大小区域输入值
为3500,点OK。接着按下Resume按钮;
5.然后我们停止Ethereal tracing;
根据操作回答“实验报告”中的12-25题
在实验的基础上,回答以下问题:(请在实验报告中TCP与IP各5道题回答)
(1) 向gaia.cs.umass.edu服务器传送文件的客户端主机的IP地址和TCP端口号是多少?
(2) Gaia.cs.umass.edu服务器的IP地址是多少?对这一连接,它用来发送和接收TCP报文段的端口号是多少?
(3) 客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的?
(4) 服务器向客户端发送的SYNACK报文段序号是多少?该报文段中,ACKnowledgement字段的值是多少?Gaia.cs.umass.edu服务器是如何决定此值的?在该报文段中,是用什么来标示该报文段是SYNACK报文段的?
(5) 包含HTTP POST命令的TCP报文段的序号是多少?
(6) 考虑在TCP连接中含有HTTP POST并把它作为第一个片段的TCP片段。在TCP连接(包括含有HTTP POST的片段)中最先的六个片段的序列号是多少?每一个片段是什么时候发送的?每一个片段接收到ACK是什么时候?请给出每一个TCP片段发送和确认被收到时的间隔,即六个片段中的每一个RTT值是多少?当接收到每一个ACK时的EstimatedRTT值是多少?假设对于第一个片段来说,EstimatedRTT值和标准的RTT值相同。
EstimatedRTT=(1-α)*EstimatedRTT+α*SampleRTT (假设α=0.125)可以知道如何计算即可
(7) 前六个TCP报文段的长度各是多少?
(8) 在整个跟踪过程中,接收端公示的最小的可用缓存空间是多少?限制发送端的传输以后,接收端的缓存是否仍然不够用?
(9) 在跟踪文件中是否有重传的报文段?进行判断的依据是什么?
(10) 利用Time-Sequence-Graph(Stevens) plotting工具,浏览由客户端向服务器发送的报文段序号和时间对应关系图。你能否辨别出TCP慢启动阶段的起止,以及在何处转入避免拥塞阶段?
(11) 阐述所测量到的数据与TCP理想化的行为有何不同?
(12) 选择你的电脑所发送的第一个ICMP请求消息,在包详细信息窗口扩展包的Internet协议部分。你的电脑的IP地址是多少?
(13) 在IP包头部,上层协议区域的值是多少?
(14) IP头部有多少字节?IP数据包的有效载荷是多少字节?解释你是怎样确定有效载荷的数量的?
(15) 这个IP数据包被分割了吗?解释你是怎样确定这个数据包是否被分割?接下来单击列名按IP源地址排序数据包,选择你的电脑发送的第一个ICMP请求消息,扩展显示IP协议的数据。
(16) 在包捕获列表窗口,你能看到在第一个ICMP下的所有并发的ICMP消息吗?
(17) 往同一IP的数据包哪些字段在改变,而且必须改变?为什么?哪些字段是保持不变的,而且必须保持不变?
(18) 描述一下在IP数据包的Identification字段的值是什么样的?
接下来找到通过最近的路由器发送到你的电脑去的ICMP的TTL溢出回复的系列,回答以下问题:
(19) Identification字段和TTL字段的值是多少?
(20) 所有的通过最近的路由器发送到你的电脑去的ICMP的TTL溢出回复是不是值都保持不变呢?为什么?
接下去研究一下分片,先按时间顺序排序数据包,找出在pingplotter中把包的大小改成2000后,你的电脑所发送的第一个ICMP请求消息。回答以下问题:
(21) 那个消息是否传送多于一个IP数据包的分片?看第一个被分割的IP数据包的片段,在IP头部有什么信息指出数据包已经被分割?在IP头部有什么信息指出这是否是第一个与后面片段相对的片段?这个IP数据包的长度是多少?
(22) 看被分割的IP数据包的第二个片段。在IP头部有什么信息指出这不是第一个数据包片段?有更多的片段吗?你是怎么知道的?和上一个分片的长度加起来是2000吗?
(23) 哪个字段在第一个和第二个片段之间的IP头部改变了?Identification变了吗
再找出在pingplotter中把包的大小改成3500后,你的电脑所发送的第一个ICMP请求消息。回答以下问题:
(24) 从原始的数据包中产生了多少片段?片偏移分别为多少?
(25) 在片段之中IP头部哪些字段改变了?Identification变了吗?
n
利用分组嗅探器分析数据链路层协议
【实验前需要学习掌握的知识】
以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。
两个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806。
hardware (硬件)和protocol (协议)用来描述ARP分组中的各个字段。例如,一个ARP请求分组询问协议地址(这里是IP地址)对应的硬件地址(这里是以太网地址)。
硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。
接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。
操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、R ARP请求(值为3)和R ARP应答(值为4)。这个字段必需的,因为ARP请求和ARP应答的帧类型字段值是相同的。
接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址(IP地址)、目的端的硬件地址和目的端的协议地址。注意,这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。
对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。
【实验目的】
了解数据链路层协议构造
【实验内容】
对数据链路层协议进行捕包分析并回答问题
俘获并分析以太网帧
(1)清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。
(2)启动Ethereal,开始分组俘获。
(3)在浏览器的地址栏中输入:http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html,浏览器将显示冗长的美国权力法案。
(4)停止分组俘获。首先,找到你的主机向服务器gaia.cs.umass.edu发送的HTTP GET报文的分组序号,以及服务器发送到你主机上的HTTP 响应报文的序号。其中,窗口大体如下。
选择“Analyze->Enabled Protocols”,取消对IP复选框的选择,单击OK。窗口如下。
(5)选择包含HTTP GET报文的以太网帧,在分组详细信息窗口中,展开Ethernet II信息部分。根据操作,回答“实验报告”中的1-5题
(6)选择包含HTTP 响应报文第一个字节的以太网帧,根据操作,回答“实验报告”中的6-10题
ARP分析
(1)利用MS-DOS命令:arp 或 c:\windows\system32\arp查看主机上ARP缓存的内容。根据操作,回答“实验报告”中的11题。
(2)利用MS-DOS命令:arp-d * 清除主机上ARP缓存的内容。
(3)清除浏览器缓存。
(4)启动Ethereal,开始分组俘获。
(5)在浏览器的地址栏中输入:http://gaia.cs.umass.edu/ethereal-labs/ HTTP-ethereal-lab-file3.html,浏览器将显示冗长的美国权力法案。
(6)停止分组俘获。选择“Analyze->Enabled Protocols”,取消对IP复选框的选择,单击OK。窗口如下。根据操作,回答“实验报告”中的12-15题。
计算机网络与通信实验报告(二) |
||||||
学 号 |
姓 名 |
班 级 |
报告日期 |
|||
|
|
|
|
|||
实验内容 |
实验二 利用分组嗅探器分析传输层与网络层协议 利用分组嗅探器分析数据链路层协议 |
|||||
实验目的 |
|
|||||
实验预备知识 |
|
|||||
实验过程描述 |
|
|||||
实验结果 |
|
|||||
实验当中问题 及解决方法 |
1、
2、
|
|||||
成绩(教师打分) |
优秀 |
良好 |
及格 |
不及格 |
计算机网络与通信实验报告(一) |
||||||
学 号 |
姓 名 |
班 级 |
报告日期 |
|||
|
|
|
|
|||
实验内容 |
实验一 网络常用命令的使用及DNS层次查询、SMTP协议分析 利用分组嗅探器(ethereal)进行应用层协议分析 一:网络常用命令的使用及DNS层次查询、SMTP协议分析;利用分组嗅探器(ethereal)进行应用层协议分析 二:DNS层次查询、SMTP协议分析 三:利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析 四:利用ethereal分析协议HTTP、FTP和DNS |
|||||
实验目的 |
一:学习网络常用命令的使用和分析; 二:1、了解和掌握DNS层次结构,利用NSLOOKUP命令对DNS层次结构进行访问; 2、了解电子邮件系统发送及接受处理过程,对SMTP协议进行分析; 3、掌握捕包软件ethereal的使用,了解网络协议实体间进行交互以及报文交换的情况; 三:学会使用ethereal软件分别对TCP套接字的实现及UDP套接字的实现捕包和分析,了解TCP和UDP的区别; 四:对HTTP、FTP和DNS有基本的认识,学会分析HTTP协议和DNS协议;
|
|||||
实验预备知识 |
一:1.了解cmd窗口的基本使用 2、网络常用命令的用法 3、计算机的基本操作 二:1、掌握DNS基本构成原理及三层结构。 2、电子邮件系统的构成,包含在发送方、接收方进行邮件传递涉及的各种协议及协议构成,区分SMTP协议与邮件消息格式的异同点。 3、了解常用捕包软件。捕包软件不但可以分析数据包的流向,也可以对数据包的内容进行监听,可以观察TCP/IP协议族中应用层、传输层、网络层、数据链路层和有关网络安全的各种协议的活动。 三:配置Java编程环境,掌握JDK和编辑器的基本操作,安装java虚拟机。熟悉捕包软件的使用,进行相应的捕包操作,具体程序使用现成的。 四:1.实验环境:与因特网连接的计算机网络系统;主机操系系统为windows;Ethereal、IE等软件;
3.Ethereal软件的基本使用; |
|||||
实验过程描述 |
一.网络常用命令的使用 1、在网上搜索并学习了ping命令的基本使用方法(包括参数的使用),对网络常见故障利用命令进行了解 2、用tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间,分析网络延时产生的原因。 3、利用netstat命令了解网络的整体使用情况。显示当前正在活动的网络连接的详细信息,例如显示网络连接、路由表和网络接口信息,统计目前总共有哪些网络连接正在运行。 4、利用ipconfig命令显示所有当前的TCP/IP网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。 使用不带参数的IPCONFIG显示所有适配器的 IP 地址、子网掩码、默认网关。 5、利用ARP确定对应IP地址的网卡物理地址。查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。 6、在网上了解相关其它知识 二、DNS层次查询、SMTP协议分析 1.DNS层次查询 (1)掌握nslookup命令使用方法,并对nslookup命令的参数进行熟练掌握。 (2)手动逐级进行NDS解析 先上维基查询13个根域名 尝试了两个ns.internic.net和ns.nasa.gov 只有后者能够有相关答复,问题在于逐步解析DNS 通过查询相关文章,发现很多博客都会使用dig命令去进行循环解析,使用nslookup的区别在于要自己找到所回复的信息中下一级的服务器ip然后逐步查询最后得到结果。 2、利用TELNET进行SMTP的邮件发送。 连接smtp服务器->发命令"HELO zeze" ->发命令"AUTH LOGIN",然后服务器以base64编码后的形式提示输入用户名->以base64编码后的形式输入用户名,如果用户名合法,服务器提示输入口令->以base64编码后的形式输入口令。服务器返回"235 Authentication successful";编辑电子邮件,利用SMTP协议进行收发电子邮件;观察并分析收发过程及协议信息。 3.按照教程使用Ethereal软件,关闭多余进程,开始打开网页捕包,停止捕包。 三、三、利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析 搭建配置java运行环境,java IDE ,学会命令Java运行和Javac编译-->运行程序进行分析; 四、利用ethereal分析协议HTTP、FTP和DNS 按照实验说明里的详细步骤依次操作,进行HTTP GET/response交互,HTTP 条件GET/response交互,获取长文件,HTTP认证,跟踪DNS |
|||||
实验结果 |
一、网络常用命令的使用 1.ping命令:
2.tracert命令
第1级路由是本地网关,第9级到第10级路由延时骤增,原因是分组正在经过海底光缆通向国外,之后的延时都比较大,超时现象也比较严重,此时的分组已经到达了国外,在国外的路由器上进行转发。 3.Ipconfig命令
4.netstat命令
查看路由表:
5.arp命令:
二、 DNS层次查询、SMTP协议分析 1.DNS层次查询 尝试了两个ns.internic.net和ns.nasa.gov 查询到根域名192.203.230.10,顶级域名192.55.83.30 权威名称服务器180.76.76.92 2.利用TELNET进行SMTP的邮件发送 以下是使用telnet和smtp实现邮件发送过程中使用的所有语句,根据提示按步调用语句 telnet smtp.hit.edu.cn 25 helo zeze auth login Sadsadsadsadsaxxxxx Asdsadasdxxxxxxxx MAIL FROM:<170400211@stu.hit.edu.cn> RCPT TO:<470057867@qq.com> data From:170400211@stu.hit.edu.cn To:470057867@qq.com Subject:test hello guys I am zeze good night .(点不能忘记) 3.访问哈工大校园网站www.hitwh.edu.cn IP 为222.194.15.6 本机IP为 172.26.26.3
从打开到加载完毕所花费的时间为0.259298S
三:利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析 由于没有先运行服务器导致了连接超时:
成功连接之后的结果:
客户端:
服务器端:
UDP 补包:
四:利用ethereal分析协议HTTP、FTP和DNS (1)打开简单html补包
·浏览器和所访问的服务器运行的都是HTTP1.1 ·zh-Hans-CN、zh-Hans; ·我的ip:10.241.7.201 服务器ip:128.119.245.12 ·200 ok ·Sat, 26 Oct 2019 05:40:02 2019.10.26 5:40:02 ·126 (2)
服务器明确了返回文件的内容 从报文中的Reassembled TCP Segments中可以得知 存在一行IF-MODIFIED-SINCE 该行后面跟的是需要返回的文件名 304 not modified 没有明确地返回文件的内容 总的字节只有293byte 而第一次返回的有784byte 并且在返回的内容内没有明确的Line-based text data部分
一共发出了两次请求
200 OK
一共发出了四次get请求 128.119.245.12 159.182.31.51 并行下载 这样可以不用每次都建立TCP连接,缩短下载时间
401 Unauthorized(text/html) Authorization: Basic ZXRoLXN0dWRlbnRzOm5ldHdvcms=\r\n
基于UDP协议 目的端口号53 查询端口号56715 64118
地址相同 A类型:指向ipv4地址和AAAA类型:指向ipv6地址 查询报文中不包含answer
三个answers
与其中一个answer中提供的ip地址相同 没有发出新的DNS 发出一个NS类型的是用于解析域名不是用于下载图片。
53 49746 192.168.43.1 是默认的本地DNS服务器地址 A类型 和 AAAA类型 没有answers 三个 answers 每个answers包含 Name、 Type、 Class 、Time to live、Data length、 Primary name
192.168.43.1 是默认的本地DNS服务器地址 NS类型的DNS查询 不包含answers
不包含ip地址
IP是: 240e:ba:c01a:ea93: 不是默认dns服务器地址 相当于 默认dns服务器地址对应的ipv6版本 A类型和AAAA类型的查询报文 查询报文中不包含answers A类型的回应报文中有answers AAAA的回应报文中不存在answers 问题回答: (1)你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少? 答:通过控制面板的Internet选项-高级发现支持1.1 (4)从服务器向你的浏览器返回的状态代码是多少? 答:500 (3)你的计算机的IP地址是多少?服务器gaia.cs.umass.edu的IP地址是多少? 答:本机IP地址会变动,通过ping命令查到服务器地址是128.119.245.12 (9)分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么? 答:没有,发现了状态码304 (11)你的浏览器一共发出了多少个HTTP GET请求? 答:浏览器按F12,选中网络项可以看到有多少个GET请求,发现有4个。 (25)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。 答:并行,传输效率高节省时间。 (26)DNS查询报文发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)决定你主机的本地DNS服务器的IP地址。这两个地指相同吗? 答:相同 打开的WEB页中包含图片,在获取每一个图片之前,你的主机发出新的DNS查询了吗? 答:在获取一个新图片之前并没有DNS查询。 |
|||||
实验当中问题 及解决方法 |
1、使用IPconfig命令时,显示了很多IP地址,不知道哪个才是能PING通本机的,经过和同学尝试,确认了无线局域网下的IPV4地址可以互相PING通。 2、与同学互相使用PING命令,开始可以通,随后会出错,发现是校园网隔一段时间会在IP池里自动更换地址。 3、ipconfig中有的命令遇到错误: 无法识别或不完整的命令行,暂时未解决,可能是用法不一致。 4、Win10 并不能直接使用telnet命令 需要在系统设置中给telnet打勾才能使用这个命令 5、善用搜索引擎,不知道如何组合nslookup语句实现逐层DNS解析,查阅CSDN之后了解到用nslookup -qt=NS xxxx IP 可以获取xxxx在当前IP下的子IP,然后逐步更换子IP即可从根域名逐步降级到权威域名。 6、利用TELNET进行SMTP的邮件发送时,163和qq邮箱一直登陆失败,多次尝试后发现是密码应当使用第三方授权码而不是登陆密码,最后163邮箱登陆成功! 7、SMTP的邮件发送成功后被邮箱视为垃圾邮件屏蔽,误认为一直没有收到,后来发现。 8、telnet遇到错误550 500 通过搜索和问同学找到了问题所在,是自己语法出了错。 9、很多报错的问题是通过谷歌找到解决方案的,百度有时候不好使。 10、由于本学期未学JAVA,刚开始运行程序时出现了各种问题,在菜鸟教程看了基本的操作后成功运行了第一个程序。 11、JAVA环境配置时未添加环境变量,导致程序不能正常运行,添加环境变量后解决问题。 12、用老师提供的软件时出现未知错误,从网上查找知道可能是操作系统版本不一致,从官网下载了最新版解决了问题。 13、Ethereal抓包文件的使用。 如果stop过快会得不到相应的http协议,如果等待的时间过长,打开过多的文件,会出现过多的数据,最后选择打开校官网的本科生招生,其中只有一个图片,能减少产生的结果,从而精确需要看到的东西。 14、telnet刚开始使用时在dos环境下无法识别,后来在网上查询知道在控制面板中要先设置,最终解决。 15、利用ethereal分析协议HTTP、FTP和DNS中:抓取的包过多,导致筛选后有很多无关包影响分析 |
|||||
成绩(教师打分) |
优秀 |
良好 |
及格 |
不及格 |
计算机网络与通信实验报告(二) |
||||||
学 号 |
姓 名 |
班 级 |
报告日期 |
|||
|
|
|
|
|||
实验内容 |
实验二 利用分组嗅探器分析传输层与网络层协议 利用分组嗅探器分析数据链路层协议 |
|||||
实验目的 |
1、了解传输层TCP/UDP协议构造; 2、了解网络层IP协议构造;
|
|||||
实验预备知识 |
1、详细掌握TCP段结构。 2、详细掌握UDP段结构。 3、掌握IP数据报结构
|
|||||
实验过程描述 |
一.对传输层协议TCP/UDP进行捕包分析 (1)关闭计算机后台多余的进程,启动浏览器,打开网址http://gaia.cs.umass.edu/ethereal-labs/alice.txt ,得到ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到桌面。
(2) 打开网址http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html在Browse按钮旁的文本框中输入保存在你的主机上的文件ALICE'S ADVENTURES IN WONDERLAND(全名)
(3)启动Ethereal,开始分组俘获。 (4)在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到gaia.cs.umass.edu服务器,提示恭喜上传完成。
(5)停止俘获
|
|||||
实验结果 |
问题回答:
一.对传输层协议TCP/UDP进行捕包分析
TCP SYN报文段的序号是0 Syn值设置为1
ACKnowledgement字段的值是1 Gaia.cs.umass.edu服务器是在SYN报文段中的seq值加1 在该报文段中,用Flags:0x0012来标识
序号是152931 二、对网络层协议IP进行捕包分析
56-20=36为有效载荷数
被分割了 下一个包为 显示IP协议的数据:
可以
改变:首部校验和,标识 不变版本、头部长度、区分服务、协议、源地址
|
|||||
实验当中问题 及解决方法 |
1、问题:利用ethereal抓取的包很多后台运行的程序包,导致实验包无法准确找到 解决:关闭各类后台服务,在高级TCP选项中关闭其他服务,在页面加载完毕后立即停止抓包。
2、问题:找不到#of times to Trace 解决:本次实验使用的是PingPlotter5,#of times to Trace即为追踪次数
2、问题:找不到分片信息 解决:数据报是不在ICMP类型的记录中找到的,而在IP类型的记录中寻找。
|
|||||
成绩(教师打分) |
优秀 |
良好 |
及格 |
不及格 |