Internet DRAFT - draft-choi-httpbis-multi-location-return
draft-choi-httpbis-multi-location-return
Network Working Group T. Choi
Internet-Draft ETRI
Intended Status: Standard Track J. Shinn
Expires: January 16, 2014 Solbox Inc.
J. Lee
SKT
J. Koo
LGU+
Y. Seo
KT
July 15, 2013
HTTP 2.0 Extension for Multi-location Return for Redirection
draft-choi-httpbis-multi-location-return-00
Abstract
This document proposes a mechanism to enhance redirection mechanism
of the HTTP1.1 so that it can improve the web service availability.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
TS. Choi Expires January 16, 2014 [Page 1]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Current HTTP Redirection Procedure and Issues . . . . . . . . 3
3. HTTP Redirection with Multi-locations Return . . . . . . . . . 4
4. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 5
5. Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. CDNi HTTP-based Redirection with Multi-location Return . . 6
6 Security Considerations . . . . . . . . . . . . . . . . . . . . 9
7 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 9
8 References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1 Normative References . . . . . . . . . . . . . . . . . . . 9
8.2 Informative References . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
TS. Choi Expires January 16, 2014 [Page 2]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
1 Introduction
For generic content delivery services, the high availability is a
major issue as most contents provider wants more than 99%
availability for their services. Response time is also a major issue
as it might be the main reason why contents providers use CDN
services. However, due to limitation of redirection feature of
HTTP/1.1, unnecessary connection cost and point of failures are
expected on certain situation.
This document describes such situation and a suggestion for enhanced
way to avoid those situation.
1.1 Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. Current HTTP Redirection Procedure and Issues
In this section, we describe an example of legacy HTTP-based
redirection and problems it may have.
User agent Svr-www Svr-www2 Svr-www3
| | | |
|GET www.example.com/sample.zip HTTP/1.1 | |(1)
|--------------------------------->| | |
| | | |
|302 www2.example.com/sample.zip HTTP/1.1 | |(2)
|<---------------------------------| | |
| | | |
|GET www2.example.com/sample.zip HTTP/1.1 | |(3)
|-------------------------------------------->| |
| | | |
|200 OK HTTP/1.1 | | |(4)
|<--------------------------------------------| |
| DATA | | |
Figure 1: HTTP/1.1 based redirection example
The above figure is an example of HTTP/1.1 based redirection with
following steps:
(1) Request sample.zip to www.example.com
(2) Redirection to www2.example.com
(3) Request sample.zip to www2.example.com
TS. Choi Expires January 16, 2014 [Page 3]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
(4) Receive sample.zip from www2.example.com
However, if www2 server went down or become unreachable during step
(3), the user agent has nowhere else to request anything but just
printing out error message to the end-user. Even though svr-www3 is
ready to serve, there is no way to redirect the request of the user
agent with legacy HTTP/1.1. Just after svr-www sends 302 message to
the user agent, svr-www completely lose the control of this
transaction.
One of legacy solution for this problem is using L4 switch
capability. However, when using L4 switch to avoid this problem, all
of the servers needed to be in same network area, not to mention high
price of L4 switches.
Another legacy solution is DNS based GSLB(Global Server Load
Balance). DNS based GSLB can easily be deploied for the servers in
different networks. They are also less expensive than L4 switch
solution (usually). Nevertheless, there are still problems. As it is
based on DNS protocol, it cannot change the path of URL. Furthermore,
even if GSLB monitors the status of servers, the problem still remain
if a server goes down just right after the redirection.
3. HTTP Redirection with Multi-locations Return
The following figure describes the situation that if HTTP supports
multi-location return.
User agent Svr-www Svr-www2 Svr-www3
| | | |
|GET www.example.com/sample.zip HTTP/2.0 | |(1)
|--------------------------------->| | |
| | | |
|302 www2.example.com/sample.zip HTTP/2.0 | |(2)
| www3.example.com/sample.zip HTTP/2.0 | |
| www.example.com/sorry.html HTTP/2.0 | |
|<---------------------------------| | |
| | | |
|GET www2.example.com/sample.zip HTTP/1.1 | |(3)
|-------------------------------------------->| |
| | | |
|connection fail | | |(4)
|<--------------------------------------------| |
| | | |
|GET www2.example.com/sample.zip HTTP/1.1 | |(5)
|------------------------------------------------------->|
| | | |
|200 OK HTTP/1.1 | | |(6)
TS. Choi Expires January 16, 2014 [Page 4]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
|<-------------------------------------------------------|
| DATA | | |
Figure 2: Example of HTTP-based Redirection with multi location
return
The above figure is an example of HTTP/1.1 based redirection with
following steps:
(1) Request sample.zip to www.example.com
(2) Provide redirection-url-list to user agent
(3) Request sample.zip to www2.example.com
(4) Connection to www2 failed
(5) Retry to receive sample.zip from www3.example.com
(6) Receive sample.zip from www3.example.com
With this procedure, the user agent can try other URLs from the
location list. The above step is just an example, and it can be
expanded or developed with other ideas. Such as, like step (2) of
figure 2, placing www server itself at the list, the user agent can
come back to www server even if it fails to connect to every other
servers.
4. Backward Compatibility
As there are so many clients that support HTTP/1.1 with single
location return, it will take some time for them to upgrade with
multi locations return capability. Thus we need to consider backward
compatibility of this feature.
The following is an example of using location tag with HTTP/1.1 or
older versions.
HTTP/1.1 302
Location: http://www.example.com/sample.zip
Regarding the above example, rather than replacing a legacy location
tag, just keeping the original location tag and adding an extension
tag shall give backward compatibility to all types of clients. The
example is as following:
HTTP/2.0 302
Location: http://www.example.com/sample.zip
M-Location: http://www.example.com/sample.zip
http://www2.example.com/sample.zip
http://www3.example.com/sample.zip
M-Redirection-Count: 0
In this way, legacy clients can parse the location tag as usual, and
TS. Choi Expires January 16, 2014 [Page 5]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
new client which supports the multiple location tag can utilize
additional M-Location tag. Note that M-Redirection-Count specifies
the maximum number of allowed redirections. It can be used to limit
the number of redirection for protecting a redirection loop.
5. Use Case
5.1. CDNi HTTP-based Redirection with Multi-location Return
The following figure describes the situation that if HTTP supports
the return of multiple locations in CDN interconnection
environment[draft-choi-cdni-req-intf]. The details of CDN
interconnection architecture and mechanisms are defined in the
[draft-ietf-cdni-framework]. In this use case, we assume that the
readers understand CDN interconnection mechanism.
The relevant steps are step 2 and 12. In step 2, multiple request
routing redirection CDN locations are returned upon the request
routing redirection request by the end-user. In step 12, it is
applied in the case of content acquisition between CDN providers.
End-User dCDNn dCDNn-1 dCDN1 uCDN
|DNS cdn.csp.com | | | |
|------------------------------------------------------->|
| | | | |(1)
|IPaddr of uCDN's Request Router | | |
|<-------------------------------------------------------|
|HTTP cdn.csp.com | | | |
|------------------------------------------------------->|
| | | | |(2)
|302 peer-uCDN.dCDN1.net/cdn.csp.com?uCDN-Provider-ID, |
| peer-uCDN.dCDN2.net/cdn.csp.com?uCDN-Provider-ID, |
| peer-uCDN.dCDNN.net/cdn.csp.com?uCDN-Provider-ID, |
| peer-uCDN.uCDN.net/cdn.csp.com?uCDN-Provider-ID |
|<-------------------------------------------------------|
|DNS peer-uCDN.dCDN1.net | | |
|-------------------------------------------->| |
| | | |(3) |
|IPaddr of dCDN1's Request Router| | |
|<--------------------------------------------| |
| | | | |
|HTTP peer-uCDN.dCDN1.net/cdn.csp.com?uCDN-Provider-ID |
|-------------------------------------------->| |
| Connection fail | | |(4) |
|<--------------------------------------------| |
|DNS peer-uCDN.dCDN2.net | | |
TS. Choi Expires January 16, 2014 [Page 6]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
|------------------------------->| | |
| | | |(3) |
|IPaddr of dCDN1's Request Router| | |
|<--------------------------------------------| |
| | | | |
|HTTP peer-uCDN.dCDN2.net/cdn.csp.com?uCDN-Provider-ID |
|-------------------------------------------->| |
| Connection fail | | |(4) |
|<--------------------------------------------| |
| | | | |
| | ....... |(5) |
|<-------------------------------| | |
| | | | |
|DNS peer-dCDNn-1.dCDNn.net | | |
|------------------------------->| | |
| | |(6) | |
|IPaddr of dCDNn's Request Router| | |
|<-------------------------------| | |
| | | | |
|HTTP peer-dCDNn-1.dCDNn.net/cdn.csp.com | |
|------------------------------->| | |
| | |(7) | |
|302 node1.peer-dCDNn-1.dCDNn.net/cdn.csp.com | |
|<-------------------------------| | |
| | | | |
|DNS node1.peer-dCDNn-1.dCDNn.net| | |
|------------------>| | | |
| | |(8) | |
|IPaddr of dCDNn's Delivery Node } | |
|<------------------| | | |
| | | | |
|HTTP node1.peer-dCDNn-1.dCDNn.net/cdn.csp.com| |
|------------------>| | | |
| |(9) | | |
| |DNS dCDNn-acq.dCDNn-1.net| |
| |----------->| | |
| | |(10) | |
| |IPaddr of dCDNn-1's Request Router |
| |<-----------| | |
| |HTTP dCDNn-acq.dCDNn-1.net?dCDNn-Provider-ID
| |----------->| | |
| | |(11) | |
| | | ....... | |
| | | | |
| |HTTP dCDN1-acq.uCDN.net?dCDN1-Provider-ID
| | | |--------->|
| | | | |(12)
| | |302 node2.dCDN1.acq.uCDN.net,
TS. Choi Expires January 16, 2014 [Page 7]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
| | | node3.dCDN1.acq.uCDN.net,
| | | origin.csp.com |
| | | |<---------|
| | |DNS node2.dCDN1-acq.uCDN.net
| | | |--------->|
| | | | |(13)
| | |IPaddr of uCDN's Delivery Node2
| | | |<---------|
| | | | |(14)
| | | | Connection fail
| | | |<---------|
| | |DNS node3.dCDN1-acq.uCDN.net
| | | |--------->|
| | | | |(13)
| | |IPaddr of uCDN's Delivery Node3
| | | |<---------|
| | | | |(14)
| | | | Connection fail
| | | |<---------|
| | |DNS origin.csp.com
| | | |--------->|
| | | | |(13)
| | |IPaddr of csp's origin server
| | | |<---------|
| | | | |(14)
| | | | Data
| | | |<---------|
| | | ....... | |
|Data | | | |
|<------------------| | | |
Figure 1: HTTP-based request routing redirection iterative
procedure with return of multiple locations
TS. Choi Expires January 16, 2014 [Page 8]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
6 Security Considerations
TBD.
7 IANA Considerations
TBD.
8 References
8.1 Normative References
[I-D.choi-cdni-req-intf] Choi, T., Shinn, J., Lee, J., Koo, J., Seo,
Y., "Request Interface for CDN Interconnection",
draft-choi-cdni-req-intf-00 (work in progress), July 2013.
[I-D.ietf-cdni-framework] Peterson, L. and B. Davie, "Framework for
CDN Interconnection", February 2013.
8.2 Informative References
TBD.
Authors' Addresses
Taesang Choi
ETRI
161 Gajong-Dong
Yusong-Gu, Daejeon
Republic of Korea
Phone: +82-42-860-5628
Email: choits@etri.re.kr
John Dongho Shinn
Solbox Inc.
7F, Haesung Bldg. 747-2 Yeoksam-Dong
Kangnam-Gu, Seoul
Republic of Korea
Phone: +82-10-3005-4785
Email: eastsky@solbox.com
Jongmin Lee
SK Telecom
TS. Choi Expires January 16, 2014 [Page 9]
INTERNET DRAFT Extension for Multi-location Return July 15, 2013
11, Euljiro-2ga
Jung-gu, Seoul
Republic of Korea
Phone: 82-10-9429-6260
Email: jminlee@sk.com
Ja-Ryeong Koo
LG U plus Corporation
Namdaemunro 5-ga
Jung-gu, Seoul
Republic of Korea
Phone: 82-10-8080-6115
Email: wjbkoo@lguplus.co.kr
Young-IL Seo
KT Network R&D Laboratory
463-1, Jeonmoin-dong,
Yuseong-gu, Daejeon
Republic of Korea
Phone: 82-10-3235-0135
Email: yohan.seo@kt.com
TS. Choi Expires January 16, 2014 [Page 10]