资源描述
.
《计算机网络技术》
实验指导书
靖宇
工业大学 计算机学院
二00六年七月印刷
目 录
《计算机网络技术》实验教学大纲1
实验一、Windows网络配置和TCP/IP协议配置及诊断3
实验二、IP数据报传输分析6
实验三、基于TCP/IP的网络编程14
实验四、基于TCP的网络聊天室的设计17
26 / 28
《计算机网络技术》实验教学大纲
一、课程简介
课程名称(中英文):计算机网络技术(Computer Networks)
课程编码: 241015
学分和总学时: 3.5学分,64学时
实验(上机)学时: 10学时
开课单位: 计算机学院
选课对象: 计算机科学与技术专业、网络工程专业、软件工程
二、课程容与实验目的:
《计算机网络技术》是计算机类各专业必修的一门专业基础课程。通过本课程的学习,使学生对计算机网络从整体上有一个较清晰的了解,对当前计算机网络的主要种类和常用的网络协议有较清晰的概念。要求学生学习和掌握计算机网络的层次化结构;掌握有关局域网、城域网、广域网的概念;掌握计算机网络的高层应用;掌握计算机网络的新进展和发展趋势;了解如何建设。。
三、实验教材与实验考核
实验教材:
《计算机网络实验指导书》 ,靖宇编 ,工业大学
《计算机网络》 希仁,电子工业
实验考核:
根据任务完成的情况和报告的质量评定成绩。
实验任务完成情况验收成绩占80%;
实验报告的质量评定占20%;
如果有下列情况,则视情节严重程度,成绩下降若干档次,直至不及格:
· 光盘文件含有病毒或者容不能正确读出;
· 抄袭、复制别人程序或文档;
· 未能按时提交报告和光盘文件。
四、实验项目容
实验项目明细表
项目序号
实验项目名称
实验属性
实验容
实验学时
是否必选
实验所需主要仪器设备名称
1
Windows网络配置和TCP/IP协议配置及诊断
普通
学习Windows网络配置方法;利用网络命令进行网络诊断。
1
√
服务器3台,PC机100台
2
IP数据报传输分析
普通
利用wireshark软件进行数据报的传输分析
1
√
服务器3台,PC机100台
3
基于TCP/IP的网络编程
普通
利用VC++进行简单的网络编程。
2
√
服务器3台,PC机100台
4
基于TCP的网络聊天室的设计
设计性
利用VC++开发基于TCP的网络聊天室。
6
√
服务器3台,PC机100台
合计
注:本课程实验总计 10 学时,安排 4 次实验,其中普通实验占 40 %,综合性实验占60 %,设计性实验占0%。
实验一、Windows网络配置和TCP/IP协议配置及诊断
实验项目名称:Windows网络配置和TCP/IP协议配置及诊断
实验项目性质:普通
所属课程名称:《计算机网络技术》
实验计划学时:1
一、 实验目的
学习在Windows系统中进行网络配置、用ping ipconfig,netsh命令工具来进行网络测试、使用tracert路由跟踪命令、使用netstat、arp、nslookup命令查看网络状态。
本实验在于使学生更好地理解计算机网络设置的基本操作,掌握计算机网络配置的基本监测技术。
二、 实验容和要求
⑴学习Windows的网络配置。
⑵学习TCP/IP的诊断
三、 实验主要仪器设备和材料
1.计算机及操作系统:PC机,Windows;
四、 实验方法、步骤及结果测试
一、 Windows的网络配置
单击右键桌面的“网络邻居”,点击右键菜单“属性”,出现如下图的所示网络连接界面。
然后右键单击“本地连接”,点击右键菜单属性,出现如下图的所示配置界面。
从配置界面中选择Internet协议(TCP/IP),然后点击“属性”按键,可以进入IP地址的设置
二、利用Windows命令行工具进行TCP/IP的配置和诊断
1、使用Ping工具测试本机TCP/IP协议的工作情况,记录下相关信息。
2、使用IPconfig工具测试本机TCP/IP网络配置,记录下相关信息。
3、使用netsh工具测试本机TCP/IP网络配置,记录下相关信息。
4、使用Tracert工具测试本机到.sohu. 所经过的路由数,记录下相关信息。
5、使用Netstat工具,记录下相关信息。
6、使用Arp工具,记录下相关信息。
7、使用Nslookup工具,记录下相关信息。
五、 实验报告要求
要求采用学校的实验报告书(16开)。如打印也应采用实验报告书的版头(A4纸)。并提交实验报告电子版及相关实验数据文档及资料。
六、 思考题
1. 如何测试你的主机到特定网址的连接是否有故障,如果有故障如何进一步故障的原因。
2. 如何通过网络设置加强网络的安全性。
实验二、IP数据报传输分析
实验项目名称: IP数据报传输分析
实验项目性质:普通
所属课程名称:《计算机网络技术》
实验计划学时:1
一、 实验目的
掌握如何利用协议分析工具分析IP数据报报文格式,体会数据报发送、转发的过程。在学习的过程中可以直观地看到数据的具体传输过程。
通过分析截获TCP报文首部信息,理解首部中的序号、确认号等字段是TCP可靠连接的基础。通过分析TCP连接的三次握手建立和释放过程,理解TCP连接建立和释放机制。.进一步熟悉Wireshark软件的使用方法;
2.利用Wireshark(Ethereal)抓包;
3.对抓取到的包进行分析,通过分析巩固对Ethernet II 封包、ARP 分组及IP、ICMP 数据包的认识。
二、 实验容和要求
1) 学习协议分析工具Wireshark(Ethereal)的基本使用方法;
2) 利用Wireshark(Ethereal)进行IP数据报报文的抓取;
3) 对抓取到的数据报文进行分析,体会数据报发送、转发的过程。
三、 实验主要仪器设备和材料
1.计算机及操作系统:PC机,Windows;
四、 实验方法、步骤及结果测试
首先运行Wireshark(Ethereal),在菜单Capture 下点击Interfaces, 选取要抓包的网卡, 这里选取地址为192.168.126.1 的这个网卡抓取数据包,如图1-4:
图1-4 选择抓取数据包网卡
之后在主操作系统中使用ping 192.168.126.128 –t 的命令,来ping 虚拟机。好,我们来看看抓取的数据包。
图1-5 ARP 广播包
从Wireshark(Ethereal) 的第一栏中,我们看到这是个ARP 解析的广播包,如图1-5。由于这个版本的Wireshark(Ethereal) 使用的是Ethernet II 来解码的,我们先看看Ethernet II 的封装格式。如下图1-6:
图1-6 以太网封包格式
注意这个和802.3 是有区别的,802.3 的封包格式如图1-7:
图1-7 802.3 封包格式
尽管Ethernet II 和802.3 的封包格式不同,但Wireshark(Ethereal) 在解码时,都是从“类型”字段来判断一个包是IP 数据报还是ARP 请求/应答或RARP 请求/应答。
从Ethernet II 知道了是ARP 解析以后,我们来看看Wireshark(Ethereal) 是如何判断是ARP 请求呢还是应答的。
我们先复习一下以太网的ARP 请求和应答的分组格式,如图1-8。
图1-8 分组格式
从上图中我们了解到判断一个ARP 分组是ARP 请求还是应答的字段是“op”,当其值为0×0001 时是请求,为0×0002 时是应答。如图1-9、1-10。
图1-9 ARP 请求
图1-10 ARP 应答
我们看看第三个帧的容。第三帧“类型”显示是IP 数据报,如图1-11:
图1-11 ICMP ping 包
同样,我们先复习一下IP 包的封包格式,如图1-12:
图1-12 IP 封包格式
关于IP 封包各字段的容及意义,这里就不再详述了,可以参见三卷本的TCP/IP,。
我们主要看看TTL,从图1-13 和1-14 的比较来看,图1-13 中的TTL 是128,而图1-14 中的TTL 却是64,什么原因呢?
原来图1-13 中的主机是Windows2000 ,而1-14 中的主机是Linux,看来不同操作系统的TTL 是不同的。
图1-13 Windows 主机的TTL
图1-14 Linux主机的TTL
好了我们来看看ICMP 报文吧,先看看它的封包格式,如图1-15:
图1-15 ICMP 封包类型
关于ICMP 的“类型”和“代码”字段,这里有一个表,如图1-16:
图1-16 ICMP 报文类型
ICMP 报文,我们主要对照图1-16 看抓包的情况。
图1-17 ping 请求
五、 实验报告要求
要求采用学校的实验报告书(16开)。如打印也应采用实验报告书的版头(A4纸)。并提交实验报告电子版及相关实验数据文档及资料。
实验三、基于TCP/IP的网络编程
实验项目名称:基于TCP/IP的网络编程
实验项目性质:验证型
所属课程名称:《计算机网络技术》
实验计划学时:2
一、 实验目的
MFC提供的关于网络应用的类CSocket是一个比较高级的封装,使用它编制出属于自己的网络应用程序,可以编一个属于自己的网络通讯软件。通过这个实验,同学们也可以增进对于TCP/IP协议的理解。
二、 实验容和要求
1.熟悉VC++6编程环境;
2.利用VC++6进行简单的网络编程;
三、 实验(设计)仪器设备和材料
1.计算机及操作系统:PC机,Windows;
2.网络环境:可以访问互联网;
四、 实验方法、步骤及结构测试
基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,程序一般分为服务器端和用户端两部分。设计思路(VC6.0下):
第一部分 服务器端
一、创建服务器套接字(create)。
二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。
三、接受来自用户端的连接请求(accept)。
四、开始数据传输(send/receive)。
五、关闭套接字(closesocket)。
第二部分 客户端
一、创建客户套接字(create)。
二、与远程服务器进行连接(connect),如被接受则创建接收进程。
三、开始数据传输(send/receive)。
四、关闭套接字(closesocket)。
CSocket的编程步骤:(注意我们一定要在创建MFC程序第二步的时候选上Windows Socket选项,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。)
(1)构造CSocket对象,如下例:
CSocket ServerSocket;
CSocket ClientSocket;
(2)CSocket对象的Create函数用来创建Windows Socket,Create()函数会自行调用Bind()函数将此Socket绑定到指定的地址上面。如下例:
ServerSocket.Create(823); //服务器端需要指定一个端口号,我们用823。
ClientSocket.Create(); //客户端不用指定端口号。
(3)现在已经创建完基本的Socket对象了,现在我们来启动它,对于服务器端,我们需要这个Socket不停的监听是否有来自于网络上的连接请求,如下例:
ServerSocket.Listen(5);//参数5是表示我们的待处理Socket队列中最多能有几个Socket。
(4)对于客户端我们就要实行连接了,具体实现如下例:
ClientSocket.Connect(CString SerAddress,Unsinged int SerPort);//其中SerAddress是服务器的IP地址,SerPort是端口号。
(5)服务器是怎么来接受这份连接的呢?它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。如下例:
CSocket ReceiveSocket;
ServerSocket.Accept(ReceiveSocket);
(6)如果想在两个程序之间接收或发送信息,MFC也提供了相应的函数。如下例:
ServerSocket.Receive(String,Buffer); //String是你要发送的字符串,Buffer是发送字符串的缓冲区大小。ServerSocket.Send(String,Butter);//String是你要接收的字符串,Buffer是接收字符串的缓冲区大小。
框架实现:
客户端在MFC中创建对话框:
void CClientDlg::OnButtonReceive()
{
CString strAddr="202.112.73.150";
unsigned int nPort=5050;
if(!ChatReceive.Create())
{
MessageBox("create failed","Receive",MB_ICONSTOP);
return;
}
else
{
ChatReceive.Connect(strAddr,nPort);
}
char sReceive[1024];
strAddr.Format(sReceive);
ChatReceive.Receive(sReceive,1024,0);
m_strEdit=sReceive;
UpdateData(FALSE);
ChatReceive.Close();
}
服务器端创建对话框:
void CServerDlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
CString strSendText;
unsigned int nPort=5050;
GetDlgItemText(IDC_EDIT,strSendText);
if(!ChatSend.Create(nPort))
MessageBox("create failed");
else
{
ChatSend.Listen();
ChatSend.Accept(server);
}
server.Send(strSendText,1000,0);
server.Close();
ChatSend.Close();
}
五、 实验报告要求
要求采用学校的实验报告书(16开)。如打印也应采用实验报告书的版头(A4纸)。并提交实验报告电子版及相关实验数据文档及资料。
实验四、基于TCP的网络聊天室的设计
实验项目名称:基于TCP的网络聊天室的设计
实验项目性质:设计型
所属课程名称:《计算机网络技术》
实验计划学时:4
一、 实验目的
1.掌握通信规的制定及实现。
2.练习较复杂的网络编程,能够把协议设计思想应用到现实应用中。
二、 实验容和要求
1.进一步熟悉VC++6编程环境;
2.利用VC++6进行较复杂的网络编程,完成网络聊天室的设计及编写;
三、 实验(设计)仪器设备和材料
1.计算机及操作系统:PC机,Windows;
2.网络环境:可以访问互联网;
四、 实验方法、步骤及结构测试
(1)制定通信规。
(2)设计界面如下:
1 服务器端
2 客户端
(3)设计思路:
① TCP/IP数据通信 --- “聊天”消息传输格式
客户机 -à服务器
(ⅰ)传输“用户名”
STX+1+用户名+ETX
(ⅱ) 悄悄话
STX+2+用户名+”,”+容+ETX
(ⅲ) 对所有人说
STX+3+容+ETX
服务器-à 客户机
(ⅰ)首次传输在线用户名
STX+1+用户名+ETX
(ⅱ)传输新到用户名
STX+2+用户名+ETX
(ⅲ)传输离线用户名
STX+3+用户名+ETX
(ⅳ)传输聊天数据
STX+4+容+ETX
(注:STX为CHR(2),ETX 为CHR(3))
②服务器端
(ⅰ) 定义一个动态数组存储连接用户。定义一个全局变量存储连接用户的元素个数。
(ⅱ) 用一个使用UDP协议的SOCKET套接字完成发送服务器IP地址。
在该控件的数据接收事件中发送服务器IP地址
(ⅲ) 用一个使用TCP协议的SOCKET套接字数组完成TCP连接及数据发送和接收,处理它的连接请求事件。
(ⅳ)SOCKET套接字的数据到达事件中首先接收数据到一个变量中,然后从这个变量中逐个提取消息,并对每个消息判断消息类型及做相应处理:
case 类型1 ……传输“用户名”
修改用来存储连接用户的元素个数的数组
向所有在线用户发送该用户名消息
向该用户发送所有在线用户名的消息
case 类型2 ……悄悄话
向源和目标用户发送消息
case 类型3 ……对所有人说
向所有在线用户发送消息
(ⅴ) 服务器端的断开连接事件中
修改存储连接用户的元素个数的数组,卸载此控件,向所有在线用户发送消息离线。
③ 客户端
(ⅰ) 添加一个SOCKET套接字,窗体加载时使用UDP协议,发广播数据报;等待接收到服务器主机地址后使用TCP协议完成连接及数据传送。
(ⅱ) 在客户端的数据到达事件中接受数据,如果客户端协议使用的是UDP协议,关闭客户端连接,重新设置客户端的协议、远程端口号、本地端口等参数,再调用连接方法请求连接,输入用户名,连接成功时发送用户名消息。否则,从接受的数据字符串中逐个提取消息,并对每个消息判断消息类型及做相应处理:
case 类型1 ……首次传输在线用户名
将用户名加入到用户列表中;
case 类型2 ……首次传输在线用户名
将用户名加入到用户列表中;
在聊天容中添加该用户名加盟;
case类型3 ……传输离线用户名
从用户列表中删除该用户名
在聊天容中添加该用户名退出;
case类型4 ……传输聊天数据
在聊天容中添加聊天数据;
(ⅲ) 在命令按纽触发事件中发送聊天容
根据用户列表中的当前用户决定消息类型,并发送聊天数据。
五、 实验报告要求
提交一篇关于本设计的论文,字数不少于1000字,论文容需包含如下几项容。
一、系统概要
二、通信规的制定
三、主要模块的设计分析
四、系统运行效果 (要求有屏幕截图)
五、心得与体会
要求采用学校的实验报告书(16开)。如打印也应采用实验报告书的版头(A4纸)。并提交实验报告电子版及相关实验数据文档及资料。
展开阅读全文