# **一、实验目的及任务**
1、熟悉并掌握WireShark的基本操作,了解网络协议实体间的交互以及报文交换。
2、通过对WireShark抓包实例进行分析,进一步加深对HTTP网络协议的理解。
3、编写一个简单的Web服务器,实现作业(2)(3)项所要求的功能。
4、培养理论联系实践的科学研究精神。
# **二、实验环境**
1、系统环境:Windows 10 家庭中文版 1607
2、浏览器:Chrome
3、WireShark:Version 2.2.1
4、IDE:Visual Studio 2015 Update 3
5、编程语言:C++
# **三、实验原理**
1、利用Wireshark软件抓取本地PC的数据包,观察其主要使用的网络协议。
2、根据所获数据包的内容分析相关协议,从而加深对HTTP网络协议的理解。
3、利用Winsock实现本地Web服务器,并实现与浏览器的交互。
# **四、实验步骤**
## **1、实验前的准备工作**
(1)关闭所有可能会请求网络的文件以及程序。
(2)打开浏览器,删除所有的Cookie、临时文件、表单数据以及浏览记录等等。
(3)单击开始,打开运行,输入'cmd',输入命令'ipconfig/flushdns',回车,即可看到成功刷新DNS缓存的显示。
## **2、WireShark的使用**
(1)启动WireShark。
(2)启动PC上的Chrome浏览器。
(3)开始分组捕获:选择“抓包”下拉菜单中的“抓包参数选择”命令,在“WireShark:抓包选项”窗口中可以设置分组捕获的选项。
(4)在这次实验中,使用窗口中显示的默认值。选择“抓包”下拉菜单中的“网络接口”命令,显示计算机中所安装的网络接口(即网卡)。我们需要选择电脑真实的网卡,点击后显示本机的IP地址。
(5)随后,点击“开始”则进行分组捕获,所有由选定网卡发送和接收的分组都将被捕获。
(6)待捕获一段时间,关闭浏览器,选择主窗口中有的“stop”按钮,可以停止分组的捕获。
(7)选择“文件”下拉菜单中的“另存为”,保存到我的文档中。
## **3、编写Web服务器**
(1)建立.cpp文件,引用头文件winsock2.h,利用SOCKET创建套接字,bind绑定端口,listen监听请求,accept接受请求,接受请求后用thread实现多线程,实现多用户并发访问,出现一个请求就创建一个线程返回请求。
(2)编写一个简单html网页,包含文本图片等元素,放在Web服务器文件夹下。
(3)运行Web服务器,开始监听客户请求。
(4)客户在Chrome中输入http://127.0.0.1:81/index.html获取网页及各种文本图片等资源,之后显示。
# **五、实验结果展示与分析**
## 1、HTTP协议分析
在获得了要请求网页所在主机的IP后,本地PC将作为客户机向服务器发起TCP连接请求,连接请求建立成功后,客户机即可向服务器返回确认,这就是俗称的“三次握手”过程。
![](https://www.writebug.com/myres/static/uploads/2021/10/31/2cb8052e08b2fe1f67adfe25c6b5f6cf.writebug)
该图片上标号为24,26,27和25,28,29分别为一个三次握手过程,源端口号分别为27438和27439,目的端口均为80。以第二个连接为例,第25个为客户机向服务器发起请求,第28帧为服务器作出确认和响应,第29个为客户机向服务器服务器返回确认。第30个则为一个HTTP请求,其请求报文如下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/31/1ea625a01c9adfec73e04dc968f1c712.writebug)
划红线标记的那一行为请求行,是后继的行为首部行。HTTP使用传输层协议是TCP,方法字段大多数为GET(如下图),还显示了接受的文件类型text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8,接受语言为中文,浏览器类型User-Agent以及使用持久连接(Connection: keep-alive\r\n)。
![](https://www.writebug.com/myres/static/uploads/2021/10/31/b056730c9bbb3c848f1f304197b8c454.writebug)
服务器的响应报文如下图所示:划红线标记上的那一行为初始状态行,接下来的六行为首部行。
![](https://www.writebug.com/myres/static/uploads/2021/10/31/ec1e9b5547f5780b38562821f260c716.writebug)
客户机通过分析html文件,继续向服务器发起连接,并且可能携带CookieID信息。
## **2、Web服务器实现**
可以通过浏览器访问本地服务器上的网页。
网页文件及其中的文本图片等资源放在Web服务器目录下,名为www。
网页中已包含.jpg\.bmp\.png\.gif等图片格式,网页样式如图。
![](https://www.writebug.com/myres/static/uploads/2021/10/31/ff75cd7857e5c8038e6435245e41f0a5.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/31/8a56ec3cd368c65124ad62b5332e3963.writebug)![](https://www.writebug.com/myres/static/uploads/2021/10/31/74c6965b4bd42305340be5e530c6cfd0.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/31/c6943f4a2239d7f0c26223225ae69e63.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/31/aa855ef4b8a01d3fe32b90e72daf8700.writebug) |
打开Web服务器.exe,开始监听,在浏览器输入http://127.0.0.1:81/index.html,可以获得响应。
服务器(为win32控制台程序)记录响应请求如下(请求较多,节选):
![](https://www.writebug.com/myres/static/uploads/2021/10/31/f0a46b941c3b9e17d333ae2d5d383a4d.writebug) |
![](https://www.writebug.com/myres/static/uploads/2021/10/31/c628de23a99be1c5d16fefb73c349b55.writebug) |
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
实验原理 1、利用Wireshark软件抓取本地PC的数据包,观察其主要使用的网络协议。 2、根据所获数据包的内容分析相关协议,从而加深对HTTP网络协议的理解。 3、利用Winsock实现本地Web服务器,并实现与浏览器的交互。
资源推荐
资源详情
资源评论
收起资源包目录
100010681-基于C语言实现的web服务器.zip (31个子文件)
webmaster
.gitattributes 2KB
LICENSE 1KB
Web服务器.sln 1KB
HTTP协议分析与编程.docx 1.41MB
Web服务器
Web服务器.vcxproj 7KB
Web服务器.vcxproj.filters 929B
WebServer.cpp 5KB
www
image
star.jpg 1KB
nku.png 140KB
t2.png 442B
123.jpg 3KB
QQ.gif 5KB
nku.jpeg 141KB
456.bmp 3KB
nku.jpg 38KB
index2.html 160B
index.html 619B
test.txt 15B
README.assets
wpsC5B3.tmp.jpg 123KB
wpsC5B4.tmp.jpg 238KB
wpsC5CB.tmp.jpg 81KB
wpsC5CA.tmp.jpg 90KB
wpsC5B1.tmp.jpg 80KB
wpsC5C7.tmp.jpg 80KB
wpsC5C9.tmp.jpg 135KB
wpsC5B2.tmp.jpg 149KB
wpsC5C6.tmp.jpg 52KB
wpsC5C5.tmp.jpg 44KB
wpsC5C8.tmp.jpg 143KB
.gitignore 4KB
README.md 6KB
共 31 条
- 1
资源评论
神仙别闹
- 粉丝: 2672
- 资源: 7640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功