http协议范文

时间:2023-11-10 21:52:50

http协议

http协议篇1

关键词:IPv4;IPv6;互通;翻译;HTTP协议

中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)04-10978-02

1 研究和应用价值分析

HTTP是TCP/IP协议族中重要的应用层协议,是WWW实现的技术基础。WWW是目前互联网上最重要的应用,也是互联网发展和普及的重要推动力。据IAB统计,目前Internet上80%的流量来自Web服务器。除了Web应用,其他很多服务,如文件传输、音频视频流传输等,也可以使用HTTP协议实现。应用软件和SQL服务器之间的数据交互和互联网上大部分的数据服务都是HTTP数据流。随着B/S模式的应用软件逐渐成为主流,Web Service等技术的发展,Internet上的HTTP数据量还会进一步增加。

而由于IPv6和IPv4的不兼容,不同协议栈的主机间无法进行HTTP通讯,甚至在一台双栈主机内部,纯粹(Native)的IPv4的软件也无法访问纯粹的IPv6 HTTP服务。同样,纯粹的IPv4 HTTP服务也无法被纯粹的IPv6软件使用。而目前绝大多数HTTP相关的应用软件无法兼容IPv6,重新设计开发这些软件要耗费大量的人力、物力和时间,同时造成现有软件资源的严重浪费,不符合IETF提出的IPv6过渡基本原则。

因此,如果能够设计一种支持HTTP协议的IPv4/IPv6应用层翻译网关,就能够在过渡阶段充分利用现有的大量软件资源,实现无缝的、高效的、低成本的过渡,是一种非常具有研究和应用价值的过渡解决方案。虽然只支持HTTP协议的应用层网关不能象网络层翻译网关一样实现所有数据的互通,但是能够实现至少80%的数据通讯也是很具有实用价值的。而且只支持HTTP协议可以简化设计,在性能、安全性和可靠性等方面也更容易控制。

2 可行性分析

2.1 使用方式实现互通的可行性

服务器(Proxy)技术不仅可用于HTTP协议,其他很多协议(如FTP和SOCKS等)也支持功能。目前技术应用最为广泛的是HTTP,服务器也是HTTP协议规范中重要的内容。在RFC1945(HTTP 1.0)和RFC2616(HTTP 1.1)中对服务器的定义和功能做了详细的规范。

目前HTTP服务器都是部署在两个网络之间,大部分情况是两个网络其一是内部网,另一个是互联网。由于大部分内部网使用IPv4内网地址(也被称为私有地址,如192.168.x.x),内联网上的主机无法和互联网上的主机直接通讯,所以使用服务器作为中介,同时起到网络防火墙的功能,对内部网进行保护,还能够对内部网和互联网之间的通讯进行控制和记录。很多具有公网地址(也被称为合法地址)的内部网出于安全考虑也使用服务器和互联网连接。

运行服务器的计算机至少要有一个公网地址和一个内网地址。目前绝大多数服务器只接受来自内部网的请求,但是可以向两个网络发送请求。服务器接受请求时,将内部网不同地址不同端口映射到同一公网地址的不同端口,并在服务器内部保存这种地址端口映射关系,再通过公网地址的这些端口连接到内网计算机所请求的各个服务器。当服务器返回信息时,再查找映射列表,把返回信息转发到各个请求连接的内网计算机,从而实现了内部网多台计算机通过同一个公网IP地址访问互联网,互联网上的计算机也只能得到服务器所在计算机的地址,因此可以对内部网起到保护作用。

由工作原理分析,服务器工作时,一个网络内部的通讯与另一个网络是没有任何关系的,理论上可以使用不同的IP协议。现在假设运行服务器的计算机是双栈主机,内部网是IPv6网络,而且服务器支持IPv6。服务器接受来自IPv6主机某端口的请求,将该请求通过IPv4地址某端口转发到IPv4网络上,并保存该地址端口映射关系。当IPv4服务器返回信息时再查找映射列表转发给IPv6主机,就实现了IPv6主机访问IPv4网络上的服务器。同理也可以实现IPv4主机访问IPv6网络上的服务器。如果服务器设计成可以接受来自两个网络的连接请求,就能够实现IPv4和IPv6网络的互通。

对于应用软件,它和服务器间的通信和另一个网络使用何种IP协议是无关的,只需要将请求交给服务器处理就可以了。因此不需要对两种IP网络上的软件做任何更改,只需要配置服务器就可以实现无缝的互通。在一个既有IPv4主机又有IPv6主机的混合网络或者双栈主机内部,各种软件之间也可以通过这种方式互通。对于不能接受IPv6格式地址的软件,可以使用域名请求连接。

比如对于IE浏览器,当没有配置使用服务器时,IE对地址栏中输入的信息进行判断,如果是IP地址,就根据地址连接服务器,如果是域名就进行解析,然后再连接服务器。在此过程中,如果操作系统或者浏览器其中一个不支持IPv6,就无法连接到IPv6服务器。而当在IE中使用服务器时,IE只是将域名发送给服务器,由服务器进行域名解析并连接到Web服务器,在整个通信过程中浏览器没有使用到最终Web服务器的IP地址。在访问IPv6服务器时,操作系统和浏览器可以都不支持IPv6,浏览器能够通过支持IPv6的服务器访问IPv6服务器,原因在于浏览器和网关之间的通信不牵扯到任何IPv6相关的信息。

由以上分析,使用方式实现IPv4和IPv6主机间互通理论上是完全可行的,同NAPT-PT技术有很多相似之处,所不同的是只支持HTTP协议,需要对应用软件进行服务器设置。

2.2 Java语言对IPv6的支持

Java从1.4版(也被称为Java2 1.4)开始支持Unix和Linux平台上的IPv6。在2004年新的Java 1.5版(也被称为Java5)开始支持Windows平台上的IPv6。Java增加了一系列的类和方法对IPv6相关的网络编程给予支持,而且尽最大可能与IPv4兼容,与协议栈交互等复杂的底层工作由Java运行环境(JRE)和操作系统完成,无需程序员和用户参与,极大的降低了IPv6开发和应用难度。

IPv6专用的IP地址类Inet6Address与IPv4专用地址类Inet4Address是同一个类.InetAddress派生出来的,兼容性非常高。除此以外,网络其他操作如获取地址、打开端口、建立和关闭连接等操作所使用的类和方法与IPv4是完全相同的,因此使用Java开发IPv6的网络软件与IPv4没有很大的区别,甚至一些IPv4软件无需重新编译就可以在新版JRE上支持IPv6。Java对IPv6的支持和兼容性是其他语言无法比拟的。

2.3 使用Java开发IPv4/IPv6网关的可行性

实现IPv4/IPv6网关的重点有两个方面:

(1)能够在两种不同类型的IP地址上各打开一个端口进行监听,接受来自其中一种IP地址某端口的连接请求,并能够使用另一种IP地址的某端口连接到所请求的服务器上。

(2)能够建立和维护一个IPv4和IPv6地址端口的映射列表,并且能够根据该映射列表将服务器的返回信息转发给发出请求的主机。

2.4 Java语言能够很好解决的两个方面问题

(1)Java使用ServerSocket(int port)创建服务器并打开端口进行监听连接请求,这一方法与IP地址类型是无关的,同时兼容两种IP地址。Java使用Socket(InetAddress address, int port)方法创建网络连接,其中InetAddress与IP地址类型也是无关的。因此使用同样的方法就能够实现在两种类型的IP地址上打开端口监听、建立连接等操作,兼容性非常高,在一个既有IPv4主机又有IPv6主机的混合网络中也一样能够很好的工作。

(2)Java支持多线程编程,对于每一个连接请求可以派生出一服务器线程,接受连接请求并根据请求的服务器地址转发请求。该线程直到传输结束或者出现错误时才被结束,因此在一个线程内部存在一对源地址源端口和目标地址目标端口的映射。当存在多个连接请求时就会有多个服务器线程,自动建立多个映射。这种映射列表是动态的,由多线程机制自动维护的,无需额外的编程就能够实现。

由以上分析,使用Java设计和开发支持HTTP协议的服务器网关是完全可行的,而且由于Java语言本身对网络编程的良好支持和对两种IP协议的高度兼容,设计和开发难度不会很大,能够保证性能和可靠性。

3 功能模块介绍

该网关的总体功能模块结构如图1所示,其中蓝色线表示控制流,红色线表示数据流,线端箭头表示控制或数据流向。

图1 总体功能模块图

3.1 启动管理管理器

该模块负责系统的初始化和启动工作,为其他模块提供各种必要的工作参数。该模块的运行是整个软件工作的第一步,也是其他模块运行的基础。

初始化操作包括从系统配置文件中读取各个配置参数,包括系统日志文件名、通信日志文件名、Web配置管理员口令、网关服务器端口号、是否记录通讯日志、是否打开调试模式等。如果系统配置文件不存在,启动控制器根据系统默认配置创建一个配置文件。

启动操作是在其所在的计算机所有IP地址上打开一个特定的监听端口,该端口号来自初始化操作,并将系统启动时间写入系统日志文件。

如果初始化和启动过程中出现严重的错误,如Java运行环境(JRE)不存在、端口已被占用等,将错误出现的时间和相关信息在控制台显示,同时写入系统日志文件,并关闭系统。

当系统正常启动后,在所有IP地址的特定端口上监听,直到系统被关闭。如果由来自客户端软件的请求,则通知线程管理器,启动一个新的网关服务器线程,处理该请求。如果有来自Web配置服务器的重新启动或关闭指令,则重新启动整个系统或者关闭系统。

3.2 线程管理器

该模块负责接受启动管理器的指令,启动一个新的网关服务器线程。如果在启动新线程的过程中出现错误,将发生错误的时间和相关信息写入系统日志文件。

当线程管理器收到来自网关服务器线程的结束信息时,结束该线程,并回收内存等系统资源。

3.3 网关服务器

该模块是整个系统的核心,负责处理来自客户端软件的连接请求,并向服务器转发该请求。当服务器返回数据时,再将数据转发给发出请求的客户端软件。该模块在线程管理器的控制下启动,系统中可以有多个网关服务器线程同时运行,每一个请求对应一个线程。当一次HTTP通信正确传输完毕或者由于错误通信无法继续时,网关服务器线程会产生结束信息,然后线程管理器会结束该网关服务器线程,并回收内存等系统资源。

该模块负责接受来自客户端的请求信息,获得来自客户端软件所请求的URI(Uniform Resource Identifier 同一资源定位符)和HTTP报头后,对其进行检查,如果出现格式错误或者无法识别的报头和URI,则向客户端软件发送一个HTML格式的报告错误,并产生线程结束信息。

连接请求检查无误后,根据URI连接服务器,并请求URI中所表示的资源。如果URI中使用域名,还要进行域名解析获得服务器的IP地址。如果HTTP报头中携带POST方法所产生的数据,则将报头发送给服务器软件。如果系统还配置了使用上一级服务器,则将HTTP报头和URI转发给上一级服务器。如果发现请求的服务器地址是所在计算机地址时,则连接到Web配置服务器上。如果在连接服务器的过程中出现域名无法解析、服务器不存在、连接服务器超时等错误时,向客户端软件发送一个HTML格式的错误报告,并产生线程结束信息。

与服务器连接正确后,产生一个数据流管道(Date Stream Pipe),管道一段连接到客户端软件,另一端连接到服务器软件。此时网关服务器只是一个简单的数据通道,不再对HTTP数据流进行任何操作和处理,实现了客户端和服务器间的透明传输。当客户端和服务器通信完毕正常关闭连接时,数据流管道会同时关闭,网关服务器产生线程结束信息。当网关服务器与客户端或服务器通信时发生无法连接、超时等错误,无法继续通信时,管道也会自动关闭,并向客户端发送错误信息。这种数据流管道的建立是实现IPv4和IPv6主机间HTTP互通的关键,是整个软件研究和设计的重点。

如果系统配置中选择了记录通信日志,则将客户端请求时间、IP地址、请求连接的URI写入通信日志文件。如果系统配置中选择了调试模式,则将经过数据流管道的所有HTTP报头和HTML文件源代码写入系统日志文件,包括来自客户端的数据和来自服务器的数据,在软件调试时用来查找错误。

3.4 Web配置服务器

该模块提供Web远程配置功能,能够对系统参数进行更改,重新启动系统和关闭系统。该模块使用与网关服务器相同的端口进行Web服务,用户使用Web配置功能首先要使用管理员口令登录,然后Web配置服务器读取系统配置文件,将系统目前各项参数以网页的形式发送给浏览器,用户可以通过Web表单的形式将更改后的参数发送给Web配置服务器,Web配置服务器改写系统配置文件并通知启动管理器重新启动系统。用户还可以通过Web管理器直接重启或关闭系统。

3.5 系统配置文件

系统配置文件记录了系统工作的各项初始参数,包括通信日志文件名、系统日志文件名、管理员帐号口令、网关服务器端口号、是否记录通信日志、是否打开调试模式等参数。

3.6 系统日志文件

系统日志文件记录了系统工作情况,如系统启动时间,启动和工作过程中出现的错误等。如果在系统配置中打开了调试模式,经过网关服务器的所有HTTP报头和HTTP源代码也记录在系统日志文件中,方便程序调试时查找和分析错误。

3.7 通信日志文件

通信日志文件记录了所有客户端的连接请求,包括客户端的IP地址,请求时间和所请求的服务器的IP地址或者域名。

4 测试和分析

4.1 互通测试

本网关研究和开发的目的是实现IPv4和IPv6网络间的HTTP互通,因此互通性是测试的重点,测试方法包括:检测浏览器和Web服务器能否正确通信,分析网关系统日志和使用CommView捕获帧进行分析。本项测试中各计算机运行的操作系统是Windows XP(SP2)和Windows Server 2003,浏览器使用IE 6.0,Web服务器使用的是IIS 6.0,并在IIS服务器上运行一个简单的ASP程序,检测浏览器能否通过GET和POST方法向服务器发送数据和服务器是否能够读取浏览器的Cookies信息。经测试,通过该网关软件IPv4和IPv6主机间可以实现HTTP数据流的互通,实现了设计目标。

4.2 性能测试

在试验网上进行了IPv4和IPv6互通四种情况下的性能测试,测试中Client1为Web服务器,Client2为客户端,网关软件在Gateway上运行,服务器和客户端之间通过HTTP协议传输一个750M的文件。测试数据如表1。

测试数据显示使用该网关软件互通吞吐率能够达到50Mbps以上,达到了比较高的水平。由测试数据分析发现,在互通过程中,Gateway CPU利用率始终为100%,可见互通的瓶颈出现在网关软件所在的计算机Gateway上,如果升级Gateway的CPU,互通性能可能会有所提高。从测试数据中还发现,在网络硬件和CPU占有率相同的情况下,IPv6主机间通信时吞吐率最高,IPv4主机间通信时吞吐率最低,差距达到了18%。以上测试数据再次说明IPv6协议比IPv4协议性能和效率上有较大优势。

参考文献:

[1]沙斐,程莉,周立译.Pete Loshin,IPv6详解[M].北京:机械工业出版社,2000(4).

[2]Robert L. Fink, Robert M. Hinden. 6bone (IPv6 Testing Address Allocation) Phaseout, RFC3701[S],2004(3).

[3]Joseph Davies著,张晓彤,晏国展,曾庆峰译.理解lPv6[M].北京:清华大学出版社,2004(3).

[4]Robert M. Hinden, Stephen E. Deering, Erik Nordmark. lPv6 Global Unicast.

[5]Address Format, RFC3587[S],2003(8).

[6]Robert M.Hinden, Stephen E. Deering. Internet Protocol Version 6 (IPv6) Addressing Architecture, RFC3513 [S],2003(4).

[7]Thomas Narten, Richard Draves. Privacy Extensions for Stateless Address Autoconfiguration in IPv6, RFC3041 [S],2001(1).

[8]Stephen E. Deering, Robert M. Hinden. Internet Protocol, Version 6 (IPv6) Specification, RFC2460[S],1998(12).

[9]Christian Huitema著,陶文星,胡文才译.新因特网协议IPv6(第2版)[M].北京:清华大学出版社,2000(6).

http协议篇2

关键词:HTTP隧道木马;原理;检测方法

中图分类号:TP309.5文献标识码:A文章编号:16727800(2012)009015202

0引言

随着互联网的飞速发展以及网络中病毒木马程序的日益泛滥,防火墙已经成为保护局域网络中主机免受恶意程序侵害的一道屏障。随着防火墙技术的日益成熟,很多传统远控型木马程序已经失去了其发展空间,然而一种新型的利用HTTP协议隧道的木马又出现了。本文将主要介绍该类木马的运行原理以及目前针对该类木马的主流检测方法。

1HTTP协议隧道

HTTP协议隧道位于应用层,是将需要传输的数据封装在HTTP协议格式数据包中,通过HTTP协议在网络中进行传输,当HTTP数据包抵达目的地后对HTTP数据包进行解包,得到真实的数据。HTTP协议隧道分为直接型和中转型两种模式。

1.1直接型模式

此模式中每台主机都既作客户端又作服务器,可以相互通信。在客户端中,数据经过HTTP隧道软件使用HTTP协议进行封装,然后通过80端口或者8080端口发送到对方主机。服务器端收到数据后对HTTP包进行解包操作得到实际传输的数据。

1.2中转型模式

此模式中有一个专门的HTTP隧道服务器,负责接收客户机的请求,然后与目标主机通信,将客户端传过来的数据交付给目标主机。在客户端与目标主机之间仍使用HTTP协议对数据进行封装后传输。

2HTTP隧道木马原理

HTTP隧道木马与传统木马程序在功能上基本一致,主要差别在于通信方式上。传统木马,不论是正向连接型还是反向连接型,基本都是通过高于1024端口进行通信,然而现在的很多杀毒软件以及防火墙对于这些端口的检测会较为严格,从而使得木马程序容易暴露身份。而随着B/S模式的广泛应用,越来越多的网上流量都是通过HTTP协议进行传输,因此绝大多数防火墙对于HTTP协议都采取进行简单协议结果判定后直接允许其通过的策略,而这样的策略就给了木马程序以可乘之机。

HTTP隧道木马利用HTTP协议隧道,将自己需要传输的数据利用HTTP协议进行封装,然后经由HTTP协议专用端口80端口或者8080端口与外部服务器进行连接,服务器在得到数据以后进行简单的HTTP协议解包就可以得到实际的数据。

一般此类木马选择的HTTP协议隧道类型均为上一节中介绍的中转型模式。在木马实际运行过程中,客户端(即控制端)首先将待执行的命令以文件的形式存放在HTTP隧道服务器中,而对于服务端(及被控端),每次上线后会主动请求连接HTTP隧道服务器,然后用GET或者POST命令请求服务器中的特定文件(预先设定好的存放命令的文件)。如果文件中有需要执行的命令,则在被控端主机上执行相应操作,然后将数据封装成HTTP数据包回送给HTTP隧道服务器,如果文件中没有命令需要执行,则服务端断开连接,一段时间后再次以相同方式询问是否有命令,如此往复。通过此流程,HTTP隧道木马就可以借用HTTP协议躲避防火墙的阻拦与控制端进行通信。

3主流检测方法

针对HTTP隧道木马的检测方法目前主要存在下面的三大类:基于签名的检测、基于协议的检测以及基于操作行为的检测。下面分别对3种检测方法进行介绍。

3.1基于签名的检测(SIGNATUREBASED DETECTION)

该方法主要通过检测HTTP协议数据包定的数据式样来判断是否是可疑的HTTP数据包。这里所谓的特定的数据式样,指的是比如“cat c:”、“cat d:”、“del c:”、“PWD”、“RETR ”、“cmdc:”、“cmd net start”等字串。这些字串一般为计算机的一些操作指令,如果HTTP数据包中含有这些数据式样则将其判定为使用HTTP隧道进行传输。

然而这种方法也存在一些问题,比如很难准确找到有哪些数据样式只存在于HTTP隧道木马传递的数据包中而不可能或很少出现在正常网页里,因为HTTP协议是基于对象的协议,可以传输任何类型的文件,我们不能保证这些文件中不会出现所定义的“数据式样”,因此此方法在实际运用中可行性较低。

3.2基于协议的检测

由于很多HTTP隧道木马在进行HTTP隧道传输时都只是进行了一个简单的HTTP协议封装,即在数据外加上了一个HTTP头部,然而这种简单的协议封装往往在很多时候不符合实际的HTTP协议正常的格式。并且在数据交互的过程中,HTTP隧道木马一般只是简单发送单个HTTP数据包,而不会完整执行整个HTTP协议中规定的一整套交互流程。根据这些协议上的特点可以对HTTP隧道木马进行检测。

然而在有些情况下这种方式仍不能正确地对该类木马进行准确识别。比如木马程序为了伪装而进行一系列虚假的HTTP协议交互过程,从协议层面上看该过程完全无法分辨出是否为木马程序。

3.3基于操作行为的检测

该方法主要提取了HTTP隧道木马程序在网络会话上的一系列特征,如:数据包大小、数量、会话时长、会话上传数据量、会话上传数据量和下载数据量之比以及会话平局上传速率等。然后基于这些特征采取数据挖掘技术,对HTTP隧道木马进行分类,对其建立相应木马网络会话特征模型,根据此模型对其进行检测。

资料显示,此种检测方法在HTTP隧道木马程序检测方面的效果较好。此方向研究者较多,各研究者之间差别在于采取的特征选取有细微不同,以及采取的分类算法存在一定差异。

3.4分析比较

分析了3种当前主流HTTP隧道木马检测技术以后,我们可以看到,第一种技术基本无法单独运用于真实环境下的木马检测,在某些情况下可以作为辅助条件进行木马判定;基于协议的检测方法存在一定的适用性,但是也很容易被木马绕过,因此会导致实际使用的效果不佳;而第三种方式则相对显得效果更好,有很好的实用性。

4结语

本文主要就HTTP隧道木马的运行原理进行了介绍,然后对目前主流的HTTP隧道木马检测方法进行了分析比较。通过分析几种当前提出较多的HTTP隧道木马检测方法,得到当前检测该类木马程序最有效的方法在于对木马网络回话中的一些特征进行分类处理,建立该类木马特征模型,然后进行检测。

参考文献:

[1]许治坤,王伟,郭添森,等.网络渗透技术[M].北京:电子工业出版社,2005.

[2]李俊林.通用性HTTP隧道检测技术研究[D].成都:电子科技大学,2006.

[3]CASTRO,SIMON. Covert Channel and Tunneling over the HTTP protocol Detection:GW implementation theoretical design[J]. Nov,2003(16).

http协议篇3

WWW服务器使用的主要协议是HTTP协议,即超文体传输协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,因而HTTP协议允许用户在统一的界面下,采用不同的协议访问不同的服务,如FTP、SMTP等。

(来源:文章屋网 http://www.wzu.com)

http协议篇4

扩展当前IP地址的IPv6已经发展了许多年,可以确保网址真实可靠性的域名系统安全扩展(Domain Name System Security Extensions)也需要几年的普及时间。北极地区西北通道的新海底光缆已经在规划之中,预计建成之后,访问地球另一侧服务器的网址响应时间将会缩短60ms。不过,铺设更多的光缆并不是将不断增长的数据推送到网民面前的高效解决方案。从数据中心到浏览器涉及到不同级别的软件技术,才能确保网络负载达到最优化。明年,将会有哪些新技术和标准“站”出来推进互联网向前发展呢?

更好地控制数据流

快速地处理和传送PB(250,1024TB)级别的数据,除了硬件要做好准备之外,软件也要有所改变。Google为我们示范了应该怎么做。

据国际电信联盟(ITU)的报告,2011年全世界有1/3的人口会经常上网。网络的平均带宽总额达到了每秒90 000GB,也就是正好每月30EB,而且仍在不断增长中。目前的技术要点就是如何高效地管理和控制如此大规模的数据流。Google公司已经为大型网络设备供应商思科和华为做出了示范。根据Arbor Network公司的报告,Google的数据中心与用户之间的数据流动占据了全球互联网数据流量的近6%~10%。在4月份举行的“开放网络峰会”上,Google透露了自己管理数据中心之间流量的方案。非常令人震惊的是,Google大胆地放弃了传统的网络基础架构,引入了自己的最新技术。

为了提高自己的网络负载能力,从网络设备供应商那里购买硬件和相应的配套软件,对传统的网络接入服务提供商来说再平常不过了。但是Google采取了不同的做法,它们直接与中国的网络设备生产厂进行探讨,利用“软件定义网络”(Software-Define Network,SDN)这种新型的网络架构连接路由器和交换机。SDN由OpenFlow协议控制,而OpenFlow协议的功能与路由器和交换机的固件相互独立,它允许管理员更好地集中控制数据包的传播路径,避免拥塞。因此,如果需要的话,它可以为备份、email流量和视频流提供优先通过权。由于Google的内部网络经常需要快速转移几个PB的数据,因此Google需要更灵活的网络流量控制方式。相信未来,SDN将会接管所有的网络接入服务提供商。

谁拥有世界上最好的文件系统?

除了数据流,互联网还需要处理不断增长的任务量,主要是云服务和云存储的应用。例如:亚马逊的EC2弹性计算云,总共占据了全球互联网流量的1%。去年,它一共存储了7 620亿个文件,每秒钟需要处理500 000个任务。只有高级的文件系统才可以在高负荷运转之下确保数据的完整性,并且管理好文件的元数据(名称、大小和日期等),与文件本身的内容分开处理。Facebook、雅虎和亚马逊EC2弹性计算云所采用的Hadoop分布式文件系统(HDFS)可以自动为文件创建几个副本,并且在每个网络节点都有专门的服务器,用于存储文件的元数据。因此,HDFS文件系统可以高效地并行处理PB级别的数据,开源的HDFS文件系统是目前世界上最优秀的文件系统之一。

预测:网络流量稳定增长

来自思科的可视化网络指数(VNI)是描述网络流量最准确的参考数据。它预测,在接下来的3年中,网络的流量将会翻番,其中很大一部分是来自移动设备的网络数据。

OpenFlow:构建Google的新网络

OpenFlow负责调控Google数据中心之间的信息流量。与传统的路由器和交换机软件相比,这项开源的技术可以更高效地调配巨大的数据流量。

HDFS:针对大数据的文件系统

只有HDFS这样的分布式文件系统才能有效地处理大量数据的并行访问需求,并且分配专门的服务器进行文件管理。

存储文件时,主控服务器会保存它的元数据(文件名、大小等数据),文件本身的内容会存储在数据服务器上。之后,主控服务器发送指令,将文件备份到另一个机架上的服务器中。

可靠的连接协议

没有HTTP协议,浏览器就无法访问网站。但是“老迈”的HTTP协议并不高效,它的继任者可以将网络速度提高最多50%。

超文本传输协议(HTTP)是互联网通讯的基石,但是它已经过时了。最新的版本HTTP 1.1是13年前就开始采用的技术。传输控制协议(TCP)负责将文件分割为数据包,作为TCP协议的上层,HTTP协议负责从服务器上请求一个网站的内容,并且规定网站元素的发送规则。HTTP 1.1允许每个TCP连接完成一个访问请求(request),因此所有的网站元素(文本、图片、JavaScript代码等)都必须一个接一个地发送。现代浏览器虽然通过引入新技术绕过了这个限制,可以建立至多6个并行的TCP连接,但是仍然不够高效,因为服务器处理每个“额外”的连接时都需要500ms的延迟。每个连接都会增加新的不必要的HTTP头信息,这不仅传送了过多的冗余数据,而且不支持信息压缩。更重要的是,HTTP协议只允许由客户端发起请求,即使服务器需要发送更多数据到客户端,也必须等到客户端发出请求后才可以执行。此外,HTTP协议也不提供加密功能,这就是为什么SSL这样的加密协议备受关注的原因。

微软和Google推进HTTP 2.0

http协议篇5

关键词:自动升级;更新平台;网络更新



1 问题的提出

随着桌面应用程序新版本的不断,客户端运行的版本也越来越杂,版本、数据结构的兼容也成为后续开发必须考虑的问题,而且兼容性方面的问题越来越多,开发及维护成本越来越高。

2 问题的分析

随着因特网的普及,通过网络来实现桌面应用程序的更新升级已经成为可能。在程序中加入在线更新的功能将能有效地解决前面讨论的版本维护难题。

关于通信协议,可以编写程序实现socket通信,也可以采用比较成熟的http协议。考虑到诸多因素,笔者选择了http协议。

3 http协议特点

http协议(超文本传输协议)的主要特点可概括如下:

(1)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有get、head、post。每种方法规定了客户与服务器联系的类型不同。 

(2)由于http协议简单,使得http服务器的程序规模小,因而通信速度很快。 

(3)灵活:http允许传输任意类型的数据对象。正在传输的类型由content-type加以标记。 

(4)无连接:无连接的含义是限制每次连接只处理一个请求。www.133229.cOm服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 

(5)无状态:http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

另外,笔者在实验中发现很多网络都设置了防火墙,考虑到安全问题,网络管理员会屏蔽很多端口。而对于http最常用的80端口通常是开放的,这也是笔者选择http协议的一个重要因素。

4 数据流程及数据结构

实际应用中可以对流程进行扩展,例如自动程序线程定时启动、开始更新前检查上次留下的缓存、断点续传等。

该平台中有多个软件产品,存储在u_products表中。每个软件产品有多个用于客户端验证的序列号,存储在u_clients。序列号是客户端的凭证,只有授权了的序列号才能访问平台。而且序列号表还标出了该序列号允许升级的版本范围。同时,每个软件产品对应的多个文件,通过服务端脚本输出一个文件列表。客户端连接上服务器后首先要做的就是下载属于它的文件列表。

文件列表用于比较客户端文件与服务器上的各个文件的新旧。其中的时间戳是主要比较字段,文件名用于记录定位。

5 客户端工作流程

需要指出的是表1列出的是基本的流程。实际中客户端工作流程会比表1复杂的多。

主程序启动之后,创建自动升级程序的线程。该线程在后台运行,首先读出产品的序列号,通过url参数传值的形式传到web端。此处传值可以更加灵活,可以在用户允许的前提下,将更多的信息传给服务器。例如当前软件版本,客户端操作系统版本,客户端计算机硬件信息等等。

运行在web端的脚本响应请求,判断序列号是否合法,即序列号是否正确,是否过期。通过之后输出与该序列号对应的软件的所有文件列表。

自动升级程序开始通过http协议下载这个列表。下载完毕后读出上一次升级之后,保存下来的文件列表,并与下载下来的列表进行对比,通过时间戳对比找出新文件。通常只要时间戳不一样就将文件加入的需要下载的文件列表中,也可以采用时间戳转成浮点数后大小对比的策略。例如平台中放的是稳定的正式版,而有些客户端已经通过其他途径得到新版本更高的测试版。第二种策略就可以避免高版本文件通过升级之后版本降低。这也是为什么采用时间戳,而不是文件md5唯一哈希值的原因。

得到新文件列表之后,再次通过http协议逐一下载新文件到缓存目录中。下载新文件的url由文件编号和序列号共同确定。每下载一个文件,更新一次本地的文件列表。这样如果出现网络中断,用户退出等异常,下次启动可以跳过已经下载过的文件。虽然这不是严格意义上的断点续传,但在一定程度上提高了程序的容错能力。

数据全部下载完毕之后询问用户是否立即应用更新。如果是则退出主程序,将缓存文件夹中的文件移动到主程序所在的目录中,并覆盖。否则保持缓存中的文件,供下次升级使用。

6 改进及结束语

网络状况很差的时候更新所需要的时间很长。对于该问题,可以对文件进行逐个zip压缩,通过http协议传输压缩流,而不是文件本身的数据流。客户端下载之后进行解压缩。此处是对文件逐个压缩,而不是整体打包。因为整体打包之后会出现客户端只需要更新一个文件而不得不下载整个压缩包的情况。而且整体打包也对断点续传提出了更高的要求。

另外出于某种原因的考虑,有时需要更多考虑数据安全。例如未授权的序列号不能获得新版本的文件,且一个序列号只能对应一个客户端。对此可以采用动态序列号的方式,即下载完文件列表时或更新结束时,都将原有的序列号作废,动态创建一个新的值。

另外对于重大缺陷的修复更新,更希望能强制更新。对此可以在自动更新程序发现更新时,强制停止主程序的响应。通过这一策略甚至可以做到所有的新版本之后,客户端迅速跟进,并全部更新到最新版本。

笔者使用微软的c#语言来实现,经过反复测试,发现zip压缩之后,对网络要求低了很多,更新效率提高很多。通过动态序列号及强制更新策略也基本能保证客户端版本可控。

参考文献

[1]c.j.date.数据库系统导论[m].北京:机械工业出版社,2000.

[2]殷人昆.数据结构(用面向对象方法与c++描述)[m].北京:清华大学出版社,1999.

http协议篇6

在默认情况下,IIS使用HTTP协议以明文形式传输数据,Web Service就是使用HTTP协议进行数据传输的;

Web Service传输的数据是XML格式的明文。没有采取任何加密措施,用户的重要数据很容易被窃取;

SSL的中文全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性;

同时SSL安全机制是依靠数字证书来实现的。SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。

(来源:文章屋网 )

http协议篇7

关键词:计算机; 网络通信; 通信协议

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)14-3236-02

1 网络通信协议的内涵

要了解计算机网络通信协议,可以从通信协议的概念、网络协议的分类和网络协议的组成三个方面入手。

1.1 通信协议的概念

在计算机通信中,两台计算机在进行通信时必须使用通信协议。网络通信协议(Network Communica-tion Protocol),通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,是计算机之间进行相互会话所使用的共同语言。通信协议具有层次性、可靠性和有效性。

1.2 网络协议的分类

网络协议是一种特殊的软件,是计算机网络实现其功能的最基本机制。每种协议都有其适用的应用环境。网络协议的本质是规则,即各种硬件和软件必须遵循的共同守则。但网络协议又不是一套单独的软件,它通常融合在其他软件系统中。网络协议遍及 OSI通信模型的各个层次,基础型协议用来提供网络连接服务,它在网络连接和通信活动中必不可少;应用型协议对于网络来说不是必需的,而是在具体应用到网络服务时才需要。

1.3 网络协议的组成

从网络协议的组成上来看,网络协议主要由语义、语法和时序三个要素组成。语义是对协议元素的含义进行解释,不同类型的协议元素所规定的语义是不同的。语法是将若干个协议元素和数据组合在一起用来表达一个完整的内容所应遵循的格式,也就是对信息的数据结构做一种规定。而时序是对事件实现顺序的详细说明。

2 网络通信协议的原则

一般来说,网络中的计算机与计算机间要想正确的传送信息和数据,必须遵循三个原则,即多选协议的一致性、通信协议的单一性和选择高版本的协议。其具体内容如下:

2.1 所选协议的一致性

所选协议要与网络结构和功能相一致是所选协议的一致性原则。在网络通信协议中,网络通信协议应在网络规模、网络间的兼容性和网络管理等几个方面进行综合考虑。具体说来,如果你的网络规模较小,对网络的要求也不高,只是为了简单的文件和设备的共享,那么在网络选择的配置上,往往最关心的就是网络速度,对所选协议的要求也不一样,选择占用内存小和带宽利用率高的协议,可以满足网络速度的要求,如NetBEUI。当你的网络规模较大,对网络通信的要求也不一样,加之网络结构复杂,所选协议与网络规模较小的协议就不一样,则应选择可管理性和可扩充性较好的协议,如 TCP/IP。

2.2 通信协议的单一性

计算机与计算机之间的通信离不开通信协议,除特殊情况外,一个网络尽量只选择一种通信协议。因为每个协议都要占用计算机的内存,这样就增加了计算机内存的使用量,选择的协议越多,占用计算机的内存资源就越多。通信协议较多会带来两个方面的影响,一方面影响了计算机的运行速度,另一方面不利于网络的管理。通信协议的单一性则可以适应网络协议的要求。遵循通信协议的单一性,使一个网络中一般一种通信协议就可以满足需要。

2.3 选择高版本的协议

在网络通信协议中,选择高版本的协议也是网络通信协议应遵循的原则。计算机网络的高版本协议的功能和性能要比低版本好。但在选择计算机网络协议中,还要注意协议的版本每个版本的协议都有它最为合适的网络环境。应根据计算机网络的实际情况选择合适的版本协议,因此在选择计算机网络通信协议的版本时时,应尽量选择高版本的通信协议。

3 常见的网络通信协议

计算机网络通信协议是一项综合的系统工程,具有长期性和复杂性。为确保网络通信的正常,在选择计算机网络通信协议的时候,应结合计算机网络应用的实际情况,综合选择网络通信协议。通常来说,常见的网络通信协议有TCP/IP协议、HTTP 协议、SMTP 协议和POP3协议,下文将逐一进行分析:

3.1 TCP/IP 协议

TCP/IP 协议在网络通信协议中比较常见。TCP/IP协议是一个协议集合,也是 Internet 的基础协议。TCP/IP 是目前最常用到的一种通信协议,TCP 用于从应用程序到网络的数据传输控制。它是计算机世界里的一个通用协议。在局域网中,TCP/IP 最早出现在 Unix 系统中,即TCP传输控制协议和IP互联网协议,现在几乎所有的厂商和操作系统都开始支持它。

3.2 HTTP 协议

超文本传送协议 (HTTP) 是分布式,协作式,超媒体系统应用之间的通信协议。HTTP 协议是常见的网络通信协议之一,它允许将超文本标记语言 (HTML) 文档从 Web 服务器传送到Web 浏览器。HTML 是一种用于创建文档的标记语言,客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收HTML 文档并进行交互。HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

3.3 SMTP 协议

SMTP是一种提供可靠且有效电子邮件传输的协议。SMTP 协议在计算机网络通信协议中占据着一席之地,目前已是事实上的在 Internet 传输 E-Mail 的标准。从SMTP 协议的组成上来看,SMTP 协议是一个相对简单的基于文本的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,可以很简单地通过 Telnet程序来测试一个 SMTP 服务器,SMTP 使用 TCP 端口 25。要为一个给定的域名决定一个 SMTP 服务器,需要使用 MX(MaileXchange)DNS。

3.4 POP3协议

POP适用于C/S结构的脱机模型的电子邮件协议,POP3协议即“邮局协议版本3”,是TCP/IP协议族中的一员,本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。POP3客户端通常采用“off-line”离线方式访问邮件服务器,在计算机网络通信协议中,提供了 SSL 加密的 POP3 协议被称为 POP3S。POP 协议支持“离线”邮件处理。但目前的 POP3 邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的 POP3 协议。

参考文献:

[1] 冯时雨,王轶辰.实时网络通信协议的设计与实现[J].计算机工程与设计,2008(17).

[2] 杨绍文.谈计算机网络的TCP/IP协议[J].科技信息,2011(2).

[3] 赵晓典,郑向娣,张建丽.网络通信中TCP/IP协议安全隐患研究[J].电脑与电信, 2011(5).

[4] 朱永纯.通信协议的选择与配置[J].科学之友,2011(18).

[5] 张永祥,张伟功,丁瑞,周全,王建.一种改进的数据通信协议设计与实现[J].计算机工程, 2011(18).

[6] 卜宪宪.计算机网络通信安全中关于数据加密技术的运用探讨[J].无线互联科技,2012(1).

[7] 李彦民,张博.基于片上网络资源节点的通信协议研究[J].太原理工大学学报,2012(2).

http协议篇8

网络下载多面手:跨协议下载

如今,互联网上的资源越来越丰富了,资源下载的途径从最初的HTTP和FTP下载,拓展到BT及电驴等P2P下载方式,近年来更是出现了以迅雷为代表的明显提高下载效率的P2SP下载。这时,传统的直接连接某个单一下载资源服务器的做法已经不能解决下载速度慢、下载服务器所需带宽大等弊端。为了提高下载效率,“跨协议下载”的技术应运而生。

目前,很多下载工具软件都应用了跨协议下载技术,但是对于它的定义和概念却众说纷纭,主要有以下两种:

1 兼容多种下载协议:这是跨协议下载的“初级阶段”,严格地讲不算是真正意义上的跨协议下载,称之为“多协议下载”可能更合适。它可以让下载软件从单一支持HTTP和FTP下载拓展到支持更多的协议(如MMS、RTSP、BT和电骡等)下载,其具代表性的软件为较早版本的FlashGet。

2 从多个不同协议的下载源同时下载:这种定义的基础是下载软件已经支持多种下载协议,当使用其中一种协议下载时,下载软件除了用该协议的链接下载文件,还会自动搜索其他三种协议的下载链接,以提高下载速度和成功率。例如,下载一个HTTP协议的文件时,下载软件会自动搜索到BT或Emule甚至更多协议上的相同可用文件进行下载,大大提高了文件下载的效率和成功率,最具代表的是最新版的脱兔。

“跨协议下载”如何跨协议?

为何跨协议下载文件更加流畅且成功率高呢?这都是因为使用了多个下载源(包括不同协议的下载源)的缘故。使用支持跨协议下载的工具软件下载时,软件会自动进行以下工作:

1 点击下载链接时,下载工具软件首先连接下载工具软件厂商的服务器将下载信息告知服务器。

2 如果服务器中存在该文件的相关信息,服务器就反馈更多的不同协议的下载源;如果没有相关信息,就将本次下载源的地址上传到服务器数据库中存储,便于以后更多用户下载时使用。连接的过程中,由不同客户端提供的不同下载协议的源地址,同时保存了下来,不断丰富着服务器的文件库。

3 在获取多个下载源后,下载工具软件自动连接这些下载源开始下载,速度加快,成功率提高。实际点击的下载源服务器不可用时,该文件依然可以连接其他服务器成功下载。

上一篇:调解协议书范文 下一篇:补充协议范文