互联网应用层协议原理与加速技术中国移动研究院倪伟2012年06月目录一、应用协议原理及调度机制•HTTP协议•P2P协议•网银协议•流媒体协议•FTP协议•邮件协议二、互联网应用加速技术三、流量加速手段协同展望•互联网应用层协议概述应用层协议概述互联网存在诸多应用层协议,面向不同的业务及应用场景HTTP/P2P是主流的互联网应用层协议,占用大量网络带宽典型数据:•P2P应用占全部入网流量的40%,超过WEB&WAP访问占比,在部分宽带用户发展较快的省公司,P2P应用占比甚至达到了70%;•视频流量比例不断上升,与P2P应用总计通常会超过75%以上;HTTP协议:发展历程HTTP 超文本传输协议:Internet上使用最广泛的应用层协议,起初是非常简单的应用层通信协议,用于在服务器和客户机之间传输HTML文件、浏览网页,随着时间的发展,越来越复杂。作为WWW的传输协议,非常简单,只支持GET方法,响应中携带的消息必须HTML文件HTTP/0.9RFC1945,基于0.9的各种客户端和服务端的扩展层出不穷,基于扩展推出新标准HTTP/1.0HTTP/1.0RFC2068,HTTP/1.1的正式标准。HTTP/1.1RFC2616在2068基础上进行小版本升级HTTP/1.11997年1999年1996年1990年2012年HTTP/2.02010年IETF立项,开始制定HTTP/2.0协议•灵活性:允许传输任意类型的数据对象,由Content-Type标记;•无连接:每次连接只处理一个请求,服务器处理请求后即断开连接;•无状态:协议对于事务处理没有记忆能力;协议特点协议原理调度机制基于HTTP的应用类型网页浏览视频点播下载/升级彩信其他类型服务器间通信应用与服务器间通信协议原理调度机制用户终端互联网网站用户终端•直接访问:用户终端与远程的WebServer直接建立连接并传输数据;•代理访问:用户终端经由网络中的代理服务器与远程的WebServer进行通信;–透明代理:用户不感知,无需用户进行参数配置,如WebCache;–非透明代理:需用户终端进行参数配置,如WAP网关10.0.0.172、proxy.cmcc–反向代理:部署于WebServer前端,提升服务性能;互联网网站局域网代理透明代理反向代理WAPGWIP NetworkHTTP协议支持直接访问模式和代理访问模式两类HTTP协议:交互机制协议原理调度机制HTTP协议:消息类型•请求(Request)消息:由客户端发给服务器的消息,包括:请求行(Request-Line),可选的头域(HeaderField),及实体(Entity-Body)。•响应(Response)消息:服务端回复客户端请求的消息,其组成包括状态行(Status-Line),可选的头域(HeaderField),及实体(Entity-Body)。HTTP使用典型的请求—响应通信方式,包含两类消息协议原理调度机制HTTP协议:请求消息示例GET HTTP/1.1Connection:closeUser‐agent:Mozilla/4.0Accept‐Encoding:gzip, compressAccept‐language:enCR LFEntity‐BodyRequest LineHeader请求方法URIHTTP版本客户请求服务器执行的操作,HTTP/1.1中定义了8种请求方法统一资源标识,表示被请求资源所处的地址高版本的WebServer可接受低版本客户的请求,并向客户发送同样版本的应答持久连接方式User Agent编码支持告知服务器,浏览器不使用永久连接方式指定用户代理服务器的类型指出发送此请求的浏览器支持哪些压缩编码方式。语言支持客户机浏览器支持的语言是英语(english)协议原理调度机制HTTP协议:响应消息示例HTTP/1.1 200 OKConnection: close Date:Thu,13Mar201203:17:33GMT Server:Apache/2.0.54(Ubuntu) LastModified:Mon,22Jan201209;23;24GMT ContentLength:682l ContentType:text/htmlStatus LineHeader状态码客户请求方法的结果创建时间ServerLastModified服务器创建并发送本响应消息的日期和时间WebServer服务器软件及版本信息与缓存相关的参数,标记出对象本身的创建或昀后修改时间内容长度所发送对象的字节数HTTP版本服务器向客户发送同样版本的应答消息内容类型包含在实体中的对象是HTML文件协议原理调度机制HTTP协议:Cache机制Expire•HTTP控制缓存行为的昀基本手段,HTTPResponse中包含Expires字段后,浏览器会缓存该对象,在ExpireDate到达之前不再向Server发送HTTP请求获取该文件;•Expire的值仅支持固定日期;–如果一个网页每天凌晨1点更新,可以把Expires设置为第二天的凌晨1点;Expires:Fri,30Mar200714:19:41HTTP协议支持不同类型的缓存头域,可以根据不同场景灵活设置使用,使得浏览器或网络中的代理服务器可以缓存资源,提升页面的加载速度,降低对WebServer的连接请求数量,协议原理调度机制HTTP协议:Cache机制Cache-Control•max-age:基于请求时间的相对时间间隔,标记从请求时间开始到过期时间之间的秒数,允许Web服务器更加容易的设置超期时间;•public:表示文件可以被代理服务器或者其他中间服务器识别与缓存;•private:文件对不同的用户是不同的,只有用户浏览器可缓存,公共的代理服务器不允许缓存;•no-cache:文件的内容不应当被缓存。•s-maxage:类似于max-age属性,应用于共享的代理服务器)缓存;•no-store:在任何情况下都不要保留任何副本;•must-revalidate:作用与no-cache相同,但作用的范围更广,强制刷新更严格;•proxy-revalidate:和must-revalidate类似,只对缓存代理服务器起作用;Cache-Control: max-age = 100:该文件在cache中的生存周期为100秒。协议原理调度机制HTTP协议:Cache机制Last Modified/If-Modified-Since•请求消息:用户终端缓存内容后,再次请求请求相同的数据时,可在请求中发送一个If-Modified-Since头信息,其中包含上一次从服务器获取数据的产生时间;•响应消息:如果文件从上次获取后没有更新,服务器则返回HTTP状态代码304NotModified,表示从上一次请求后这个数据没有改变,用户无需再次下载相同的数据;Last-modified:Fri,16Mar200704:00:25GMT协议原理调度机制HTTP协议:Cache机制ETag/If-None-Match•Etag是Web服务器为每个文件生成的唯一标志符,文件发生了改变,Etag也会随之变化;•Web服务器发送用户请求的数据时,在Etag字段中将该文件的标识信息发送至浏览器;•当用户再次请求相同数据时,在请求消息的If-None-Match字段中上报ETag,如果文件没有改变,服务器将返回304状态代码,告知浏览器无需再次请求下载数据。Etag: 55b1d4d45e75c38:eh2协议原理调度机制WebServer1234567移动用户LocalDNS根服务器COM域主服务器网站权威DNS1DNS服务商权威DNS92HTTP应用的调度机制:DNS调度•在DNS响应中将所有服务器的IP地址返回至用户终端,终端通常按照顺序向对应的Web服务器发起连接;普遍应用于各类互联网站点及运营商业务系统传统DNS调度策略智能DNS调度策略•简单负载均衡:网站采用多点方式部署时,DNS服务器对每个查询,按照顺序返回不同的解析结果,将不同客户的访问引导到不同节点服务器上,从而实现负载均衡的目的。•复杂就近调度:根据用户侧DNS的IP地址归属进行判断,使用户尽可能就近访问资源,避免跨网访问,并从成本效益昀大化角度考虑尽量发挥每个节点的处理能力;WebServer2协议原理调度机制HTTP应用的调度机制:应用层调度入口服务器媒体服务器移动用户权威DNS13245•用户向入口服务器发起HTTP请求,入口服务器根据用户的IP地址、文件的存储位置等信息,向用户返回HTTP302重定向消息,将用户引导至对应的媒体服务器,用户终端与媒体服务建立连接后下载数据;•应用场景:互联网视频播放、软件下载;HTTPGETgetFlvPath/sid/133897320097419746536_00/st/flv/fileid/03000207004FCD1E42A92C036107D52EF05A4B-AFBA-B8C8-4269-CF6C3673CE6A?start=119&K=9363e7e1b9337c1c241106a3&hd=0&myp=0&ts=416&ymovie=1HTTPGETgetFlvPath/sid/133897320097419746536_00/st/flv/fileid/03000207004FCD1E42A92C036107D52EF05A4B-AFBA-B8C8-4269-CF6C3673CE6A?start=119&K=9363e7e1b9337c1c241106a3&hd=0&myp=0&ts=416&ymovie=1302AredirecttoAredirectto DNSICP DNS全局调度中心GSLB①②③④⑤CDN内容请求引导机制•用户发起DNS解析请求,请求被LocalDNS发送至CDN全局调度中心;•全局调度中心根据配置判断该域名应采用DNS重定向方式,根据调度原则选取一个昀优的边缘节点,并向LDNS/用户返回该节点的IP地址;•用户接收到解析结果后访问该服务节点;DNS消息HTTP消息核心技术:依靠用户的DNS解析流程进行重定向将用户引导至边缘服务节点中DNS重定向机制广泛应用于各类互联网网站应用CDN的场景,是最主要的调度方式DNS重定向机制协议原理调度机制CDN内容请求引导机制•用户发起DNS解析请求,请求被LDNS转发至全局调度中心;•没有什么根据配置判断应采用HTTP重定向模式,向LDNS/用户返回该内容调度中心的IP地址;•用户向中心发起HTTP请求后,根据用户自身的IP地址和请求内容将用户调度至昀优的边缘服务节点中,实现用户请求的重定向;服务节点服务节点服务节点服务节点Local DNSICP DNS全局调度中心GSLB①②③④⑤DNS消息HTTP消息⑥HTTP重定向⑦HTTP请求HTTP重定向机制