CN103248715A - 用于cdn的位置检测方法及装置 - Google Patents
用于cdn的位置检测方法及装置 Download PDFInfo
- Publication number
- CN103248715A CN103248715A CN2012100268001A CN201210026800A CN103248715A CN 103248715 A CN103248715 A CN 103248715A CN 2012100268001 A CN2012100268001 A CN 2012100268001A CN 201210026800 A CN201210026800 A CN 201210026800A CN 103248715 A CN103248715 A CN 103248715A
- Authority
- CN
- China
- Prior art keywords
- address
- user
- cdn
- local dns
- operator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种用于CDN的位置检测方法及装置。其中,所述方法包括以下步骤:用户访问CDN中的网络资源;获取每个用户的IP地址以及每个用户的本地DNS的IP地址;建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。根据本发明实施例的方法,在用户访问CDN中的网络资源过程中可以获取用户与所对应的本地DNS的IP信息,并根据获取到的信息进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,由此可以大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种用于CDN的位置检测方法及装置。
背景技术
基于本地DNS(Domain Name System,域名系统)定位的CDN GSLB(Gobal ServerLoad Balance全局负载均衡)系统是支持智能解析的DNS系统,在解析服务域名的环节中,通过用户的本地DNS的IP地址进行定位,然后解析出预期的IP地址,以达到智能解析以及进一步实现负载分流的目的。而在整个过程中,由于跨运营商的互通性不佳,用于定位的IP库准确与否直接决定了用户访问质量的好坏。
现有技术根据ARPNIC等RIR(Regional Internet Registry,Internet注册机构)站点所提供的IP分配信息进行IP库的整理,并根据整理的IP库进行定位分流,然后定期根据RIR站点上的IP变更信息做相应的调整,同时IP库数据的来源还包括从某些ISP(Internet Service Provider,互联网服务提供商)运营商的获取到的数据。
现有技术存在的问题是,一方面RIR站点上发布的IP段的分配使用信息并非完全准确,因为IP段在实际用途中可能随着ISP运营商之间的合作等行为发生改变,如RIR机构将网段IP-A分配给了ISP-A,而ISP-A又与ISP-B合作,将网段IP-A的使用权转让给了ISP-B,但RIR站点上的信息仍是声明网段IP-A属于ISP-A,因此导致所有的出口IP地址属于网段IP-A的本地DNS被认为是运营商ISP-A的本地DNS,进而所有通过这些本地DNS上网的用户也被认为是ISP-A运营商接入的用户,按照CDN中常见的分流策略,一般会引导这些用户到其相同的运营商节点,即被认为是ISP-A的用户群(即IP定位可能存在错误,系统认为是ISP-A的用户实际上可能是属于ISP-B)访问服务的时候域名被解析到了ISP-A的一个服务节点,跨运营商互通性不佳,导致访问质量差,因此很大情况下将导致这部分用户的访问质量变差。
另一方面,ISP-A接入的用户使用了属于ISP-B接入的本地DNS。即,尽管系统的IP库定位是准确的,确定某本地DNS的IP地址是属于ISP-B,但实际上通过这个本地DNS上网的用户却不一定全是属于ISP-B接入的。因此,将会导致跟上面相同的问题,使用错误的本地DNS的用户访问质量也会变差。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种可以提高本地DNS定位准确性以使得用户的访问更准确及获得更高质量服务的用于CDN的位置检测方法。
本发明的另一目的在于提出一种用于CDN的位置检测装置。
为了实现上述目的,根据本发明的第一方面实施例的用于CDN的位置检测方法包括以下步骤:用户访问所述CDN中的网络资源;获取每个用户的IP地址以及所述每个用户的本地DNS的IP地址;建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及根据所述第一用户IP地址组中的用户IP地址判断所述第一本地DNS的IP地址对应的运营商。
根据本发明实施例的用于CDN的位置检测方法,在用户访问CDN中的网络资源过程中可以获取用户与所对应的本地DNS的IP信息,并根据获取到的信息进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,由此可以大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
为了实现上述目的,根据本发明的第二方面实施例的用于CDN的位置检测装置包括:接收模块,所述接收模块用于接收用户访问所述CDN中的网络资源的请求;获取模块,所述获取模块用于获取每个用户的IP地址以及所述每个用户的本地DNS的IP地址;建立模块,所述建立模块用于建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及判断模块,所述判断模块用于根据所述第一用户IP地址组中的用户IP地址判断所述第一本地DNS的IP地址对应的运营商。
根据本发明实施例的用于CDN的位置检测装置,在用户访问CDN中的网络资源过程中获取模块可以获取用户与所对应的本地DNS的IP信息,并根据获取到的信息判断模块进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,由此可以大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的用于CDN的位置检测方法的流程图;
图2是根据本发明一个实施例的用于CDN的位置检测方法的流程图;
图3是根据本发明一个实施例的用于CDN的位置检测方法的流程图;
图4是根据本发明一个实施例的用于CDN的位置检测方法的流程图;
图5是根据本发明一个实施例的用于CDN的位置检测装置的结构框图;以及
图6是根据本发明一个实施例的用于CDN的位置检测装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考说明书附图描述根据本发明实施例的用于CDN的位置检测方法。
一种用于CDN的位置检测方法,包括以下步骤:用户访问CDN中的网络资源;获取每个用户的IP地址以及每个用户的本地DNS的IP地址;建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
图1为本发明一个实施例的用于CDN的位置检测方法的流程图。
如图1所示,根据本发明实施例的用于CDN的位置检测方法,包括下述步骤。
步骤S101,用户访问CDN中的网络资源。
具体地,首先,用户访问某URI(Uniform Resource Identifier,通用资源标志符),例如在浏览器中输入要访问的网址。然后,该用户的主机向所在的本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器根据该请求的来源地址(即用户的主机IP地址)选择距离其最近的CDN节点,并通过查询返回该CDN节点的IP作为该请求的查询结果,用户的主机再根据该查询结果向该CDN节点发起访问请求。
步骤S102,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
其中,在用户访问CDN中的网络资源的过程中,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。具体地,当用户的主机向本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器通过递归查询到距离该请求的来源地址(即用户的主机IP地址)最近的CDN节点,该CDN节点便可以得到本次请求查询中用户的IP地址以其对应的本地DNS的IP地址,更具体地,该CDN DNS服务器的查询日志记录了该本地DNS的IP地址和其查询的域名信息(其中包括了用户的IP地址和时间信息),同时也可以从Web服务器的访问日志中获取用户的IP地址,从CDN DNS服务端日志中获取用户的本地DNS的IP信息。由此当大量的用户访问CDN中的网络资源时可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址。
步骤S103,建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。
具体地,在大量的用户访问CDN中的网络资源的过程中,可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址的对应关系,根据多组该对应关系可以建立起第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。即一个第一本地DNS的IP地址牵引多个用户的IP地址,该多个用户的IP地址构成第一用户IP地址组。
步骤S104,根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
在本发明的一个实施例中,当第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,判断第一本地DNS的IP地址对应第一运营商。由此根据概率重新更新第一本地DNS所对应的运营商属性,实现DNS定位中的IP库的纠错。
在本发明的一个实施例中,通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
根据本发明实施例的用于CDN的位置检测方法,在用户访问CDN中的网络资源过程中可以获取用户与所对应的本地DNS的IP信息,并根据获取到的信息进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,由此可以大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
图2为本发明一个实施例的用于CDN的位置检测方法的流程图。
如图2所示,根据本发明实施例的用于CDN的位置检测方法,包括下述步骤。
步骤S201,用户访问CDN中的网络资源。
具体地,首先,用户访问某URI(Uniform Resource Identifier,通用资源标志符),例如在浏览器中输入要访问的网址。然后,该用户的主机向所在的本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器根据该请求的来源地址(即用户的主机IP地址)选择距离其最近的CDN节点,并通过查询返回该CDN节点的IP作为该请求的查询结果,用户的主机再根据该查询结果向该CDN节点发起访问请求。
步骤S202,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
其中,在用户访问CDN中的网络资源的过程中,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。具体地,当用户的主机向本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器通过递归查询到距离该请求的来源地址(即用户的主机IP地址)最近的CDN节点,该CDN节点便可以得到本次请求查询中用户的IP地址以其对应的本地DNS的IP地址,更具体地,该CDN DNS服务器的查询日志记录了该本地DNS的IP地址和其查询的域名信息(其中包括了用户的IP地址和时间信息),同时也可以从Web服务器的访问日志中获取用户的IP地址,从CDN DNS服务端日志中获取用户的本地DNS的IP信息。由此当大量的用户访问CDN中的网络资源时可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址。
步骤S203,建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。
具体地,在大量的用户访问CDN中的网络资源的过程中,可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址的对应关系,根据多组该对应关系可以建立起第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。即一个第一本地DNS的IP地址牵引多个用户的IP地址,该多个用户的IP地址构成第一用户IP地址组。
步骤S204,根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
在本发明的一个实施例中,当第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,判断第一本地DNS的IP地址对应第一运营商。由此根据概率重新更新第一本地DNS所对应的运营商属性,实现DNS定位中的IP库的纠错。
在本发明的一个实施例中,通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
步骤S205,当第二用户的本地DNS是第一本地DNS时,判断第二用户的IP地址属于第一运营商。
具体地,根据步骤S204重新更新了第一本地DNS的IP地址对应的运营商,当第二用户访问CDN中的网络资源时,可以获取本次访问过程中第二用户的IP地址以其对应的本地DNS的IP地址,当该本地DNS是第一本地DNS时,则判断该第二用户的IP地址属于第一运营商。
根据本发明实施例的用于CDN的位置检测方法,在根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商之后,当其他用户通过该第一本地DNS访问CDN中的网络资源时,根据该第一本地DNS地址确定该用户访问的运营商,由此进一步提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
图3为本发明一个实施例的用于CDN的位置检测方法的流程图。
如图3所示,根据本发明实施例的用于CDN的位置检测方法,包括下述步骤。
步骤S301,用户访问CDN中的网络资源。
具体地,首先,用户访问某URI(Uniform Resource Identifier,通用资源标志符),例如在浏览器中输入要访问的网址。然后,该用户的主机向所在的本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器根据该请求的来源地址(即用户的主机IP地址)选择距离其最近的CDN节点,并通过查询返回该CDN节点的IP作为该请求的查询结果,用户的主机再根据该查询结果向该CDN节点发起访问请求。
步骤S302,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
其中,在用户访问CDN中的网络资源的过程中,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。具体地,当用户的主机向本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器通过递归查询到距离该请求的来源地址(即用户的主机IP地址)最近的CDN节点,该CDN节点便可以得到本次请求查询中用户的IP地址以其对应的本地DNS的IP地址,更具体地,该CDN DNS服务器的查询日志记录了该本地DNS的IP地址和其查询的域名信息(其中包括了用户的IP地址和时间信息),同时也可以从Web服务器的访问日志中获取用户的IP地址,从CDN DNS服务端日志中获取用户的本地DNS的IP信息。由此当大量的用户访问CDN中的网络资源时可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址。
步骤S303,建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。
具体地,在大量的用户访问CDN中的网络资源的过程中,可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址的对应关系,根据多组该对应关系可以建立起第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。即一个第一本地DNS的IP地址牵引多个用户的IP地址,该多个用户的IP地址构成第一用户IP地址组。
步骤S304,根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
在本发明的一个实施例中,当第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,判断第一本地DNS的IP地址对应第一运营商。由此根据概率重新更新第一本地DNS所对应的运营商属性,实现DNS定位中的IP库的纠错。
在本发明的一个实施例中,通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
步骤S305,当第二用户的本地DNS是第一本地DNS时,判断第二用户的IP地址属于第一运营商。
具体地,根据步骤S304重新更新了第一本地DNS的IP地址对应的运营商,当第二用户访问CDN中的网络资源时,可以获取本次访问过程中第二用户的IP地址以其对应的本地DNS的IP地址,当该本地DNS是第一本地DNS时,则判断该第二用户的IP地址属于第一运营商。
步骤S306,将第二用户定位到CDN中与第一运营商对应的网络资源。
根据本发明实施例的用于CDN的位置检测方法,在根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商之后,当其他用户通过该第一本地DNS访问CDN中的网络资源时,根据该第一本地DNS地址确定该用户访问的运营商并将该用户的访问定位到所确定的运营商,由此进一步提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
图4为本发明一个实施例的用于CDN的位置检测方法的流程图。
如图4所示,根据本发明实施例的用于CDN的位置检测方法,包括下述步骤。
步骤S401,用户访问CDN中的网络资源。
具体地,首先,用户访问某URI(Uniform Resource Identifier,通用资源标志符),例如在浏览器中输入要访问的网址。然后,该用户的主机向所在的本地DNS服务器提交域名解析请求,该请求到达CDN DNS服务器,CDN DNS服务器根据该请求的来源地址(即用户的主机IP地址)选择距离其最近的CDN节点,并通过查询返回该CDN节点的IP作为该请求的查询结果,用户的主机再根据该查询结果向该CDN节点发起访问请求。
步骤S402,在每个用户访问的网络资源的对应页面中添加透明gif元素。例如,添加的透明gif元素的名称为1。
步骤S403,生成透明gif元素的URL,URL的域名的格式为IP.TIME.cdn.example.com。
具体地,用户访问的网络资源的对应页面可以为一个链接对象,该链接对象的URL中的域名部分根据策略动态生成,其格式为IP.TIME.cdn.example.com,其中,IP为Web前端获取到的客户端出口IP即用户的IP,TIME是Web前端的系统时间。
例如,添加的透明gif元素1的URL为Web前端动态生成,如http://117-79-93-207.2011-11-28-11-11-11.cdn.example.com/1.gif,透明gif元素1的域名为117-79-93-207.2011-11-28-11-11-11.cdn.example.com,IP为Web前端获取到的客户端出口IP即用户的IP,将点分十进制中的“.”换成了连字符“-”,如117-79-93-207,TIME是Web前端的系统时间,如2011-11-28-11-11-11。
步骤S404,向每个用户的本地DNS发出解析URL的域名的请求。
具体地,用户再次对动态生成的URL进行获取,获取过程中首先要解析出URL中域名的最终IP地址,用户向其本地DNS提交域名解析请求。
步骤S405,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
具体地,用户向其本地DNS提交域名解析请求之后,本地DNS首先向根服务器查询com.域,再向负责com.域解析的NS查询到了负责example.com.域的NS......依次类推,最后查询到了负责解析cdn.example.com.域的NS集群,根据来查询的来源IP定位其所属运营商,响应查询,并记录该本地DNS的IP地址和其查询的域名信息(其中包括了终端用户的IP地址和时间信息)等,由此获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
步骤S406,建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。
具体地,在大量的用户访问CDN中的网络资源的过程中,可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址的对应关系,根据多组该对应关系可以建立起第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。即一个第一本地DNS的IP地址牵引多个用户的IP地址,该多个用户的IP地址构成第一用户IP址址组。
步骤S407,根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
在本发明的一个实施例中,当第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,判断第一本地DNS的IP地址对应第一运营商。由此根据概率重新更新第一本地DNS所对应的运营商属性,实现DNS定位中的IP库的纠错。
在本发明的一个实施例中,通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
步骤S408,当第二用户的本地DNS是第一本地DNS时,判断第二用户的IP地址属于第一运营商。
具体地,根据步骤S407重新更新了第一本地DNS的IP地址对应的运营商,当第二用户访问CDN中的网络资源时,可以获取本次访问过程中第二用户的IP地址以其对应的本地DNS的IP地址,当该本地DNS是第一本地DNS时,则判断该第二用户的IP地址属于第一运营商。
步骤S409,将第二用户定位到CDN中与第一运营商对应的网络资源。
在本发明的一个实施例中,步骤S408是可选的。
在本发明的一个实施例中,步骤S409是可选的。
根据本发明实施例的用于CDN的位置检测方法,通过在每个用户访问的网络资源的对应页面中添加透明gif元素,并根据生成的透明gif元素的域名向每个用户的本地DNS发出解析请求,根据该请求获取到用户与所对应的本地DNS的IP信息,并根据获取到的信息进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,过程简单易实现,由此可以进一步大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
下面参考说明书附图描述根据本发明实施例的用于CDN的位置检测装置。
一种用于CDN的位置检测装置,包括:接收模块,接收模块用于接收用户访问CDN中的网络资源的请求;获取模块,获取模块用于获取每个用户的IP地址以及每个用户的本地DNS的IP地址;建立模块,建立模块用于建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及判断模块,判断模块用于根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
图5为本发明一个实施例的用于CDN的位置检测装置的结构框图。
如图5所示,根据本发明实施例的用于CDN的位置检测装置,包括接收模块100、获取模块200、建立模块300和判断模块400。
具体地,接收模块100用于接收用户访问CDN中的网络资源的请求。首先,用户访问某URI(Uniform Resource Identifier,通用资源标志符),例如在浏览器中输入要访问的网址。然后,该用户的主机向所在的本地DNS服务器提交域名解析请求,接收模块100接收该请求,该请求到达CDN DNS服务器,CDN DNS服务器根据该请求的来源地址(即用户的主机IP地址)选择距离其最近的CDN节点,并通过查询返回该CDN节点的IP作为该请求的查询结果,用户的主机再根据该查询结果向该CDN节点发起访问请求。
获取模块200用于获取每个用户的IP地址以及每个用户的本地DNS的IP地址。其中,获取模块200根据接收模块100所接收的请求,在用户访问CDN中的网络资源的过程中,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
具体地,当用户的主机向本地DNS服务器提交域名解析请求,该请求到达CDNDNS服务器,CDN DNS服务器通过递归查询到距离该请求的来源地址(即用户的主机IP地址)最近的CDN节点,该CDN节点便可以得到本次请求查询中用户的IP地址以其对应的本地DNS的IP地址,获取模块200根据该CDN节点获取每个用户的IP地址以及每个用户的本地DNS的IP地址。更具体地,该CDN DNS服务器的查询日志记录了该本地DNS的IP地址和其查询的域名信息(其中包括了用户的IP地址和时间信息),获取模块200根据CDN DNS服务器的查询获取每个用户的IP地址以及每个用户的本地DNS的IP地址。同时获取模块200也可以根据Web服务器的访问日志中获取用户的IP地址以及根据CDN DNS服务端日志中获取用户的本地DNS的IP信息。由此当大量的用户访问CDN中的网络资源时可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址。
建立模块300用于建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。在大量的用户访问CDN中的网络资源的过程中,获取模块200可以获取每个用户的主机的IP地址以及每个用户的本地DNS的IP地址的对应关系,建立模块300根据多组该对应关系可以建立起第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。即一个第一本地DNS的IP地址牵引多个用户的IP地址,该多个用户的IP地址构成第一用户IP地址组。
判断模块400用于根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。
在本发明的一个实施例中,当第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,判断模块400判断第一本地DNS的IP地址对应第一运营商。由此根据概率重新更新第一本地DNS所对应的运营商属性,实现DNS定位中的IP库的纠错。
在本发明的一个实施例中,判断模块400通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
根据本发明实施例的用于CDN的位置检测装置,在用户访问CDN中的网络资源过程中获取模块可以获取用户与所对应的本地DNS的IP信息,并根据获取到的信息判断模块进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,由此可以大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
在本发明的一个实施例中,当第二用户的本地DNS是第一本地DNS时,判断模块400判断第二用户的IP地址属于第一运营商。根据判断模块400的判断结果重新更新第一本地DNS的IP地址对应的运营商之后,当第二用户访问CDN中的网络资源时,获取模块300可以获取本次访问过程中第二用户的IP地址以其对应的本地DNS的IP地址,当第二用户的本地DNS是第一本地DNS时,判断模块400判断第二用户的IP地址属于第一运营商。
根据本发明实施例的用于CDN的位置检测装置,在判断模块根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商之后,当其他用户通过该第一本地DNS访问CDN中的网络资源时,判断模块根据该第一本地DNS地址确定该用户访问的运营商,由此进一步提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
图6为本发明一个实施例的用于CDN的位置检测装置的结构框图。
如图6所示,根据本发明实施例的用于CDN的位置检测装置,包括接收模块100、获取模块200、建立模块300、判断模块400和定位模块500。
具体地,接收模块100用于接收用户访问CDN中的网络资源的请求。获取模块200用于获取每个用户的IP地址以及每个用户的本地DNS的IP地址。建立模块300用于建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系。判断模块400用于根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商。定位模块500用于将第二用户定位到CDN中与第一运营商对应的网络资源。
根据本发明实施例的用于CDN的位置检测装置,在判断模块根据第一用户IP地址组中的用户IP地址判断第一本地DNS的IP地址对应的运营商之后,当其他用户通过该第一本地DNS访问CDN中的网络资源时,判断模块根据该第一本地DNS地址判断该用户访问的运营商并根据定位模块将该用户的访问定位到所确定的运营商,由此进一步提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
在本发明的一个实施例中,获取模块200用于在每个用户访问的网络资源的对应页面中添加透明gif元素,生成透明gif元素的URL,URL的域名的格式为IP.TIME.cdn.example.com,向每个用户的本地DNS发出解析URL的域名的请求,获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
具体地,在每个用户访问的网络资源的对应页面中添加透明gif元素。例如,添加的透明gif元素的名称为1。
用户访问的网络资源的对应页面可以为一个链接对象,该链接对象的URL中的域名部分根据策略动态生成,其格式为IP.TIME.cdn.example.com,其中,IP为Web前端获取到的客户端出口IP即用户的IP,TIME是Web前端的系统时间。
例如,添加的透明gif元素1的URL为Web前端动态生成,如http://117-79-93-207.2011-11-28-11-11-11.cdn.example.com/1.gif,透明gif元素1的域名为117-79-93-207.2011-11-28-11-11-11.cdn.example.com,IP为Web前端获取到的客户端出口IP即用户的IP,将点分十进制中的“.”换成了连字符“-”,如117-79-93-207,TIME是Web前端的系统时间,如2011-11-28-11-11-11。
用户再次对动态生成的URL进行获取,获取过程中首先要解析出URL中域名的最终IP地址,用户向其本地DNS提交域名解析请求。
在用户向其本地DNS发起了对域名的解析请求之后,本地DNS首先向根服务器查询com.域,再向负责com.域解析的NS查询到了负责example.com.域的NS......依次类推,最后查询到了负责解析cdn.example.com.域的NS集群,根据来查询的来源IP来定位其所属运营商,响应查询,并记录该本地DNS的IP地址和其查询的域名信息(其中包括了终端用户的IP地址和时间信息)等,由此获取每个用户的IP地址以及每个用户的本地DNS的IP地址。
根据本发明实施例的用于CDN的位置检测装置,获取模块通过在每个用户访问的网络资源的对应页面中添加透明gif元素,并根据生成的透明gif元素的域名向每个用户的本地DNS发出解析请求,根据该请求获取模块获取到用户与所对应的本地DNS的IP信息,判断模块根据获取到的信息进一步验证、判断及纠正本地DNS的IP地址所对应的运营商属性,过程简单易实现,由此可以进一步大幅度提高定位调度的准确性,使得用户的访问更加准确,为用户提供更好的服务质量。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (12)
1.一种用于CDN的位置检测方法,其特征在于,包括以下步骤:
用户访问所述CDN中的网络资源;
获取每个用户的IP地址以及所述每个用户的本地DNS的IP地址;
建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及
根据所述第一用户IP地址组中的用户IP地址判断所述第一本地DNS的IP地址对应的运营商。
2.根据权利要求1所述的用于CDN的位置检测方法,其特征在于,当所述第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,判断所述第一本地DNS的IP地址对应所述第一运营商。
3.根据权利要求2所述的用于CDN的位置检测方法,其特征在于,通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
4.根据权利要求1或2所述的用于CDN的位置检测方法,其特征在于,进一步包括步骤:
当第二用户的本地DNS是第一本地DNS时,判断所述第二用户的IP地址属于所述第一运营商。
5.根据权利要求4所述的用于CDN的位置检测方法,其特征在于,进一步包括步骤:
将所述第二用户定位到所述CDN中与所述第一运营商对应的网络资源。
6.根据权利要求1或2所述的用于CDN的位置检测方法,其特征在于,获取每个用户的IP地址以及所述每个用户的本地DNS的IP地址的步骤包括:
在每个用户访问的网络资源的对应页面中添加透明gif元素;
生成所述透明gif元素的URL,所述URL的域名格式为IP.TIME.cdn.example.com;
向所述每个用户的本地DNS发出解析所述URL的域名的请求;
获取所述每个用户的IP地址以及所述每个用户的本地DNS的IP地址。
7.一种用于CDN的位置检测装置,其特征在于,包括:
接收模块,所述接收模块用于接收用户访问所述CDN中的网络资源的请求;
获取模块,所述获取模块用于获取每个用户的IP地址以及所述每个用户的本地DNS的IP地址;
建立模块,所述建立模块用于建立第一用户IP地址组与第一本地DNS的IP地址之间的对应关系;以及
判断模块,所述判断模块用于根据所述第一用户IP地址组中的用户IP地址判断所述第一本地DNS的IP地址对应的运营商。
8.根据权利要求7所述的用于CDN的位置检测装置,其特征在于,当所述第一用户IP地址组中80%以上的用户IP地址属于第一运营商时,所述判断模块判断所述第一本地DNS的IP地址对应所述第一运营商。
9.根据权利要求8所述的用于CDN的位置检测00装置,其特征在于,所述判断模块通过查看RIR发布的IP库判断第一用户IP地址组中的用户IP地址所属的运营商。
10.根据权利要求7或8所述的用于CDN的位置检测装置,其特征在于,
当第二用户的本地DNS是第一本地DNS时,所述判断模块判断所述第二用户的IP地址属于所述第一运营商。
11.根据权利要求10所述的用于CDN的位置检测装置,其特征在于,进一步包括:
定位模块,所述定位模块用于将所述第二用户定位到所述CDN中与所述第一运营商对应的网络资源。
12.根据权利要求7或8所述的用于CDN的位置检测装置,其特征在于,所述获取模块用于:
在每个用户访问的网络资源的对应页面中添加透明gif元素;
生成所述透明gif元素的URL,所述URL的格式为IP.TIME.cdn.example.com;
向所述每个用户的本地DNS发出解析所述URL的请求;
获取所述每个用户的IP地址以及所述每个用户的本地DNS的IP地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100268001A CN103248715A (zh) | 2012-02-07 | 2012-02-07 | 用于cdn的位置检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100268001A CN103248715A (zh) | 2012-02-07 | 2012-02-07 | 用于cdn的位置检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103248715A true CN103248715A (zh) | 2013-08-14 |
Family
ID=48927936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100268001A Pending CN103248715A (zh) | 2012-02-07 | 2012-02-07 | 用于cdn的位置检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103248715A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825975A (zh) * | 2014-02-26 | 2014-05-28 | 北京太阳庄科技有限公司 | Cdn节点分配服务器及系统 |
CN104468857A (zh) * | 2014-11-03 | 2015-03-25 | 北京百度网讯科技有限公司 | 一种对应关系的获取方法及系统 |
CN105282269A (zh) * | 2015-11-03 | 2016-01-27 | 中国互联网络信息中心 | 一种本地dns根服务器的配置方法和服务方法 |
CN105847397A (zh) * | 2016-04-25 | 2016-08-10 | 乐视控股(北京)有限公司 | 为终端设备提供网络服务的方法及装置 |
CN105933234A (zh) * | 2016-04-20 | 2016-09-07 | 乐视控股(北京)有限公司 | Cdn网络中的节点管理方法和系统 |
CN106506727A (zh) * | 2016-12-28 | 2017-03-15 | 北京奇艺世纪科技有限公司 | 一种定位域名解析错误的本地域名系统的方法及系统 |
CN106713374A (zh) * | 2015-07-16 | 2017-05-24 | 贵州力创科技发展有限公司 | 一种基于dns的流量分析和优化流量调度的系统 |
CN106790530A (zh) * | 2016-12-21 | 2017-05-31 | 北京云端智度科技有限公司 | 域名服务的跟踪和聚合方法 |
CN107342913A (zh) * | 2017-05-24 | 2017-11-10 | 恒安嘉新(北京)科技股份公司 | 一种cdn节点的探测方法和装置 |
CN107948343A (zh) * | 2018-01-11 | 2018-04-20 | 北京奇艺世纪科技有限公司 | 一种调度区域的确定方法及系统 |
CN108023857A (zh) * | 2016-11-02 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 一种地域区间匹配网络访问方法、装置及客户端 |
WO2018127011A1 (zh) * | 2017-01-03 | 2018-07-12 | 北京奇虎科技有限公司 | 一种流数据的传输集群的调度方法和装置 |
CN108337271A (zh) * | 2017-01-17 | 2018-07-27 | 北京云端智度科技有限公司 | 一种提升dns安全及性能的方法 |
CN108667646A (zh) * | 2018-03-22 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 网络访问方法及装置 |
CN108933843A (zh) * | 2017-05-26 | 2018-12-04 | 贵州白山云科技有限公司 | 一种dns调度方法及装置 |
CN109040343A (zh) * | 2018-09-11 | 2018-12-18 | 达闼科技(北京)有限公司 | 域名解析方法、装置、计算机可读存储介质及电子设备 |
CN109167850A (zh) * | 2018-09-13 | 2019-01-08 | 杭州安恒信息技术股份有限公司 | 一种确定cdn服务运营商的方法、装置和存储介质 |
WO2019010694A1 (zh) * | 2017-07-14 | 2019-01-17 | 深圳前海达闼云端智能科技有限公司 | 获取本地域名服务器地址的方法、装置和权威域名服务器 |
CN109495319A (zh) * | 2018-12-24 | 2019-03-19 | 网易(杭州)网络有限公司 | Cdn节点的故障信息确定方法、装置及设备 |
CN109660624A (zh) * | 2018-12-26 | 2019-04-19 | 网宿科技股份有限公司 | 内容分发网络资源的规划方法、服务器及存储介质 |
WO2019114830A1 (zh) * | 2017-12-14 | 2019-06-20 | 北京金山云网络技术有限公司 | 一种网络质量监测方法、装置、电子设备及存储介质 |
CN110365747A (zh) * | 2019-06-24 | 2019-10-22 | 北京奇艺世纪科技有限公司 | 网络请求的处理方法、装置、服务器及计算机可读存储介质 |
CN115022278A (zh) * | 2022-06-02 | 2022-09-06 | 上海哔哩哔哩科技有限公司 | Cdn处理方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055815A (zh) * | 2010-12-17 | 2011-05-11 | 北京世纪互联工程技术服务有限公司 | 获取访客本地域名解析服务器的系统 |
-
2012
- 2012-02-07 CN CN2012100268001A patent/CN103248715A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055815A (zh) * | 2010-12-17 | 2011-05-11 | 北京世纪互联工程技术服务有限公司 | 获取访客本地域名解析服务器的系统 |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825975B (zh) * | 2014-02-26 | 2018-03-13 | 北京六间房科技有限公司 | Cdn节点分配服务器及系统 |
CN103825975A (zh) * | 2014-02-26 | 2014-05-28 | 北京太阳庄科技有限公司 | Cdn节点分配服务器及系统 |
CN104468857A (zh) * | 2014-11-03 | 2015-03-25 | 北京百度网讯科技有限公司 | 一种对应关系的获取方法及系统 |
CN104468857B (zh) * | 2014-11-03 | 2018-10-16 | 北京百度网讯科技有限公司 | 一种对应关系的获取方法及系统 |
CN106713374A (zh) * | 2015-07-16 | 2017-05-24 | 贵州力创科技发展有限公司 | 一种基于dns的流量分析和优化流量调度的系统 |
CN105282269B (zh) * | 2015-11-03 | 2018-07-06 | 中国互联网络信息中心 | 一种本地dns根服务器的配置方法和服务方法 |
CN105282269A (zh) * | 2015-11-03 | 2016-01-27 | 中国互联网络信息中心 | 一种本地dns根服务器的配置方法和服务方法 |
CN105933234A (zh) * | 2016-04-20 | 2016-09-07 | 乐视控股(北京)有限公司 | Cdn网络中的节点管理方法和系统 |
CN105847397A (zh) * | 2016-04-25 | 2016-08-10 | 乐视控股(北京)有限公司 | 为终端设备提供网络服务的方法及装置 |
CN108023857B (zh) * | 2016-11-02 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 一种地域区间匹配网络访问方法、装置及客户端 |
CN108023857A (zh) * | 2016-11-02 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 一种地域区间匹配网络访问方法、装置及客户端 |
CN106790530A (zh) * | 2016-12-21 | 2017-05-31 | 北京云端智度科技有限公司 | 域名服务的跟踪和聚合方法 |
CN106506727A (zh) * | 2016-12-28 | 2017-03-15 | 北京奇艺世纪科技有限公司 | 一种定位域名解析错误的本地域名系统的方法及系统 |
CN106506727B (zh) * | 2016-12-28 | 2019-04-12 | 北京奇艺世纪科技有限公司 | 一种定位域名解析错误的本地域名系统的方法及系统 |
WO2018127011A1 (zh) * | 2017-01-03 | 2018-07-12 | 北京奇虎科技有限公司 | 一种流数据的传输集群的调度方法和装置 |
CN108337271A (zh) * | 2017-01-17 | 2018-07-27 | 北京云端智度科技有限公司 | 一种提升dns安全及性能的方法 |
CN107342913A (zh) * | 2017-05-24 | 2017-11-10 | 恒安嘉新(北京)科技股份公司 | 一种cdn节点的探测方法和装置 |
CN107342913B (zh) * | 2017-05-24 | 2020-02-07 | 恒安嘉新(北京)科技股份公司 | 一种cdn节点的探测方法和装置 |
CN108933843B (zh) * | 2017-05-26 | 2021-07-06 | 贵州白山云科技股份有限公司 | 一种dns调度方法及装置 |
CN108933843A (zh) * | 2017-05-26 | 2018-12-04 | 贵州白山云科技有限公司 | 一种dns调度方法及装置 |
WO2019010694A1 (zh) * | 2017-07-14 | 2019-01-17 | 深圳前海达闼云端智能科技有限公司 | 获取本地域名服务器地址的方法、装置和权威域名服务器 |
WO2019114830A1 (zh) * | 2017-12-14 | 2019-06-20 | 北京金山云网络技术有限公司 | 一种网络质量监测方法、装置、电子设备及存储介质 |
CN107948343B (zh) * | 2018-01-11 | 2021-12-21 | 北京奇艺世纪科技有限公司 | 一种调度区域的确定方法及系统 |
CN107948343A (zh) * | 2018-01-11 | 2018-04-20 | 北京奇艺世纪科技有限公司 | 一种调度区域的确定方法及系统 |
CN108667646A (zh) * | 2018-03-22 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 网络访问方法及装置 |
CN109040343A (zh) * | 2018-09-11 | 2018-12-18 | 达闼科技(北京)有限公司 | 域名解析方法、装置、计算机可读存储介质及电子设备 |
CN109040343B (zh) * | 2018-09-11 | 2021-07-23 | 达闼科技(北京)有限公司 | 域名解析方法、装置、计算机可读存储介质及电子设备 |
CN109167850A (zh) * | 2018-09-13 | 2019-01-08 | 杭州安恒信息技术股份有限公司 | 一种确定cdn服务运营商的方法、装置和存储介质 |
CN109495319A (zh) * | 2018-12-24 | 2019-03-19 | 网易(杭州)网络有限公司 | Cdn节点的故障信息确定方法、装置及设备 |
CN109495319B (zh) * | 2018-12-24 | 2021-12-28 | 网易(杭州)网络有限公司 | Cdn节点的故障信息确定方法、装置及设备 |
CN109660624A (zh) * | 2018-12-26 | 2019-04-19 | 网宿科技股份有限公司 | 内容分发网络资源的规划方法、服务器及存储介质 |
CN110365747A (zh) * | 2019-06-24 | 2019-10-22 | 北京奇艺世纪科技有限公司 | 网络请求的处理方法、装置、服务器及计算机可读存储介质 |
CN110365747B (zh) * | 2019-06-24 | 2022-04-01 | 北京奇艺世纪科技有限公司 | 网络请求的处理方法、装置、服务器及计算机可读存储介质 |
CN115022278A (zh) * | 2022-06-02 | 2022-09-06 | 上海哔哩哔哩科技有限公司 | Cdn处理方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103248715A (zh) | 用于cdn的位置检测方法及装置 | |
US8065417B1 (en) | Service provider registration by a content broker | |
CN108737515B (zh) | 在联网环境中请求路由选择 | |
US8051166B1 (en) | Service provider optimization of content management | |
EP3567881B1 (en) | Request routing and updating routing information utilizing client location information | |
CN109067930B (zh) | 域名接入方法、域名解析方法、服务器、终端及存储介质 | |
US8234403B2 (en) | Updating routing information based on client location | |
US8327019B2 (en) | Method and system for intelligent routing of requests over EPP | |
CN102047243A (zh) | 基于类别请求路由 | |
CN101478553B (zh) | 动态域名管理系统和方法 | |
CN101764855A (zh) | 一种提供域名解析服务的方法、装置及系统 | |
CN101981572A (zh) | 请求路由 | |
US9448897B2 (en) | Process for selecting an authoritative name server | |
US8239532B1 (en) | System and method of reducing latency using adaptive DNS resolution | |
CN104303489A (zh) | 在网络中执行dns解析的方法、内容分发系统和用于在内容分发系统中进行部署的客户端终端 | |
CN103873604B (zh) | 一种基于分析cdn网络数据的网络访问方法 | |
CN109729183A (zh) | 请求处理方法、装置、设备及存储介质 | |
CN102055815B (zh) | 获取访客本地域名解析服务器的系统 | |
CN108989487A (zh) | 基于本地dns的cdn优化调度方法 | |
CN104092785A (zh) | 域名注册和解析的方法和基于域名的资源访问方法及装置 | |
CN102780791A (zh) | 一种自适应ip的方法、装置以及系统 | |
CN101252590A (zh) | 一种流媒体内容分发方法、系统及装置 | |
CN103338278A (zh) | 一种网页浏览加速方法及装置 | |
CN107592374B (zh) | 域名错误解析的纠正方法和系统 | |
CN105791146B (zh) | 用户侧设备与配置服务器交互的方法、设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130814 |