搜档网
当前位置:搜档网 › 《计算机网络课程设计》

《计算机网络课程设计》

《计算机网络课程设计》
《计算机网络课程设计》

计算机网络课程设计报告

题目:Web服务器的搭建及HTTP协议和底层协议运行分析

学生: xxxxxxx

学号: xxxxxxx

班级: xxxxxxxx

教师: xxxxxxx

完成日期:2017年 6月 22 日

《计算机网络课程设计》成绩评定表班级:xxxxx:xxxxx学号:xxxxxxx阅卷教师签名:

Web服务器的搭建及HTTP协议和底层协议运行分析

一、题目说明

1、课程设计题目分析5

本题是要在Window操作系统上进行web服务器的搭建,之后在另一台电脑上运行该服务器,同时在该电脑上抓来往的数据包,并观察该数据包中的HTTP协议的结构。

2、题目涉及的技术原理10

本题通过对操作系统中的IIS(Internet 信息服务器)的安装,再通过编辑自己的编写的服务器代码设置自己的默认网页,进行Web服务器的配置。

在另一台电脑上,将这台电脑用作客户端,运行自己刚配置好的Web服务器。同时,打开wireshark应用程序进行数据包抓包,抓取http包,对抓到的http包进行结构分析。

当前对于Web页面的访问应用都是基于Http应用协议的,而在下层则使用TCP(传输控制协议);但TCP并不适合于短会话(少量的数据交换的情况),当期用于短对话时会增加额外开销,而建立、撤销TCP的开销却又是必需的。因此,提出了一种混合TCP与UDP 的动态选择传输层协议来实现Http协议的方法,若在短对话时使用UDP(用户数据报协议)作为传输层协议,而当有大量数据需要传输时则使用TCP作为传输层协议,这样,对于短对话可以避免TCP的

额外开销,而对于长会话又可以得到有TCP提供的可靠传输并减少网络拥塞。

3、该技术的应用及发展5

ProgressiveDownload (渐进式下载方式)也可以认为是HTTPStreaming 的前身,其通过 HTTP 协议来传输文件。目前,国外比较主流的视频(如YouTube ,优酷,土豆,六间房等)一般都用ProgressiveDownload 的方式播放视频节目。ProgressiveDownload在用户点击播放视频节目时,会给用户发送视频文件,用户可以边下载、边播放,而不是等到文件下载完毕才可以播放视频。在用户暂停播放时,服务器依然会给客户端发送视频文件,直至整个文件下载完毕或者用户关闭视频。基于此特性产生一个问题:如当一个文件为3min ,用户观看前 1min 后就不想再观看而关闭视频播放时,而此时文件可能已经全部下载完毕,这样就会造成后 2min 资源传输的浪费。

ProgressiveDownload 客户端与服务器的交互过程参见下图,由客户端发起 HTTP 请求,服务器受到请求后回复给客户端其请求

图1 HTTP请求/响应

目前,支持 HTTPStreaming 的客户端有有 AdobeFlash Player 10.1 ,微软的 Sivelight 以及 APPLE 的Safari 等。

以 IISSmoothStreaming 客户端为例可以通过直播以及点播的SmoothStreaming 功能为用户提供丰富多彩的 Siverlight 用户体验。

现有的客户端功能的例子包括诸如播放、暂停和停止简单的控制,以及更复杂的功能,如即时回放、现场广告插入、多镜头角度和快进 / 快退。

IISSmoothStreaming 客户端包括 Smooth Stream-ing 媒体元素( SSME ) SDK 。它使开发人员和设计人员利用基于具有完全的XAML 支持的SilverlightSDK 的NET 框架设计出丰富的IISSmoothStreaming 播放体验。这是一个更广泛的开放源码的Silverlight 媒体框架的核心组成部分。 IISSmoothStreaming 客户端 API 为开发人员和设计人员提供了一个方便的界面供其在Silverlight 平台创建丰富的 Smooth Streaming 经验。

MSDN 上可以找 SmoothStreamingClientAPIs 文件。大多数情况下, Silverlight 媒体框架是最简单、最可靠的方式来建立一个新的 Silverlight 流媒体播放器,支持 SmoothStreaming ,分析,现场广告插播等。SmoothStreaming 客户端支持功能:

(1) 基本的播放控制

●APIs (如播放、暂停、停止)。

●回放和诊断。

●属性跟踪定位等。

(2) 先进的播放支持

●DVR 支持 LiveSmoothStreaming 。

●在 DVR 中支持跟踪直播事件。

●Trickplay ———慢动作,快进,快退。

●多音频语言支持(新)。

●文字的标题和字幕(新流支持)。

(3) 支持离线播放的方案(新)

(4) H.264/AAC 支持

(5) 价值化

●广告播放集成—调度能力,跟踪广告的进展。

●现场直播与 IIS 平滑流广告插播。

●丰富的分析与 IIS 高级的日志记录。

●分析的 API (新)。

●支持指定标志和广告摄取点以外的主要表现。

●容保护——— VC-1/H.264 容 PlayReady 一体化。

●支持的综合表现等情况下的粗切编辑( RCE 条件下)。

●选择曲目进行播放(如限制可用比特率,支持在一个单一的流等多个摄像机角度)。

●支持渐进式下载的广告和容。

二、应用设计

1、网络环境设计5

两台电脑,通过对Web服务器的搭建,来进行Http协议的抓包。

(1)搭建web服务器需安装应用程序IIS

(2)在IIS程序中编辑已写好的服务器文本,先打开window 操作系统中的控制面板,之后再在控制面板中找到“打开或关闭window功能”选项中选中管理工具,找到IIS (Internet信息服务器),将其安装。

(3)打开IIS,会存在一个默认网页,如下图:

(4)选择该网页,单击右键中会有一个基本路径选项,选择某个路径为自己显示的网页容,如下图:

(5)启用IIS中的目录浏览,如下图:

如下图网络拓扑图所示,表示该服务器与客户端的连接:

2、网络应用方案设计10

HTTP(超文本传输协议)是目前通过Internet进行信息交换最主要的方式。HTTP协议是基于请求/响应式的(相当于客户机/服务器)。一个客户机与服务器建立一条TCP后,发送一个请求给服务器,服务器接到请求后,给予相应的响应信息。

许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。

当前Web页面的访问大多都是通过HTTP协议,并使用TCP作为下层的传输控制协议。本文提出了一种混合TCP与UDP的动态选择传输层协议来实现HTTP协议的方法,它不同于现在采用的使用单一TCP传输协议来进行数据传输的方式。它不仅可以改善取回页面的延迟、网络拥塞以及服务器的负荷,还能使TCP与UDP得以充分利用。在客户端发起HTTP GET请求后,在客户端和服务器之间进行数据包交换的示意。图中只有两个数据包是有用的(即携带了数据):一个是HTTP GET请求,另一个是HTTP的响应。其它的都是TCP用

来进行握手操作的数据包。为了减轻Web 服务器的负荷,经常采用重定向机制。这样从服务器发来的重定向响应报文是很短的数据包。使用TCP 作为传输协议需要至少7个数据包,而使用UDP 则只需要2个数据包就足够了。

本实验采用软件wireshark 进行数据抓包,主要观察http 协议的请求包和响应包。

3、重点测试目标5

如下图所示,本实验主要通过观察在用户端抓到的http 协议的数据包主要包括请求包以及响应包

三、应用实现

1、抓包过滤5

本实验通过在window 操作系统同一网段下的Browser 中抓取http 数据包如下图所示:

2、应过程实施10

(1)打开另一台电脑的应用程序Wireshark ,并开始抓包

(2)配置好服务器之后,在用作客户端的另一台电脑中浏览器中打开已配置好浏览器的网址,如下图:

输入已配置服务器的网址

请求链接

UA :用户代理 O :源服务器

UA V O

响应链接 图1 HTTP 协议实现的最简单模型

打开网址之后的页面

(3)打开wirshark会显示在服务器与客户端正在往来的数据包(4)在wireshark中过滤器进行过滤,如下图:

3、显示过滤5

通过过滤器筛选的符合要求的数据包,如下图:

四、运行分析

1、应用过程抓包结果说明5

这部分说明你在这个应用过程中捕获的有关数据包,结合网络应用的过程分阶段展示捕获数据包的总体情况,并进行说明。

需要展示批量抓包的截图。

2、协议机制分析说明10

1.HTTP的请求消息(Request message)

HTTP请求的第一行必须是请求行,用来说明请求类型、要访问的资源和使用的HTTP版本。之后是头部,用来说明服务器使用的附加消息。头部之后是一个空行,空行后可以添加任意的其它数据,称为主体。

(1)请求行的第一个词是请求服务器发送页面,该页面被适当编码成MIME。大部分发给Web服务器的请求都是GET方法。

GET的通用形式是:GET filename HTTP/1.1

其中filename是预取的页面名字,1.1是协议版本号。

(2)POST方法用于提交表单。它不是简单地检索一个页面,而是上载数据到服务器,然后服务器利用这些数据做某些事,具体取决于URL,概念上是将数据附加到对象上,最后方法返回一个指向结果的页面。

(3)PUT方法不是读取页面,而是写入页面。通过这个方法可以在远程服务器上建立起一组Web页面。这个请求的主体包含了页面。页面可以利用MIME编码,这种情况下,跟在PUT后面的行可能包含了认证头,以便证明调用者的确有权执行所请求的操作。

2、HTTP的响应消息

HTTP响应由一个状态行及可能的头部和主题组成。状态行包括一个3位数字的状态码,该状态码指明了这个请否被满足;如果没满足,则原因是什么。状态码的第一个数字把响应分成5大组。

1XX码实际上很少使用。如100表示服务器同意处理客户请求。

2XX码表示这个请求被成功处理,并且如果有的话,返回了相

应的容。如:200表示请求成功,204表示没有容。

3XX码告诉客户应该检查其他地方。使用另一个不同的URL,或在它自己的缓存中查找。如301表示移动页面,304缓存的页面仍然有效。

4XX码表示由于客户错误导致请求失败。如403表示禁止页面,404页面没找到。

5XX表示服务器自身出现部问题,有可能是服务器代码中有错误,也可能是临时负载过重。如500表示服务器部错误,503表示稍后再试。

3、关键数据包协议栈说明5

http请求报文和响应报文都是由三个部分组成的。但这两种报文的格式的区别就是开始行不同。

(1)开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分

别代表“回车”和“换行”。

(2)首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。

(3)实体主体,在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。

http请求报文:

http响应报文:

Request lines Header lines

Status lines

Header lines

Data(Enitity body)

五、课程设计总结

通过本次大作业,我了解了http程序的运行过程以及http协议的格式,明白两种http报文的区别。

参考文献

[1]康亮 HTTP Streaming技术发展趋势电信网技术2011.6 [6]

[2]free.paperyy.

[3]希仁计算机网络第七版电子工业

[3]任兴田,建红,王勇计算机网络课程设计清华大学

相关主题