《 计算机网络技术 》实验指导书08.docx
《《 计算机网络技术 》实验指导书08.docx》由会员分享,可在线阅读,更多相关《《 计算机网络技术 》实验指导书08.docx(21页珍藏版)》请在冰豆网上搜索。
《计算机网络技术》实验指导书08
《计算机网络技术》
实验指导书
陈靖宇
广东工业大学计算机学院
二00六年七月印刷
《计算机网络技术》实验教学大纲
一、课程简介
课程名称(中英文):
计算机网络技术(ComputerNetworks)
课程编码:
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系统中进行网络配置、用pingipconfig,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工具测试本机到所经过的路由数,记录下相关信息。
5、使用Netstat工具,记录下相关信息。
6、使用Arp工具,记录下相关信息。
7、使用Nslookup工具,记录下相关信息。
五、实验报告要求
要求采用学校的实验报告书(16开)。
如打印也应采用实验报告书的版头(A4纸)。
并提交实验报告电子版及相关实验数据文档及资料。
六、思考题
1.如何测试你的主机到特定网址的连接是否有故障,如果有故障如何进一步故障的原因。
2.如何通过网络设置加强网络的安全性。
实验二、IP数据报传输分析
实验项目名称:
IP数据报传输分析
实验项目性质:
普通
所属课程名称:
《计算机网络技术》
实验计划学时:
1
一、实验目的
掌握如何利用协议分析工具分析IP数据报报文格式,体会数据报发送、转发的过程。
在学习的过程中可以直观地看到数据的具体传输过程。
通过分析截获TCP报文首部信息,理解首部中的序号、确认号等字段是TCP可靠连接的基础。
通过分析TCP连接的三次握手建立和释放过程,理解TCP连接建立和释放机制。
.进一步熟悉Wireshark软件的使用方法;
2.利用Wireshark(Ethereal)抓包;
3.对抓取到的包进行分析,通过分析巩固对EthernetII封包、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选择抓取数据包网卡
之后在主操作系统中使用ping192.168.126.128–t的命令,来ping虚拟机。
好,我们来看看抓取的数据包。
图1-5ARP广播包
从Wireshark(Ethereal)的第一栏中,我们看到这是个ARP解析的广播包,如图1-5。
由于这个版本的Wireshark(Ethereal)使用的是EthernetII来解码的,我们先看看EthernetII的封装格式。
如下图1-6:
图1-6以太网封包格式
注意这个和802.3是有区别的,802.3的封包格式如图1-7:
图1-7802.3封包格式
尽管EthernetII和802.3的封包格式不同,但Wireshark(Ethereal)在解码时,都是从“类型”字段来判断一个包是IP数据报还是ARP请求/应答或RARP请求/应答。
从EthernetII知道了是ARP解析以后,我们来看看Wireshark(Ethereal)是如何判断是ARP请求呢还是应答的。
我们先复习一下以太网的ARP请求和应答的分组格式,如图1-8。
图1-8分组格式
从上图中我们了解到判断一个ARP分组是ARP请求还是应答的字段是“op”,当其值为0×0001时是请求,为0×0002时是应答。
如图1-9、1-10。
图1-9ARP请求
图1-10ARP应答
我们看看第三个帧的内容。
第三帧“类型”显示是IP数据报,如图1-11:
图1-11ICMPping包
同样,我们先复习一下IP包的封包格式,如图1-12:
图1-12IP封包格式
关于IP封包各字段的内容及意义,这里就不再详述了,可以参见三卷本的TCP/IP,。
我们主要看看TTL,从图1-13和1-14的比较来看,图1-13中的TTL是128,而图1-14中的TTL却是64,什么原因呢?
原来图1-13中的主机是Windows2000,而1-14中的主机是Linux,看来不同操作系统的TTL是不同的。
图1-13Windows主机的TTL
图1-14Linux主机的TTL
好了我们来看看ICMP报文吧,先看看它的封包格式,如图1-15:
图1-15ICMP封包类型
关于ICMP的“类型”和“代码”字段,这里有一个表,如图1-16:
图1-16ICMP报文类型
ICMP报文,我们主要对照图1-16看抓包的情况。
图1-17ping请求
五、实验报告要求
要求采用学校的实验报告书(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程序第二步的时候选上WindowsSocket选项,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。
)
(1)构造CSocket对象,如下例:
CSocketServerSocket;
CSocketClientSocket;
(2)CSocket对象的Create函数用来创建WindowsSocket,Create()函数会自行调用Bind()函数将此Socket绑定到指定的地址上面。
如下例:
ServerSocket.Create(823);//服务器端需要指定一个端口号,我们用823。
ClientSocket.Create();//客户端不用指定端口号。
(3)现在已经创建完基本的Socket对象了,现在我们来启动它,对于服务器端,我们需要这个Socket不停的监听是否有来自于网络上的连接请求,如下例:
ServerSocket.Listen(5);//参数5是表示我们的待处理Socket队列中最多能有几个Socket。
(4)对于客户端我们就要实行连接了,具体实现如下例:
ClientSocket.Connect(CStringSerAddress,UnsingedintSerPort);//其中SerAddress是服务器的IP地址,SerPort是端口号。
(5)服务器是怎么来接受这份连接的呢?
它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。
如下例:
CSocketReceiveSocket;
ServerSocket.Accept(ReceiveSocket);
(6)如果想在两个程序之间接收或发送信息,MFC也提供了相应的函数。
如下例:
ServerSocket.Receive(String,Buffer);//String是你要发送的字符串,Buffer是发送字符串的缓冲区大小。
ServerSocket.Send(String,Butter);//String是你要接收的字符串,Buffer是接收字符串的缓冲区大小。
框架实现:
客户端在MFC中创建对话框:
voidCClientDlg:
:
OnButtonReceive()
{
CStringstrAddr="202.112.73.150";
unsignedintnPort=5050;
if(!
ChatReceive.Create())
{
MessageBox("createfailed","Receive",MB_ICONSTOP);
return;
}
else
{
ChatReceive.Connect(strAddr,nPort);
}
charsReceive[1024];
strAddr.Format(sReceive);
ChatReceive.Receive(sReceive,1024,0);
m_strEdit=sReceive;
UpdateData(FALSE);
ChatReceive.Close();
}
服务器端创建对话框:
voidCServerDlg:
:
OnButtonSend()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringstrSendText;
unsignedintnPort=5050;
GetDlgItemText(IDC_EDIT,strSendText);
if(!
ChatSend.Create(nPort))
MessageBox("createfailed");
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纸)。
并提交实验报告电子版及相关实验数据文档及资料。