| < draft-ietf-bier-multicast-http-response-03.txt | draft-ietf-bier-multicast-http-response-04.txt > | |||
|---|---|---|---|---|
| Network Working Group D. Trossen | Network Working Group D. Trossen | |||
| Internet-Draft Huawei | Internet-Draft Huawei | |||
| Intended status: Informational A. Rahman | Intended status: Informational A. Rahman | |||
| Expires: August 7, 2020 C. Wang | Expires: January 11, 2021 C. Wang | |||
| InterDigital Communications, LLC | InterDigital Communications, LLC | |||
| T. Eckert | T. Eckert | |||
| Futurewei | Futurewei | |||
| February 4, 2020 | July 10, 2020 | |||
| Applicability of BIER Multicast Overlay for Adaptive Streaming Services | Applicability of BIER Multicast Overlay for Adaptive Streaming Services | |||
| draft-ietf-bier-multicast-http-response-03 | draft-ietf-bier-multicast-http-response-04 | |||
| Abstract | Abstract | |||
| HTTP Level multicast, using BIER, is described as a use case in the | HTTP Level Multicast, using BIER, is described as a use case in the | |||
| BIER Use Cases document. HTTP Level Multicast is used in today's | BIER Use Cases document. HTTP Level Multicast is used in today's | |||
| video streaming and delivery services such as HLS, AR/VR etc., | video streaming and delivery services such as HLS, AR/VR etc., | |||
| generally realized over IP Multicast as well as other use cases such | generally realized over IP Multicast as well as other use cases such | |||
| as software update delivery. A realization of "HTTP Multicast" over | as software update delivery. A realization of "HTTP Multicast" over | |||
| "IP Multicast" is described for the video delivery use case. IP | "IP Multicast" is described for the video delivery use case. IP | |||
| multicast is commonly used for IPTV services. DVB and BBF is also | Multicast is commonly used for IPTV services. DVB and BBF also | |||
| developing a reference architecture for IP Multicast service. A few | developes a reference architecture for IP Multicast service. A few | |||
| problems with IP Multicast, such as waste of transmission bandwidth, | problems with IP Multicast, such as waste of transmission bandwidth, | |||
| increase in signaling when there are few users are described. | increase in signaling when there are few users are described. | |||
| Realization over BIER, through a BIER Multicast Overlay Layer, is | Realization over BIER, through a BIER Multicast Overlay Layer, is | |||
| described as an alternative. How BIER Multicast Overlay operation | described as an alternative. How BIER Multicast Overlay operation | |||
| improves over IP Multicast, such as reduction in signaling, dynamic | improves over IP Multicast, such as reduction in signaling, dynamic | |||
| creation of multicast groups to reduce signaling and bandwidth | creation of multicast groups to reduce signaling and bandwidth | |||
| wastage is described. We conclude with few next steps. | wastage is described. We conclude with a few next steps. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 7, 2020. | This Internet-Draft will expire on January 11, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 6, line 12 ¶ | skipping to change at page 6, line 12 ¶ | |||
| extended with multicast delivery for HTTP responses in certain use | extended with multicast delivery for HTTP responses in certain use | |||
| cases. | cases. | |||
| 3.1. HTTP-based Steaming | 3.1. HTTP-based Steaming | |||
| Referring to the BIER Use Cases [I-D.ietf-bier-use-cases], multicast | Referring to the BIER Use Cases [I-D.ietf-bier-use-cases], multicast | |||
| is used to scale out HTTP Live Streaming (HLS) to a large number of | is used to scale out HTTP Live Streaming (HLS) to a large number of | |||
| receivers that use HTTP. This is used today in solutions like DOCSIS | receivers that use HTTP. This is used today in solutions like DOCSIS | |||
| hybrid streaming [TR_IPMC_ABR]. Multicast can speed up both live and | hybrid streaming [TR_IPMC_ABR]. Multicast can speed up both live and | |||
| high-demand VoD streaming. Adaptive Bit Rate IPMC [TR_IPMC_ABR] | high-demand VoD streaming. Adaptive Bit Rate IPMC [TR_IPMC_ABR] | |||
| describes use of IP multicast towards the CMTS or a box beside it, | describes use of IP Multicast towards the CMTS or a box beside it, | |||
| where the content is converted to HTTP/TCP to stream to the receivers | where the content is converted to HTTP/TCP to stream to the receivers | |||
| (e.g., homes). A server hosting the HLS content is shown as "NAP | (e.g., homes). A server hosting the HLS content is shown as "NAP | |||
| Server". The gateways acting as receivers for the multicast from the | Server". The gateways acting as receivers for the multicast from the | |||
| server are shown as "Client-NAP" (CNAP). Each CNAP can serve | server are shown as "Client-NAP" (CNAP). Each CNAP can serve | |||
| multiple clients. | multiple clients. | |||
| Dynamic Adaptive Streaming (DASH) [ISO_DASH] over HTTP is another | Dynamic Adaptive Streaming (DASH) [ISO_DASH] over HTTP is another | |||
| HTTP-based streaming approach. In DASH, each media is described by a | HTTP-based streaming approach. In DASH, each media is described by a | |||
| Media Presentation Description (MPD) file, through which a DASH | Media Presentation Description (MPD) file, through which a DASH | |||
| client (e.g. a media player) is instructed how to download, interpret | client (e.g. a media player) is instructed how to download, interpret | |||
| skipping to change at page 8, line 8 ¶ | skipping to change at page 8, line 8 ¶ | |||
| o MUST provide direct path mobility, where the path between the | o MUST provide direct path mobility, where the path between the | |||
| egress and ingress Service Routers(SR) can be determined as being | egress and ingress Service Routers(SR) can be determined as being | |||
| optimal (e.g., shortest path or direct path to a selected | optimal (e.g., shortest path or direct path to a selected | |||
| instance), is needed to avoid the use of anchor points and further | instance), is needed to avoid the use of anchor points and further | |||
| reduce service-level latency. | reduce service-level latency. | |||
| 5. Realization over IP Multicast | 5. Realization over IP Multicast | |||
| We now discuss the realization of chunk-based delivery over IP | We now discuss the realization of chunk-based delivery over IP | |||
| multicast delivery methods. We focus our presentation here on the | Multicast delivery methods. We focus our presentation here on the | |||
| video streaming use case in Section 3.1. | video streaming use case in Section 3.1. | |||
| IPTV or Internet video distribution in CDNs, uses HTTP Level | IPTV or Internet video distribution in CDNs, uses HTTP Level | |||
| Multicast and realized over IP Multicast (IPMC). Many features of | Multicast and realized over IP Multicast (IPMC). Many features of | |||
| the IPTV service uses IPMC Group dependent state. Besides popular | the IPTV service uses IPMC Group dependent state. Besides popular | |||
| features like PIM, Mldp, in a variable bit rate encoded content | features like PIM, Mldp, in a variable bit rate encoded content | |||
| source, content consumption also depends on group state. | source, content consumption also depends on group state. | |||
| DVB released reference architecture [DVB_REF_ARCH] for an end-to-end | DVB released reference architecture [DVB_REF_ARCH] for an end-to-end | |||
| system to deliver linear content over IP networks in a scalable and | system to deliver linear content over IP networks in a scalable and | |||
| standards-compliant manner. It focuses on delivering Adaptive Bit | standards-compliant manner. It focuses on delivering Adaptive Bit | |||
| Rate unicast content over a IP multicast network. | Rate unicast content over a IP Multicast network. | |||
| A Multicast gateway is deployed in a CPE, Upstream Network Edge | A Multicast gateway is deployed in a CPE, Upstream Network Edge | |||
| device or Terminal and provides multicast to unicast conversion | device or Terminal and provides multicast to unicast conversion | |||
| facilities for several homes. All in-scope traffic on the access | facilities for several homes. All in-scope traffic on the access | |||
| network between the Multicast Gateway (e.g. network edge device) and | network between the Multicast Gateway (e.g. network edge device) and | |||
| the Terminal or home gateway device is unicast. The individual media | the Terminal or home gateway device is unicast. The individual media | |||
| files are encapsulated into other protocols, so that they can be | files are encapsulated into other protocols, so that they can be | |||
| recovered as discrete files, when they exit the multicast pipe, which | recovered as discrete files, when they exit the multicast pipe, which | |||
| is terminated at Multicast Gateway. Interface "L" between Multicast | is terminated at Multicast Gateway. Interface "L" between Multicast | |||
| server and Content playback supports fetching of all specified types | server and Content playback supports fetching of all specified types | |||
| skipping to change at page 8, line 42 ¶ | skipping to change at page 8, line 42 ¶ | |||
| also started similar work in October 2016, called WT-399. This work | also started similar work in October 2016, called WT-399. This work | |||
| is now coordinated with DVB. BBF focuses on developing the device | is now coordinated with DVB. BBF focuses on developing the device | |||
| management model. | management model. | |||
| Assume clients that are consuming the same content (such as a TV | Assume clients that are consuming the same content (such as a TV | |||
| program) and that this content has for each block (typically segments | program) and that this content has for each block (typically segments | |||
| worth 2 seconds of content) a set of outstanding requests from its | worth 2 seconds of content) a set of outstanding requests from its | |||
| clients. When IP Multicast is used in the domain, such as in | clients. When IP Multicast is used in the domain, such as in | |||
| aforementioned pre-existing solutions like in Cablelabs/DOCSIS | aforementioned pre-existing solutions like in Cablelabs/DOCSIS | |||
| [TR_IPMC_ABR], all possible blocks of the content have to be mapped | [TR_IPMC_ABR], all possible blocks of the content have to be mapped | |||
| to some IP multicast group, and the CNAP will need to know the | to some IP Multicast group, and the CNAP will need to know the | |||
| mapping of block to groups. For example, a live stream may have 11 | mapping of block to groups. For example, a live stream may have 11 | |||
| different bitrates available. In the most simple Block to IP | different bitrates available. In the most simple Block to IP | |||
| multicast group mapping scheme, there could be 11 multicast groups, | Multicast group mapping scheme, there could be 11 multicast groups, | |||
| one for all the blocks of one bitrate (note that this is not | one for all the blocks of one bitrate (note that this is not | |||
| necessarily done in deployments of this solution, but we consider it | necessarily done in deployments of this solution, but we consider it | |||
| here for the purpose of explanation). | here for the purpose of explanation). | |||
| If the multicast domain and especially the links into the CNAP has | If the multicast domain and especially the links into the CNAP has | |||
| enough bandwidth, this solution work well with IP multicast. As soon | enough bandwidth, this solution work well with IP Multicast. As soon | |||
| as there is at least one Client connected to a CNAP for one | as there is at least one Client connected to a CNAP for one | |||
| particular content, the CNAP would join all 11 multicast groups for | particular content, the CNAP would join all 11 multicast groups for | |||
| this content. | this content. | |||
| 5.1. Mapping to Requirements | 5.1. Mapping to Requirements | |||
| To realize "HTTP Level Multicast" over "IP Multicast", some | To realize "HTTP Level Multicast" over "IP Multicast", some | |||
| additional functions needs to be supported in an intermediate | additional functions needs to be supported in an intermediate | |||
| (overlay) layer. | (overlay) layer. | |||
| skipping to change at page 9, line 31 ¶ | skipping to change at page 9, line 31 ¶ | |||
| Support of IGMP signaling between User device, NAPs and Multicast | Support of IGMP signaling between User device, NAPs and Multicast | |||
| Router. | Router. | |||
| 5.2. Problems | 5.2. Problems | |||
| If the number of clients on a CNAP for a particular program is large, | If the number of clients on a CNAP for a particular program is large, | |||
| the approach will work fairly well, because the likelihood that each | the approach will work fairly well, because the likelihood that each | |||
| of the 11 bitrates of a content is necessary for at least one Client | of the 11 bitrates of a content is necessary for at least one Client | |||
| is then fairly high. | is then fairly high. | |||
| When the number of receivers is not very large, IP multicast runs | When the number of receivers is not very large, IP Multicast runs | |||
| into two issues. If all the bitrates for the content are sent across | into two issues. If all the bitrates for the content are sent across | |||
| the same group, then many of the bitrates may not be required and | the same group, then many of the bitrates may not be required and | |||
| would have to be received unnecessarily and dropped by the CNAP. If | would have to be received unnecessarily and dropped by the CNAP. If | |||
| each bitrate was sent on a different IP multicast group, the CNAP | each bitrate was sent on a different IP Multicast group, the CNAP | |||
| could dynamically join/leave each multicast group based on the known | could dynamically join/leave each multicast group based on the known | |||
| receivers, but that would create an extremely high and undesirable | receivers, but that would create an extremely high and undesirable | |||
| amount of IP multicast signaling protocol activity (PIM/IGMP) that is | amount of IP Multicast signaling protocol activity (PIM/IGMP) that is | |||
| easily overloading the network | easily overloading the network | |||
| For efficiency reasons, the CNAP would need to dynamically join to | For efficiency reasons, the CNAP would need to dynamically join to | |||
| only those bitrate steams where it does have outstanding requests, | only those bitrate steams where it does have outstanding requests, | |||
| therefore achieving the best efficiency. This would mean in the | therefore achieving the best efficiency. This would mean in the | |||
| worst case that a CNAP would need to send for each new block, aka.: | worst case that a CNAP would need to send for each new block, aka.: | |||
| every two second for every client one IGMP/PIM leave and one IGMP/PIM | every two second for every client one IGMP/PIM leave and one IGMP/PIM | |||
| join towards the upstream router to get a block for an appropriate | join towards the upstream router to get a block for an appropriate | |||
| bitrate (or changed content) whenever bitrate or content on a client | bitrate (or changed content) whenever bitrate or content on a client | |||
| have changed. This high rate of control-plane signaling between CNAP | have changed. This high rate of control-plane signaling between CNAP | |||
| skipping to change at page 13, line 42 ¶ | skipping to change at page 13, line 42 ¶ | |||
| Upon arrival of an HTTP response at the server SH, the server SH | Upon arrival of an HTTP response at the server SH, the server SH | |||
| consults its internal request table for any outstanding HTTP requests | consults its internal request table for any outstanding HTTP requests | |||
| to the same request. The server SH retrieves the stored BIER | to the same request. The server SH retrieves the stored BIER | |||
| forwarding information for the reverse direction for all outstanding | forwarding information for the reverse direction for all outstanding | |||
| HTTP requests and determines the path information to all client SHs | HTTP requests and determines the path information to all client SHs | |||
| through a binary OR over all BIER forwarding identifiers with the | through a binary OR over all BIER forwarding identifiers with the | |||
| same SI field. This newly formed joint BIER multicast response | same SI field. This newly formed joint BIER multicast response | |||
| identifier is used to send the HTTP response across the network. | identifier is used to send the HTTP response across the network. | |||
| BIER makes the solution scalable. Instead of IP multicast with IGMP/ | BIER makes the solution scalable. Instead of IP Multicast with IGMP/ | |||
| PIM, BIER is being used between Server NAP (SNAP) and CNAP, the SNAP | PIM, BIER is being used between Server NAP (SNAP) and CNAP, the SNAP | |||
| simply coalesces the forwarded HTTP requests from the CNAP, and | simply coalesces the forwarded HTTP requests from the CNAP, and | |||
| determines for every requested block the set of CNAPs requesting it. | determines for every requested block the set of CNAPs requesting it. | |||
| A set of CNAPs corresponds to a set of bits in the BIER-bitstring, | A set of CNAPs corresponds to a set of bits in the BIER-bitstring, | |||
| one bit per CNAP. The SNAP then sends the block into BIER with the | one bit per CNAP. The SNAP then sends the block into BIER with the | |||
| appropriate bitstring set. | appropriate bitstring set. | |||
| This completely eliminates any dynamic multicast signaling between | This completely eliminates any dynamic multicast signaling between | |||
| CNAP and SNAP. It also avoids sending of any unnecessary data block, | CNAP and SNAP. It also avoids sending of any unnecessary data block, | |||
| which in the IP multicast solution is pretty much unavoidable. | which in the IP Multicast solution is pretty much unavoidable. | |||
| Furthermore, using the approach with BIER, the SNAP can also easily | Furthermore, using the approach with BIER, the SNAP can also easily | |||
| control how long to delay sending of blocks. For example, it may | control how long to delay sending of blocks. For example, it may | |||
| wait for some percentage of the time of a block (e.g, 50% = 1 | wait for some percentage of the time of a block (e.g, 50% = 1 | |||
| second), therefore ensuring that it is coalescing as many requests | second), therefore ensuring that it is coalescing as many requests | |||
| into one BIER multicast answer as possible. | into one BIER multicast answer as possible. | |||
| 6.3. BIER Multicast Overlay Traffic Management | 6.3. BIER Multicast Overlay Traffic Management | |||
| BIER-TE (BIER Traffic Engineering [I-D.ietf-bier-te-arch]) forwards | BIER-TE (BIER Traffic Engineering [I-D.ietf-bier-te-arch]) forwards | |||
| skipping to change at page 15, line 15 ¶ | skipping to change at page 15, line 15 ¶ | |||
| extraction of the suitable request parameters while allowing for the | extraction of the suitable request parameters while allowing for the | |||
| re-encryption of the content for an encrypted delivery over the BIER | re-encryption of the content for an encrypted delivery over the BIER | |||
| network. Since we liken the relationship between content and BIER | network. Since we liken the relationship between content and BIER | |||
| overlay provider to that between content and CDN provider, the | overlay provider to that between content and CDN provider, the | |||
| existence of certificate sharing agreements is similar to the | existence of certificate sharing agreements is similar to the | |||
| practice used for CDNs. | practice used for CDNs. | |||
| 9. Informative References | 9. Informative References | |||
| [DVB_REF_ARCH] | [DVB_REF_ARCH] | |||
| DVB, "Adaptive media streaming over IP multicast", DVB | DVB, "Adaptive media streaming over IP Multicast", DVB | |||
| Document A176, March 2018, | Document A176, March 2018, | |||
| <https://www.dvb.org/resources/public/standards/a176_adapt | <https://www.dvb.org/resources/public/standards/a176_adapt | |||
| ive_media_streaming_over_ip_multicast_2018-02-16_draft_blu | ive_media_streaming_over_ip_multicast_2018-02-16_draft_blu | |||
| ebook.pdf>. | ebook.pdf>. | |||
| [I-D.ietf-bier-te-arch] | [I-D.ietf-bier-te-arch] | |||
| Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic | Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic | |||
| Engineering for Bit Index Explicit Replication (BIER-TE)", | Engineering for Bit Index Explicit Replication (BIER-TE)", | |||
| draft-ietf-bier-te-arch-00 (work in progress), January | draft-ietf-bier-te-arch-00 (work in progress), January | |||
| 2018. | 2018. | |||
| [I-D.ietf-bier-use-cases] | [I-D.ietf-bier-use-cases] | |||
| Kumar, N., Asati, R., Chen, M., Xu, X., Dolganow, A., | Nainar, N., Asati, R., Chen, M., Xu, X., Dolganow, A., | |||
| Przygienda, T., Gulko, A., Robinson, D., Arya, V., and C. | Przygienda, T., Gulko, A., Robinson, D., Arya, V., and C. | |||
| Bestler, "BIER Use Cases", draft-ietf-bier-use-cases-10 | Bestler, "BIER Use Cases", draft-ietf-bier-use-cases-11 | |||
| (work in progress), August 2019. | (work in progress), March 2020. | |||
| [I-D.ietf-httpbis-bcp56bis] | [I-D.ietf-httpbis-bcp56bis] | |||
| Nottingham, M., "On the use of HTTP as a Substrate", | Nottingham, M., "On the use of HTTP as a Substrate", | |||
| draft-ietf-httpbis-bcp56bis-05 (work in progress), May | draft-ietf-httpbis-bcp56bis-05 (work in progress), May | |||
| 2018. | 2018. | |||
| [I-D.irtf-icnrg-deployment-guidelines] | [I-D.irtf-icnrg-deployment-guidelines] | |||
| Rahman, A., Trossen, D., Kutscher, D., and R. Ravindran, | Rahman, A., Trossen, D., Kutscher, D., and R. Ravindran, | |||
| "Deployment Considerations for Information-Centric | "Deployment Considerations for Information-Centric | |||
| Networking (ICN)", draft-irtf-icnrg-deployment- | Networking (ICN)", draft-irtf-icnrg-deployment- | |||
| End of changes. 21 change blocks. | ||||
| 23 lines changed or deleted | 23 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||