计算机网络实验实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档