结合我系计算机网络课程的教学内容, 设计了该实验指导书。实验内容共分为5个实验环节, 分别是动手操作型实验、测试验证型实验、编程实现型验、设计规划型实验和演示模拟型实验; 力求使学生通过实验加深理解网络基本概念、了解各项网络服务配置原理和方法, 进而设计和开发网络通程序, 并通过对需要大量设备投入的实验进行软件模拟, 了解网络相关设备的工作原理和实现方法。
本书是结合清华大学自动化系计算机网络课程的教学内容,设计了该实验指导书。实验内容共分为7个实验环节,力求使学生通过这些实验加深理解网络基本概念,了解各项网络服务配置原理和方法,进而设计和开发网络通信程序,并通过对需要大量设备投入的实验进行软件模拟,了解网络相关设备的工作原理和实现方法。
实验安排说明
结合清华大学自动化系计算机网络课程的教学内容,设计了该实验指导书。实验内容共分为7个实验环节,力求使学生通过这些实验加深理解网络基本概念,了解各项网络服务配置原理和方法,进而设计和开发网络通信程序,并通过对需要大量设备投入的实验进行软件模拟,了解网络相关设备的工作原理和实现方法。
实验要求
1.预习实验指导书有关部分,做好实验内容的准备,就实验可能出现的情况提前做出思考。
2.实验过程中认真进行相关实验和测试,观察出现的问题,记录主要情况,并做出必要说明和分析。
3.编程实验要求提交源程序、程序设计文档及用户使用说明。
4.在实验室进行实验,实验结束后,要求全部卸载实验中安装的软件。
5.认真书写实验报告。实验报告包括主要实验内容,实验情况及其分析,并解答实验思考中的问题。
实验一基本网络操作命令
1.1实验目的
1.2实验环境
1.3实验内容
1.4实验要求
1.5实验思考
1.6附录: 网络常用命令
实验二常用网络服务的配置
2.1实验简介
2.1.1实验目的
2.1.2实验内容
2.1.3实验环境
2.2DNS服务器的设置
2.2.1实验步骤
2.2.2实验思考
2.2.3附录: 实验参考资料
2.3用Apache HTTP Server开设WWW服务
2.3.1实验环境
2.3.2实验步骤
2.3.3实验要求
2.3.4实验思考
2.3.5附录: 实验参考资料
2.4架设FTP服务器
2.4.1实验环境
2.4.2实验内容
2.4.3实验步骤
2.5DHCP服务器的配置
2.5.1实验目的
2.5.2实验环境
2.5.3实验内容
2.5.4实验思考
2.5.5附录: 实验参考资料
实验三捕获TCP数据包
3.1实验目的
3.2实验环境
3.3实验内容
3.4实验报告要求
3.5实验步骤
实验四HTTP抓包分析
4.1实验目的
4.2实验内容
4.3实验报告要求
4.4实验步骤
实验五DHCP抓包分析
5.1实验目的
5.2实验环境
5.3实验内容
5.4实验报告要求
5.5实验步骤
实验六DNS抓包分析
6.1实验目的
6.2实验内容
6.3实验报告要求
6.4实验步骤
实验七Socket编程实现网络通信
7.1实验目的
7.2实验要求
7.3实验内容
7.3.1邮件发送客户端实验(Simple SMTP)
7.3.2课后完成内容: 带身份验证的Simple SMTP
7.3.3UDP Ping实验
7.4注意事项
7.5实验结果
7.6实验思考与分析题
7.7附录: 配置实验环境
7.7.1配置Java运行环境
7.7.2在Eclipse中开发Java程序
7.7.3在Eclipse中使用调试器
致谢
实验三捕获TCP数据包
3.1实验目的
通过实验熟悉Wireshark抓包软件的使用方法,理解TCP传输过程,以及慢启动、拥塞避免等相关技术。
3.2实验环境
操作系统: 几乎任意Windows版本。本实验是在Windows XP下实现的。
所需软件: Wiresharkwin321.10.2。
3.3实验内容
(1) 在Windows环境进行Wireshark抓包。
(2) 在Windows环境Wireshark窗口中查看各种协议下的数据包。
(3) 在Windows环境上传文件到服务器,同时观察TCP传输过程。
3.4实验报告要求
按实验步骤完成所有实验内容,回答实验思考题,并从实验结果中提取必要的图表和分析数据来支持你对实验思考题的回答。
3.5实验步骤
1. Wireshark的安装
Wireshark基本安装过程与一般软件安装基本相同,均按默认设置安装即可。
2. 捕捉从自己PC到远程服务器的TCP传输
在开始探索TCP奥秘之前,需要用Wireshark软件跟踪从PC到远程服务器的TCP传输数据包。需要进入一个网页,这个网页允许输入在PC上的一个文件的名字,然后利用HTTP POST方法将这个文件传输到Web服务器(教材2.2.3节)。用POST方法而不是GET方法,是因为想要从PC上传输大量数据到另外一台PC。当然,在做以上工作的时候,需要同时运行Wireshark,以捕获从PC上发送和接收到的TCP数据包。
需要进行如下步骤:
(1) 准备好Alice in Wonderland(《爱丽丝漫游奇境记》)的ASCII码文档,并以“(你的学号).txt”为文件名存入PC,如2004011000.txt。
文档可以去下面链接下载http://166.111.180.60:8080/upload/alice.txt(将该网页另存为txt文件)。
(2) 进入http://166.111.180.60:8080/upload/Lab3.jsp,会看到如图3.1所示的窗口。
图3.1实验界面
单击“浏览”按钮进入包含Alice in Wonderland文件的文件夹,先不要着急单击“提交文件(学号).txt”按钮。
(3) 用Wireshark开启数据包捕捉。开始抓包之前,进入Wirshark的Capture→Options,去掉Hide capture info dialog前面的“√”,以便在抓包过程中看到数据框,如图3.2所示。
安装好Wireshark后,选择Capture→Start开始抓包。回到浏览器,单击“提交文件(学号).txt”按钮来上传文件。一旦文件上传成功,将会有一个祝贺信息出现。
为简单起见,在开始运行capture命令之前,可以先定义对数据包进行捕捉的过滤器。具体操作如下: 选择菜单capture→options,出现一个对话窗口,确认Inferface项是否是当前计算机的默认网卡。
(4) 停止Wireshark数据包捕捉。你的Wireshark窗口会出现类似图3.3的界面。
图3.2Wireshark捕获选项设置
图3.3Wireshark捕获结果
为方便分析数据,可在左上角的过滤器(filter)工具栏中输入“tcp.port == 8080”后按Enter键,即可初步筛选所需数据。
如果在网络上Wireshark无法运行,可以从网络学堂上下载default_test文件。default_test是默认的数据包追踪文件,这个文件是在教师的计算机上按照上述操作步骤捕捉下来的。即使已经成功捕捉到了自己的追踪数据包并且已经解读,也会发现下载这个追踪文件是很有帮助的,因为这样可以帮助你更好地回答下面的思考题。
3. 查看捕获的跟踪
在分析TCP连接过程的细节之前,先来仔细查看一下跟踪。首先,在Wireshark窗口上方的过滤器(filter)窗口输入tcp,使得Wireshark的数据窗口中只显示TCP数据包。在数据窗口中将看到下面的消息:
(1) 一系列往返于计算机和http://166.111.180.60:8080/之间的TCP和HTTP消息。在这些消息中,会看到包含SYN消息的初始的三次握手过程。
(2) 可能会看到从计算机发送到http://166.111.180.60:8080/的一个HTTP POST消息以及一系列的HTTP Continuation消息。
注意: 在之前的HTTP实验中没有出现类似的HTTP Continuation消息,这是因为有多个TCP段在传送一个HTTP消息,Wireshark用HTTP Continuation消息来表示这样的情况。
(3) 从http://166.111.180.60:8080/返回到计算机的TCP ACK段。
注意报告要求:
在回答实验思考题时,应在答案中同时提交含有数据包以及跟踪的打印输出。在这些数据中添加注释来对相应的答案做出解释。
一种打印数据包的途径是: 选择File→Print,选中output to file,将数据导出,然后打开文件,选择回答问题所需要的少量数据即可(即在Package Range选择Displayed,而不是Captured),如图3.4所示。
图3.4Wireshark输出选项设置
现在,改变Wireshark的“listing of captured packets (已捕获数据包清单)”窗口,使它忽略含有HTTP消息的TCP段信息。选择Analyze→Enabled Protocols,去除HTTP前面复选框中的“√ ”,然后单击OK按钮。在此次实验中还要查看TCP的sequence numbers(不是Wireshark可能显示的relative sequence numbers),选择Edit→Preferences→Protocols→TCP,去除relative sequence numbers前面复选框中的“√ ”即可。事实上,Wireshark在新版本中已经默认将上述两个复选框的“√ ”去除。
这就是需要查看的一系列往返于计算机和http://166.111.180.60:8080/之间的TCP段。我们将用这些捕获到的数据包和跟踪信息来完成此次实验。
4. 分析TCP数据包
回答以下有关TCP报文段的问题:
(1) 客户端电脑传送文件到166.111.180.60的IP地址和端口是什么?从166.111.180.60接收文件的IP地址和端口是什么?
(2) 用来初始化客户端电脑和166.111.180.60的TCP连接的TCP SYN报文段的序号是什么?在报文段中,哪个地方表明这是一个SYN报文段?
(3) 回复SYN报文段时,由166.111.180.60发送的SYNACK报文段的序号是什么?在SYNACK报文段中的ACKnowledgement域的值是什么?166.111.180.60是如何确定这个值的?表明这个段是SYNACK的标志位或者符号是什么?
(4) 包含HTTP POST命令的TCP段的序号是多少?注意,要找到POST命令,需要在Wireshark窗口的底部发掘这个数据包内容域,找到一个在其DATA域中标识有POST的段。
(5) 仔细思考一下作为TCP连接的*个包含HTTP POST的TCP报文段。TCP连接(包括包含HTTP POST的报文段)的开头6个报文段的序号是多少?每个报文段都在什么时间发送?每个报文段接收到ACK的时间是多少?假定每个TCP报文段发送事件和收到其确认信息的事件之间存在时间差,那么这6个报文段各自的RTT值是多少?接收到每个ACK之后的EstimatedRTT数值是多少?(参见课本160页)假设*个报文段的EstimatedRTT值等于其观测到的RTT值,后续报文段的EstimatedRTT均按课本160页方程计算。
……