计算机网络实验实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中科技大学计算机学院
《计算机网络》实验报告
实验名称网络组建与实施及Socket编程
团队成员:
注:团队成员贡献百分比之和为1
教师评语:
实验一——
网络组建与实施
一.环境
操作系统:WINDOWS7 (32位旗舰版)
工具:Boson Netsim仿真软件(版本号5.31)
二.实验目的
1.了解IP协议,网络层协议和数据链路层协议的工作原理机
以及工作机制
2.掌握IP地址的规划方法
3.掌握路由协议的配置方法
4.掌握路由器以及二/三层交换机的配置方法
5.了解VLAN的划分原理
6.掌握访问控制的配制方法
三.实验内容及步骤(包括主要流程和说明)
实验所用拓扑图如下:
图一:
图二
第一项试验——组网试验
1. 设置PC1、PC2的ip分别为19
2.168.0.1、192.168.0.2,子网掩码为255.255.255.0,网关为192.168.0.254;设置PC3~PC8的ip分别为192.168.1.1~192.168.1.6,子网掩码为255.255.255.0,网关为192.168.1.254;设置Router A的端口地址为ether 0 192.168.0.254,ether 1 192.168.1.254。测试结果为各PC机之间可以自由通信,部分结果如图1-1所示。
图1-1 (a)
图1-1 (b)
2.将PC4、PC6、PC8的ip地址改为192.168.2.2、192.168.2.4、192.168.2.6,网关改为192.168.2.254,其他设置不变。PC4,PC6,PC8之间能互相通信,不能发送数据到其他PC;其他PC之间可以互相通信;PC1,PC2不能发送数据
给PC4,PC6,PC8,而PC3,PC5,PC7可以发送数据给PC4,PC6,PC8。部分结
果如图1-2所示。结果分析:路由器ip为PC3,PC5,PC7的默认网关,PC3,PC5,PC7可以通过路由器访问其他PC,也可以被PC1,PC2访问,而PC4,PC6,PC8无法通过路由器访问其他子网段PC
图1-2 (a) PC3的ping结果
图1-2 (b) PC1的ping结果
图1-2(c) PC4的ping结果
第二项试验——路由配置试验
1.首先按如下要求配置各PC的IP地址
2.路由器配置如下(Router A配置如下,其它路由器配置类似)
3.RIP协议配置(Router A配置如下,其它路由器配置类似)
4.思考题
如果不设置时钟频率,各PC无法相互访问
OSPF协议配置(Router A配置如下,其它路由器配置类似)
结果是各PC能相互访问,部分结果见图2-1。
图3-1 (a) PC2的ping结果
第三项试验——VLAN划分试验
1.在switch2,switch3,switch4上设置一个名为class的VTP域,并创建一个名为Class1的VLAN2以及名为Class2的VLAN3.
2.将switch2,switch3,switch4的各个端口分配到新创建的相应VLAN中。(switch2的配置如下,switch3,switch4的配置与之类似,端口为fa0/3和fa0/4)
3.配置switch2,switch3,switch4之间的trunk链路。(switch2的配置如下,switch3,switch4的配置与之类似,端口为fa0/1和fa0/2)
此时,PC3,PC5,PC7处于VLAN2,PC4,PC6,PC8处于VLAN3,VLAN2和VLAN3内部PC可以互相访问,但VLAN之间无法访问。部分结果见图3-1。
图3-1 (a) PC3的ping结果
图3-1 (b) PC4的ping结果
第四项试验——访问控制配置试验
1.对路由器Router A进行配置,使得PC1无法访问其它PC,也不能被其它PC访问
部分结果见图4-1。
图4-1 (a) PC1的ping结果
图4-1 (b) PC2的ping结果
实验二——
支持多线程处理的web服务服务端软件一.环境
操作系统:WINDOWS 7 (32位旗舰版)
运行工具:chrome浏览器
编写程序语言:C++
环境:Qt Creator 5.1.0
二.实验目的
1.了解应用层和运输层的作用以及相关协议的工作原理和机制
2.掌握SOCKET编程的基本方法
三.实验内容及步骤(包括主要流程和说明)
内容:编写一个支持多线程处理的web服务服务端软件
要求如下:
第一级:
1.可配置Web服务器的IP地址、监听端口和主目录
2.制作一个主页放在主目录中,并配置Web服务器的IP地址、监听端
口和主目录
3.具备完成所需功能的基本图形用户界面(GUI),并具友好性
第二级:
1.选择合适的Socket编程模型,创建套接字,监听所配置的监听端口
2.支持服务的启动和关闭
3. 具备完成所需功能的基本图形用户界面(GUI),并具友好性
第三级:
1.支持多线程,能够针对每一个新的请求创建新的线程
2.在服务端的屏幕上输出每一个请求的来源(IP地址、端口号和HTTP
请求命令行)
3.支持一定的异常情况处理能力
4.具备完成所需功能的基本图形用户界面(GUI),并具友好性
第四级:
1.能够处理HTTP请求以及定位相应的HTML文件
2.向客户端发送响应报文
3.对于无法成功定位文件的请求,根据错误原因,做相应的错误提示
4.在服务端的屏幕上能够输出对每一个请求处理的结果
5.具备完成所需功能的基本图形用户界面(GUI),并具友好性
第五级:
1.支持多种类型文件(如TXT和JPG等)的发送
2.具备简洁方便的GUI界面
步骤:代码实现部分
1.启动服务:
BOOL QHttpServer::Start(string HomeDir, string DefIndex, int Port, int PersTO)
{
m_HomeDir = HomeDir;
m_DefIndex = DefIndex;
if(m_HomeDir.substr(m_HomeDir.size() - 1, 1) != "\\")
m_HomeDir += "\\";
if(bRun)
{
//LogMessage(LOGFILENAME, "_beginthreadex(...) failure, for Launch Thread", "Run", errno);
return FALSE;
}
ServerPort = Port;
PersistenceTO = PersTO;
InitializeCriticalSection(&cs);
InitializeCriticalSection(&_cs);
Reset();
ThreadLaunchedEvent = CreateEvent(NULL, FALSE, TRUE, NULL);