《计算机网络实验》
指导书(V1)
设计:林亚平 廖鑫
编写:廖鑫、吕方等
湖南大学信息科学与工程学院
2015年3月
目 录
一、 实验教学目标 ................................................................................ 3 二、 实验基本环境 ................................................................................ 3 三、 实验要求 ........................................................................................ 3 四、 评分要求 ........................................................................................ 3 五、 实验项目 ........................................................................................ 4
实验一、常用网络命令的使用 .................................................... 4 实验二、应用层和传输层网络协议分析 .................................... 8 实验三、网络层和链路层网络协议分析 .................................. 13 实验四、套接字及客户服务器应用程序基础 .......................... 16
一、 实验教学目标
“计算机网络”是计算机类专业本科生的一门必修的专业基础课程,通过本课程的教学,使学生对计算机网络从整体上有一个较清晰的了解,了解计算机网络的基本概念。让学生能使用网络测量工具从工程角度观察和分析因特网协议的执行过程,并能应用网络编程技术完成应用层协议的设计,达到提高学生分析实际问题和动手能力的目的。
主要包括以下几个方面的训练:
1)熟悉常用网络命令和网络抓包工具:熟悉ipconfig 、ping 、netstat 、tracert 、
telent 等命令的使用,了解真实环境下的网络通信过程;Wireshark 实验工具安装。
2)分析网络各层协议的具体实现:掌握Wireshark 工具使用方法,对因特网应用层、传输层、网络层和链路层相关协议执行过程进行观察和分析,进一步理解网络的具体实现;
3)SOCKET 编程训练:设计并编写代码实现基于UDP 协议的套接字通信项
目,掌握SOCKET 编程要领。
二、 实验基本环境
PC 、Windows 操作系统、Wireshark 、MicroSoft Visual Studio 6.0集成开发环境、JDK 。
三、 实验要求
独立完成,能够根据实验要求完成必做过程,包括学习使用相关软件、编写相应算法、程序、上机调试、配置服务器等工作。并纪录实验中出现的相关数据和现象。
四、 实验评分
课堂实验当堂检查并验收;课后实验周期较长,采取在学期初布置,期末验收的方法。实验成绩占总课程成绩的20%。
五、 实验项目
实验一、常用网络命令的使用
目的:
熟悉ping 、ipconfig 、netstat 、tracert 、arp 等命令的使用; 了解真实环境下的网络通信过程。 实验步骤: 1. ping 命令
ping 是一个测试程序,如果ping 运行正确,你大体上就可以排除网络访问层、网卡、modem 的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。
基本用法: Ping IP地址,如下:
使用ping 命令来查找问题所在或检验网络运行情况的典型次序: ping 127.0.0.1
ping 本机ip (断掉网线后结果?) ping 局域网内其他ip ping 网关ip ping 远程ip Ping 域名
ping ip -t——连续对ip 地址执行ping 命令,直到被用户以ctrl+c中断。
ping ip -l 2000——指定ping 命令中的数据长度为2000字节,而不是缺省的32字节。
ping ip -n——执行特定次数的ping 命令。 2. ipconfig 命令
该命令用于检查网络TCP/IP配置的信息, 如IP 地址、MAC 地址、DNS 等。
ipconfig 、ipconfig /all、ipconfig /renew、ipconfig /release等
3. netstat 命令
该命令用户显示各协议相关的统计及数据,一般用于检查本地主机的各个端口的网络连接情况。
不同种类:
netstat –r 显示网络各种通信协议的状态 netstat –E 显示以太网层的数据统计情况 netstat –A 显示网络中有效连接的信息 netstat –N 显示所有已经建立的连接 4. tracert 命令
该命令用于检查由本地主机到目标主机所经历的路由信息。
5. arp 命令
arp 命令显示和修改地址解析协议(ARP )缓存中的项目。
6. wireshark 下载安装
软件下载地址:https://www.wireshark.org/download.html Wireshark 使用教程: 安装流程:
1. 下载时选择与实验机器型号对应的版本
2. 打开wireshark 安装程序
3. 按照默认设置完成安装
实验二、应用层和传输层网络协议分析
实验使用Wireshark 工具对网络数据包进行抓取,并针对应用层和传输层封装的网络封包进行详细分析,通过实践观察加深对应用层HTTP 协议以及传输层TCP 协议具体实现过程的理解。 目的:
1、理解和掌握Wireshark 等工具的使用方法;
2、利用Wireshark 工具对应用层HTTP 协议和传输层TCP 协议进行分析。 背景知识和准备:
HTTP 协议以及TCP 协议的理论知识 I .了解Wireshark 工具的工作原理及使用方法
参考文档: Wireshark_Intro_v6.0.pdf II .对HTTP 协议进行分析 概述:
在这个实验中,我们将探讨HTTP 协议的几个方面:基本/响应交互,HTTP 消息格式,检索大型HTML 文件,检索HTML 文件嵌入对象,HTTP 身份验证和安全。 过程和细节:
1. 基本的HTTP 请求/响应:
a. 启动Web 浏览器;
b. 启动Wireshark 的数据包嗅探器,然后输入“http ”(不带引号); c. 稍等片刻,然后开始捕获Wireshark 的数据包; d. 在浏览器输入以下网址;
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
e. 停止Wireshark 捕获数据包,wireshark 获取数据如下图:
2. HTTP 条件请求/响应(file2)
a. 启动网页浏览器,并确保浏览器的缓存清零; b. 启动Wireshark 的数据包嗅探器; c. 输入以下网址到浏览器
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
d. 再次快速输入相同的URL 到您的浏览器(或只需选择浏览器上的刷新按钮): e. 停止Wireshark 的数据包捕获,并在显示过滤器规格窗口输入“http ”。 3. 检索长文档(file3):
a. 启动Web 浏览器,并确保浏览器的缓存清零; b. 启动Wireshark 的数据包嗅探器; c. 输入以下网址到浏览器
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
d. 停止Wireshark 的数据包捕获,并在显示过滤器规格窗口输入“http ”,所以只捕获
HTTP 信息将被显示出来。
4. 嵌入对像的HTML 文档(file4):
a. 启动网页浏览器,并确保浏览器的缓存清零; b. 启动Wireshark 的数据包嗅探器; c. 输入以下网址到浏览器
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
d. 停止Wireshark 捕获数据包,并在显示过滤器规格窗口输入“http ”,以至于只显示
捕获的HTTP 信息。
5. HTTP 认证(file5)
a. 确保浏览器的缓存清零,并关闭浏览器。然后,启动浏览器; b. 启动Wireshark 的数据包嗅探器; c. 输入以下网址到浏览器:
http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html在弹出框键入要求的用户名和密码。用户名是“wireshark-students ”,密码为“network ”; d. 停止Wireshark 的数据包捕获,并在显示过滤器窗口输入“http ”,确保只有捕获的
HTTP 消息在分组列表窗口显示。
III .对TCP 协议进行分析 概述:
通过与远程服务器之间发送150KB 的文件来分析TCP 数据包的发送和接收。研究内容包括TCP 利用序列号和确认号来提供的可靠数据传输;TCP 拥塞控制算法中的慢启动和拥塞避免;TCP 协议的流控制策略,如何建立TCP 连接以及TCP 连接的性能(吞吐量和往返时间)。
过程和细节:
1. 抓取传输到远程服务器的TCP 数据包:
a. 打开你的web 浏览器,进入http://gaia.cs.umass.edu/wireshark-labs/alice.txt,复制这
篇文章Alice in Wonderland到你的电脑。
b. 接下来访问http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html 如下图:
c. 现在开始网络封包分析和数据包捕获.(Capture->Start)。然后在网络封包分析和数据
包捕获选项页面点击“OK ”。
d. 返回你的浏览器,点击“Upload alice.txt file”按钮来更新文件到服务器。一旦这个文
件被更新,将会在窗口弹出一个提示。
e. 停止网络封包分析和数据捕获。你的网络封包分析窗口应该像下面一样。
2. 分析建立TCP 连接的过程。
3. 根据抓取的数据结果,分析TCP 的基本结构和内容。
4. TCP 拥塞控制分析:
a. 在网络封包分析的“listing of captured-packets”窗口中选一个TCP 段,然后,
Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)
b. 可以看到一个类似下面的情形
c. 使用Time-Sequence-Graph(Stevens) 绘图工具查看TCP 数据段的时序图,找出
TCP 慢启动的开始和结束以及拥塞避免阶段。
实验三、网络层和链路层网络协议分析
本实验通过执行traceroute 程序,探究IP 协议,实现对IP 数据报发送和接收流程的追踪,研究分析IP 首部各字段中的内容,了解IP 分片的细节;分析了Ethernet 协议以及ARP 协议。
目的:
1、 利用Wireshark 等工具对网络层和链路层网络协议进行分析。
2、 研究Ethernet 协议及ARP 协议具体实现。
背景知识和准备:
熟悉IP 数据报首部各字段的含义,掌握Ethernet 协议以及ARP 的工作原理 I .IP 协议分析
概述:
利用Wireshark 工具抓取网络数据,分析IP 数据报中各个字段的内容,分析IP 数据报的分片。
过程与细节:
1. 抓取数据包:
a. 启动Wireshark 开始抓包(Capture->Start);
b. 启动pingplotter ,在“Address to Trace Window” 框中输入目的地址,将“# of times to Trace” 字段设置为3,报文字段大小可在菜单”Edit->Advanced Options->Packet Options”中改变,初始值设为56字节;然后点击Trace 按钮,弹出如下图所示的pingplotter 窗口;
c. 等pingplotter 停止后,依次点击Edit->Advanced Options->Packet Options ,在
Packet Size框中输入2000,再依次点击OK->Resume按钮;
d. 以同样的方式将数据包大小设为3500字节;
e. 停止抓包。
2. 分析抓取的数据包并回答相关问题;
3. IP 分片:
a. 单击Time 栏,按时间先后顺序排列数据报,找到在pingplotter 中将分组大小
改为2000字节后的第一个ICMP Echo Request报文;
b. 分析IP 数据报分片信息;
II .Ethernet&ARP协议分析
概述:
抓取并分析Ethernet 数据帧的内容,观察ARP 协议在现实网络中如何工作。 过程与细节:
1. 抓取Ethernet 数据帧并进行分析:
a. 清空浏览器的缓存,启动Wireshark 程序;
b. 键入 ; c. 停止Wireshark 程序,选择显示IP 协议以下的协议, 如下图;
d. 分析包含了Http GET 数据的Ethernet frame的内容;
2. ARP 协议分析
a. Windows 操作系统进入CMD 下,使用ARP 命令,分析ARPcache 内容; b. MS-DOS 下键入arp-d *命令,清除ARPcache 内容,清除浏览器缓存; c. 打开Wireshark ,打开浏览器;
d. 键入; e. 停止Wireshark ,更改Wireshark 的“listing of captured packets”窗口;
实验四、套接字及客户服务器应用程序基础
本次实验要求自己动手实现一个能够在局域网中进行点对点聊天的实用程序。 目的:
1. 熟悉Visual C++的基本操作。
2. .基本了解基于对话框的windows 应用程序的编写过程。
3.实现UDP套接字编程(1人1组)。
基础知识和准备:
参考实验《套接字及客户/服务器应用程序基础》,Winsock编程基础 过程和细节
1. 建立MFC工程
2. 添加控件(过程略)
3. Scoket编程
4. 编程完成任务,并进行实验演示。