RFC 3466

A Model for Content Internetworking (CDI)

πŸ“… published March 2003, from ietf

RFC 3466: A Model for Content Internetworking (CDI) πŸ’–πŸŽ€

okay bestie, this one is from February 2003 and it's the vocab doc for CDI (content internetworking) πŸ¦‹ It's Informational, so it's just sharing info for the Internet community, not a standard. It's by M. Day (Cisco), B. Cain (Storigen), G. Tomlinson (Tomlinson Group), and P. Rzewski (Media Publisher, Inc.), all filed under the Network Working Group. The header doesn't list anything it obsoletes or updates. ✨


Status of this Memo ✨

This memo gives info to the Internet community. It is NOT a spec for an Internet standard of any kind πŸ™ˆ Distribution is unlimited.

Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract πŸ¦‹

Content (distribution) internetworking (CDI) is the tech for connecting content networks together πŸ”— People used to call it "content peering" or "CDN peering," and a shared vocab makes it way easier to talk about how these networks link up and work together. This doc introduces content networks and content internetworking, then defines the terms for that shared vocab. πŸ’œ

Table of Contents 🌸

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . .  2
2.  Content Networks . . . . . . . . . . . . . . . . . . . . . .  2
    2.1   Problem Description  . . . . . . . . . . . . . . . . .  3
    2.2   Caching Proxies. . . . . . . . . . . . . . . . . . . .  4
    2.3   Server Farms . . . . . . . . . . . . . . . . . . . . .  5
    2.4   Content Distribution Networks. . . . . . . . . . . . .  6
          2.4.1 Historic Evolution of CDNs . . . . . . . . . . .  8
          2.4.2 Describing CDN Value: Scale and Reach. . . . . .  8
3.  Content Network Model Terms  . . . . . . . . . . . . . . . .  9
4.  Content Internetworking  . . . . . . . . . . . . . . . . . . 12
5.  Content Internetworking Model Terms  . . . . . . . . . . . . 12
6.  Security Considerations  . . . . . . . . . . . . . . . . . . 15
7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15
8.  Normative References . . . . . . . . . . . . . . . . . . . . 16
9.  Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 16
10. Full Copyright Statement . . . . . . . . . . . . . . . . . . 17

1. Introduction 🧚

Content networks matter more and more to the overall architecture of the Web 🌈 This doc gives us a vocab for building tech that links content networks together, which is also called "content internetworking." πŸ”—

The official name for linking content networks is "content internetworking." For historical reasons, we shorten it to CDI (from "content distribution internetworking") πŸ’… Older names copied the way IP networks peer and interconnect, so we had "content peering" and "CDN peering." All of those are now deprecated πŸ™…β€β™€οΈ The IETF CDI group has worked hard to use "content internetworking" and "CDI" consistently across all its docs. πŸŽ€

The terminology here builds on the earlier taxonomy of web caching and replication in RFC 3040 [3]. We tried really hard to avoid saying "proxies" or "caches" on their own πŸ™ˆ and instead use the more specific terms that RFC 3040 defines, like "caching proxy." ✨

Section 2 gives background on content networks. Section 3 introduces the terms for elements of a content network and explains how they're used. Section 4 gives more background on interconnecting content networks, and then Section 5 introduces more terms and explains how those internetworking terms work. πŸ’–

2. Content Networks πŸ’œ

The last few years have been all about technologies built around "content." 😭 Whole protocols, appliances, and markets have popped up just for finding, downloading, and tracking the usage of content. Some examples include web caching proxies, content management tools, intelligent "web switches," and advanced log analysis tools. πŸ”₯

When these tools get used together, they form new kinds of networks, which we call "content networks." πŸ‘‘ Normal network infrastructure has traditionally handled information at layers 1 through 3 of the OSI stack. Content networks, though, include infrastructure that lives in layers 4 through 7 ✨ Lower-layer networks are all about routing, forwarding, and switching frames and packets, while content networks deal with routing and forwarding requests and responses for content πŸ¦‹ The units of transported data in content networks, like images, movies, or songs, are often super big and may span hundreds or thousands of packets. πŸ“¦

Or you can think of content networks as a brand new virtual overlay on top of the OSI stack: a "content layer" 🌸 that enables richer services relying on underlying elements from all 7 layers of the stack. Traditional apps like file transfer (FTP) relied on protocols like TCP/IP for transport, but overlay services in content networks rely on layer 7 protocols like HTTP or RTSP for transport. πŸŽ€

All this content networking means people want to interconnect content networks and find ways for different content networks to cooperate for better overall service. 🫢

2.1 Problem Description πŸ“

Content networks usually play some part in solving the "content distribution problem." πŸ’… The goal is to set up a rendezvous between a content source at an origin server and a content sink at a viewer's user agent. In the trivial case, the rendezvous is that every user agent sends every request directly to the origin server named in the host part of the URL that identifies the content. πŸ™ƒ

As the audience for a content source grows, so do the demands on the origin server 😩 There are lots of ways to tweak the trivial system for better performance. The single logical server might actually be a big "farm" of server machines behind a switch. Both caching proxies and reverse caching proxies can be deployed between the client and server, so requests can be answered by a cache instead of the server. πŸ§šβ€β™€οΈ

For background, several sample content networks are described in the following sections, each one trying to solve this problem. πŸ’œ

2.2 Caching Proxies 🧁

A caching proxy deployment is a type of content network that's been around for several years 🌷 An ISP might typically use one for its users who access the Internet, for example through dial or cable modem. πŸ’»

To improve performance and cut down on bandwidth use, caching proxies get deployed close to the users. These users are encouraged to send their web requests through the caches instead of straight to origin servers, for example by setting up their browsers to do that πŸŽ€ When this is set up properly, the user's whole browsing session goes through one specific caching proxy. That caching proxy then ends up holding the "hot set" of all the Internet content being viewed by every user of that caching proxy. πŸ”₯

When a caching proxy handles a request for a user, other decisions can come into play, such as: 🌈

  • A provider that deploys caches in lots of geographically diverse locations may also deploy regional parent caches to aggregate user requests and responses even more. This may provide extra performance improvement and bandwidth savings. When parents are included, this is called hierarchical caching. 🌳
  • Using rich parenting protocols, redundant parents may be deployed so that if a primary parent fails, the system detects it and uses a backup instead. πŸ›Ÿ
  • Using similar parenting protocols, requests may be partitioned so that requests for certain content domains are sent to a specific primary parent. This can help make the most efficient use of caching proxy resources. ⭐

Here's a diagram of a hierarchical cache deployment like the one described above πŸ’–

                 ^        ^
                 |        |   requests to
                 |        |   origin servers
                 |        |
             --------   --------
             |parent|   |parent|
             |cache |   |cache |
             |proxy |   |proxy |
             --------   --------
                  ^         ^
      requests for \       / requests for
           foo.com  \     /  bar.com
           content   \   /   content
                      \ /
  -------  -------  -------  -------
  |edge |  |edge |  |edge |  |edge |
  |cache|  |cache|  |cache|  |cache|
  |proxy|  |proxy|  |proxy|  |proxy|
  -------  -------  -------  -------
                      ^
                      | all content
                      | requests
                      | for this
                      | client
                      |
                   --------
                   |client|
                   --------

This diagram shows just one possible setup, but there are lots of other useful ones 🧠 For example, the client may be able to talk directly to multiple caching proxies. RFC 3040 [3] has more examples of how multiple caching proxies can be used. πŸ“š

2.3 Server Farms 🏭

Server farms are another type of content network that's been widely used for several years πŸ’… A typical server farm uses a so-called "intelligent" or "content" switch (in other words, one that uses information in OSI layers 4-7) 🧠 The switch looks at content requests and dispatches them across a (potentially large) group of servers. πŸ–₯️

Some of the goals of a server farm are: ✨

  • Making the group of servers look like one single origin site. 🎭
  • Load-balancing requests across all the servers in the group. βš–οΈ
  • Automatically routing requests away from servers that fail. πŸ›Ÿ
  • Routing all requests for a particular user agent's session to the same server, so session state is preserved. πŸ’œ

Here's a simple server farm deployment 🌸

   ---------  ---------  ---------  ---------
   |content|  |content|  |content|  |content|
   |server |  |server |  |server |  |server |
   |       |  |       |  |       |  |       |
   ---------  ---------  ---------  ---------
                  ^          ^
      request from \        / request from
         client A   \      /    client B
                     \    /
                  -------------
                  |  L4-L7    |
                  |  switch   |
                  -------------
                     ^     ^
                    /       \
                   /         \
                  /           \
          request from     request from
            client A         client B

A similar style of content network, one deployed close to the servers, can also be built with surrogates [3] instead of a switch. πŸ¦‹

2.4 Content Distribution Networks ✨

okay so hierarchical caching AND server farms are both super useful, but they've got limits bestie πŸ₯Ί server farms can make the origin server way more scalable, BUT since all those extra servers and other bits are usually parked right next to the origin, they don't really fix performance problems caused by network congestion 😭 caching proxies can help with congestion (they're near the clients!!) but they cache stuff based on what clients ask for, and that's where it gets messy. caching based on client demand performs poorly if requests for one object are super numerous overall but spread thinly across lots of different caching proxies πŸ’€ like, in the worst case, an object could get requested n times through n separate caching proxies, which causes n separate requests to the origin server. literally the same behavior you'd get with no caching proxies at all πŸ™ˆ

so a content provider with a popular content source can end up having to invest in big server farms, load balancing, and high-bandwidth connections just to keep up with demand πŸ’… and even after all that, the user experience can still be pretty rough because of congestion in the network as a whole. not it 😩

to fix these limitations, another type of content network has been popping off in recent years: the CDN (Content Distribution Network or Content Delivery Network) πŸ¦‹ a CDN basically takes server-farm-like setups and moves them out to network locations that caching proxies usually live in. a CDN has multiple replicas of each content item being hosted 🌸 when a browser asks for a single content item, the request gets directed to a "good" replica, where "good" usually means the item gets served to the client quickly compared to how long it would take to fetch it from the origin server, with appropriate integrity and consistency ✨ static info about geographic locations and network connectivity usually isn't enough to pick a good replica, so a CDN typically pulls in dynamic info about network conditions and load on the replicas, and directs requests to balance the load. big brain energy πŸ§ πŸŽ€

compared to using servers and surrogates in a single data center, a CDN is a pretty complex system with multiple points of presence, in locations that might be geographically far apart 🌈 running a CDN is not easy for a content provider, since they want to focus their resources on making high-value content, not managing network infrastructure 😭 so a more typical arrangement is that a network service provider builds and operates a CDN and offers a content distribution service to a bunch of content providers 🫢

a CDN lets a service provider act on behalf of the content provider to deliver copies of origin server content to clients from multiple diverse locations πŸ’– the increase in number and diversity of locations is meant to improve download times, and that makes the user experience better. a CDN has some combo of a content-delivery infrastructure, a request-routing infrastructure, a distribution infrastructure, and an accounting infrastructure 🧚 the content-delivery infrastructure is a set of "surrogate" servers [3] that deliver copies of content to sets of users. the request-routing infrastructure is mechanisms that move a client toward a rendezvous with a surrogate. the distribution infrastructure is mechanisms that move content from the origin server to the surrogates. and finally, the accounting infrastructure tracks and collects data on request-routing, distribution, and delivery functions within the CDN πŸ“Šβœ¨

here's a diagram of a simple CDN like we just described πŸ‘‘

           ----------          ----------
           |request-|          |request-|
           |routing |          |routing |
           | system |          | system |
           ----------          ----------
             ^ |
(1) client's | | (2) response
    content  | |     indicating
    request  | |     location of       -----------
             | |     content           |surrogate|
             | |                       -----------
   -----------   | |
   |surrogate|   | |      -----------
   -----------   | |      |surrogate|
                 | |      -----------
                 | |      ^
                 | v     / (3) client opens
                client---      connection to
                               retrieve content

Wait, that diagram got a little scrambled in my version. Here is the original diagram, copied exactly, which is the one that counts πŸ™ˆ

           ----------          ----------
           |request-|          |request-|
           |routing |          |routing |
           | system |          | system |
           ----------          ----------
             ^ |
(1) client's | | (2) response
    content  | |     indicating
    request  | |     location of       -----------
             | |     content           |surrogate|
             | |                       -----------
   -----------   | |
   |surrogate|   | |      -----------
   -----------   | |      |surrogate|
                 | |      -----------
                 | |      ^
                 | v     / (3) client opens
                client---      connection to
                               retrieve content

2.4.1 Historic Evolution of CDNs

the first important use of CDNs was for distributing heavily-requested graphic files (think GIF files on the home pages of popular servers) 🌸 but both in principle and more and more in practice, a CDN can support delivery of any digital content, including various forms of streaming media 🎬 for a streaming media CDN (or media distribution network or MDN), the surrogates may be operating as splitters (serving out multiple copies of a stream). the splitter function might be instead of, or in addition to, a role as a caching proxy πŸ“ still, the basic elements in this model are meant to apply to the interconnection of content networks that distribute streaming media. iykyk πŸ’œ

2.4.2 Describing CDN Value: Scale and Reach

there are two fundamental elements that give a CDN its value: outsourcing infrastructure and improved content delivery πŸ”₯ a CDN lets multiple surrogates act on behalf of an origin server, which removes delivery of content from one centralized site and spreads it out to multiple (usually) highly distributed sites. we call increased aggregate infrastructure size "scale" πŸ“ˆ and a CDN can also be built with copies of content near end users, overcoming issues of network size, network congestion, and network failures. we call increased diversity of content locations "reach" 🌍✨

in a typical (non-internetworked) CDN, a single service provider operates the request-routers, the surrogates, and the content distributors πŸ’… that service provider also establishes (business) relationships with content publishers and acts on behalf of their origin sites to provide a distributed delivery system. so the value of that CDN to a content provider is a combo of its scale and its reach. periodt πŸ‘‘πŸ«Ά

3. Content Network Model Terms πŸŽ€

okay so this section is basically the glossary bestie πŸ“– it defines all the roles, participants, and objects in content networks. some of the words come from RFC 2616 [1] or RFC 3040 [3], but there's no required link to HTTP or web caching πŸ™ˆ content internetworking and this vocab work for other protocols and delivery styles too.

heads up: any phrase in UPPER-CASE is a term defined somewhere else in this list πŸ’…

  • ACCOUNTING 🧾: measuring and recording DISTRIBUTION and DELIVERY activity, especially when that record ends up being the basis for later transfers of money, goods, or obligations.
  • ACCOUNTING SYSTEM πŸ“Š: a group of CONTENT NETWORK ELEMENTS that supports ACCOUNTING for one single CONTENT NETWORK.
  • AUTHORITATIVE REQUEST-ROUTING SYSTEM πŸ‘‘: the REQUEST-ROUTING SYSTEM that's the correct, final authority for a particular item of CONTENT.
  • CDN 🌸: Content Delivery Network or Content Distribution Network (both names are valid, iykyk). It's a type of CONTENT NETWORK where the CONTENT NETWORK ELEMENTS are arranged to deliver CONTENT to CLIENTS more effectively. A CDN usually has a REQUEST-ROUTING SYSTEM, SURROGATES, a DISTRIBUTION SYSTEM, and an ACCOUNTING SYSTEM. it's giving full setup ✨
  • CLIENT πŸ’–: a program that sends CONTENT REQUESTS and receives the matching CONTENT RESPONSES. (note: this is similar to the one in RFC 2616 [1], but we don't require a connection to be set up first πŸ¦‹)
  • CONTENT 🧁: any form of digital data. CONTENT roughly matches what RFC 2616 [1] calls an "entity." one important kind of CONTENT, with extra limits on DISTRIBUTION and DELIVERY, is CONTINUOUS MEDIA.
  • CONTENT NETWORK 🌐: an arrangement of CONTENT NETWORK ELEMENTS that's controlled by some common management.
  • CONTENT NETWORK ELEMENT πŸ”: a network device that does at least some of its processing by looking at the CONTENT-related parts of network messages. in IP-based networks, a CONTENT NETWORK ELEMENT is a device whose processing depends on reading information inside the IP packet bodies. network elements (as RFC 3040 defines them) only look at the IP packet header πŸ‘€ also, lots of CONTENT NETWORK ELEMENTS never see individual IP packets. instead they get the body of one or more packets put together into a message from some higher-level protocol 🧩
  • CONTENT REQUEST πŸ“¨: a message that identifies a particular item of CONTENT to be delivered.
  • CONTENT RESPONSE πŸ“¬: a message that carries a particular item of CONTENT, matched to an earlier CONTENT REQUEST.
  • CONTENT SIGNAL πŸ“£: a message sent through a DISTRIBUTION SYSTEM that tells you something about an item of CONTENT. for example, a CONTENT SIGNAL can say that the ORIGIN has a new version of some CONTENT πŸ†•
  • CONTINUOUS MEDIA 🎬: CONTENT where there's a timing relationship between source and sink. basically, the sink has to reproduce the timing that existed at the source ⏱️ the most common examples are audio and motion video. CONTINUOUS MEDIA can be real-time (interactive), where the timing between source and sink is "tight," or streaming (playback), where the relationship is less strict. [Note: This definition is essentially identical to the definition of continuous media in [2]]
  • DELIVERY 🚚: the activity of giving a PUBLISHER's CONTENT to a CLIENT through CONTENT RESPONSES. compare with DISTRIBUTION and REQUEST-ROUTING.
  • DISTRIBUTION πŸ“¦: the activity of moving a PUBLISHER's CONTENT from its ORIGIN to one or more SURROGATEs. DISTRIBUTION can happen either before a SURROGATE gets a REQUEST (pre-positioning) or because a SURROGATE got a REQUEST (fetching on demand) πŸ™Œ compare with DELIVERY and REQUEST-ROUTING.
  • DISTRIBUTION SYSTEM πŸ›°οΈ: a group of CONTENT NETWORK ELEMENTS that supports DISTRIBUTION for one single CONTENT NETWORK. the DISTRIBUTION SYSTEM also passes along CONTENT SIGNALs.
  • ORIGIN 🏠: the point where CONTENT first enters a DISTRIBUTION SYSTEM. the ORIGIN for any item of CONTENT is the server (or set of servers) at the "core" of the distribution, holding the "master" or "authoritative" copy of that CONTENT. (note: we think this definition matches "origin server" in RFC 2616 [1], but it adds extra constraints that are useful for CDI.)
  • PUBLISHER 🎀: the party that ultimately controls the CONTENT and how it gets distributed.
  • REACHABLE SURROGATES πŸ—ΊοΈ: the collection of SURROGATES that can be contacted through a particular DISTRIBUTION SYSTEM or REQUEST-ROUTING SYSTEM.
  • REQUEST-ROUTING 🧭: the activity of steering or directing a CONTENT REQUEST from a USER AGENT to a suitable SURROGATE.
  • REQUEST-ROUTING SYSTEM πŸ—‚οΈ: a group of CONTENT NETWORK ELEMENTS that supports REQUEST-ROUTING for one single CONTENT NETWORK.
  • SERVER πŸ–₯️: a program that accepts CONTENT REQUESTS and services them by sending back CONTENT RESPONSES. any given program can be both a client and a server. our use of these terms only refers to the role the program is playing at that moment πŸ”„ [Note: this is adapted from a similar definition in RFC 2616 [1].]
  • SURROGATE 🦸: a delivery server other than the ORIGIN. it receives a CONTENT REQUEST and delivers the matching CONTENT RESPONSE. [Note: this is a different definition from the one in RFC 3040 [3], which we think is a bit overly elaborate for our purposes. a "CDI surrogate" is always an "RFC 3040 surrogate," but we're not sure the reverse is true.]
  • USER AGENT 🌷: the CLIENT that starts a REQUEST. these are often browsers, editors, spiders (web-traversing robots), or other end-user tools. [Note: this definition is identical to the one in RFC 2616 [1].]

4. Content Internetworking 🌈

okay so here's the real tea πŸ«– there are limits to how big any one network's scale and reach can get. growing either one is ultimately capped by the cost of equipment, the space you have to put equipment in, and/or how much demand there is for that much infrastructure πŸ’Έ sometimes a particular audience is stuck with one service provider (or a small handful) because of technology, economics, or law. other times, a network provider can run surrogates and a distribution system but has no direct relationship with content providers at all 😭 that provider wants a way to team up its delivery and distribution infrastructure with other parties who have content to share 🀝

that's where content internetworking comes in ✨ it lets different content networks share resources so each participant gets more scale and/or reach than it could reach alone. by using commonly defined protocols for content internetworking, each content network can treat its neighbors as "black boxes," which means they can keep their internal details hidden from each other 🫢 iconic, honestly πŸ’œ

5. Content Internetworking Model Terms πŸ’–

okay bestie, this section is basically our glossary πŸ“–βœ¨. Every term here is a role, a participant, or an object that shows up when content networks start talking to each other, and the whole point is to give everyone the same words for the same things. I've kept the definitions tight so you can scan them easily πŸ’….

ACCOUNTING INTERNETWORKING: Interconnecting two or more ACCOUNTING SYSTEMS so they can swap information. How much of this you need depends on the NEGOTIATED RELATIONSHIP between the peers, especially how valuable the economic exchanges are expected to be πŸ’Έ.

ADVERTISEMENT: Info about resources that's available to other CONTENT NETWORKS, passed along through CONTENT INTERNETWORKING GATEWAYS πŸ“£. The main flavours are AREA ADVERTISEMENTS, CONTENT ADVERTISEMENTS, and DISTRIBUTION ADVERTISEMENTS.

AREA ADVERTISEMENT: An ADVERTISEMENT from a CONTENT NETWORK's REQUEST-ROUTING SYSTEM about its topology, geography, and performance πŸ—ΊοΈ. Compare with CONTENT ADVERTISEMENT and DISTRIBUTION ADVERTISEMENT.

BILLING ORGANIZATION: An entity that runs an ACCOUNTING SYSTEM to handle billing inside a NEGOTIATED RELATIONSHIP with a PUBLISHER 🧾.

CONTENT ADVERTISEMENT: An ADVERTISEMENT from a CONTENT NETWORK's REQUEST-ROUTING SYSTEM about whether one or more collections of CONTENT are available on that network πŸŽ€. Compare with AREA ADVERTISEMENT and DISTRIBUTION ADVERTISEMENT.

CONTENT DESTINATION: A CONTENT NETWORK or DISTRIBUTION SYSTEM that accepts CONTENT from another network or system πŸ“₯. Contrast with CONTENT SOURCE.

CONTENT INTERNETWORKING GATEWAY (CIG): An identifiable element or system that lets a CONTENT NETWORK connect with others πŸšͺ. A CIG can be the contact point for DISTRIBUTION INTERNETWORKING, REQUEST-ROUTING INTERNETWORKING, and/or ACCOUNTING INTERNETWORKING, so it may include some or all of the matching systems for that CONTENT NETWORK 🧚.

CONTENT REPLICATION: Moving CONTENT from a CONTENT SOURCE to a CONTENT DESTINATION πŸ”. This specifically means moving CONTENT from one network to another. Movement inside a single network's DISTRIBUTION SYSTEM can use similar or different mechanisms.

CONTENT SOURCE: A CONTENT NETWORK or DISTRIBUTION SYSTEM that distributes CONTENT to another network or system πŸ“€. Contrast with CONTENT DESTINATION.

DISTRIBUTION ADVERTISEMENT: An ADVERTISEMENT from a CONTENT NETWORK's DISTRIBUTION SYSTEM to potential CONTENT SOURCES, describing what one or more CONTENT DESTINATIONS are capable of 🌈. Contrast with AREA ADVERTISEMENT and CONTENT ADVERTISEMENT.

DISTRIBUTION INTERNETWORKING: Interconnecting two or more DISTRIBUTION SYSTEMS so CONTENT SIGNALS and copies of CONTENT can be propagated to groups of SURROGATES πŸ“‘.

ENLISTED: Describes a CONTENT NETWORK that, under a NEGOTIATED RELATIONSHIP, has taken on a DISTRIBUTION task from another CONTENT NETWORK, agreed to do REQUEST-ROUTING for another CONTENT NETWORK, or agreed to provide ACCOUNTING data to another CONTENT NETWORK 🫢. Contrast with ORIGINATING.

INJECTION: A "send-only" form of DISTRIBUTION INTERNETWORKING that goes from an ORIGIN to a CONTENT DESTINATION πŸ’‰.

INTER-: Describes activity that involves more than one CONTENT NETWORK, like INTER-CDN 🀝. Contrast with INTRA-.

INTRA-: Describes activity inside a single CONTENT NETWORK, like INTRA-CDN 🏠. Contrast with INTER-.

NEGOTIATED RELATIONSHIP: A relationship where some or all of the terms and conditions are set up outside the content network internetworking protocols 🀝✨.

ORIGINATING: Describes a CONTENT NETWORK that, under a NEGOTIATED RELATIONSHIP, hands a DISTRIBUTION task to another CONTENT NETWORK, asks another CONTENT NETWORK to do REQUEST-ROUTING on its behalf, or asks another CONTENT NETWORK for ACCOUNTING data πŸ‘‘. Contrast with ENLISTED.

REMOTE CONTENT NETWORK: A CONTENT NETWORK that can deliver CONTENT for a particular REQUEST even though it isn't the AUTHORITATIVE REQUEST-ROUTING SYSTEM for that REQUEST πŸ¦‹.

REQUEST-ROUTING INTERNETWORKING: Interconnecting two or more REQUEST-ROUTING SYSTEMS to increase the number of REACHABLE SURROGATES for at least one of the connected systems 🧭.


6. Security Considerations πŸ”

ok this one is SERIOUS bestie 😭πŸ”₯. This document only defines terminology and concepts for content internetworking, so the terms themselves don't bring in any security issues. Putting these concepts into practice does raise security issues, though, and we group them into broad categories below. Other CDI documents will dig into their specific security issues in more detail πŸ•΅οΈβ€β™€οΈ.

Secure relationship establishment: CONTENT INTERNETWORKING GATEWAYS must make sure that CONTENT NETWORKS only internetwork with other CONTENT NETWORKS as intended 🚧. It must be possible to stop unauthorized internetworking, and to stop someone from spoofing another CONTENT NETWORK's identity 🎭.

Secure content transfer: CONTENT INTERNETWORKING GATEWAYS must support CONTENT NETWORK mechanisms that protect both the integrity of CONTENT and the integrity of DISTRIBUTION and DELIVERY πŸ›‘οΈ. This still applies when both ORIGINATING and ENLISTED networks are involved πŸ’ͺ. CONTENT INTERNETWORKING GATEWAYS must also allow for mechanisms that prevent theft or corruption of CONTENT πŸ”’.

Secure meta-content transfer: CONTENT INTERNETWORKING GATEWAYS must support moving accurate, reliable, auditable ACCOUNTING information between CONTENT NETWORKS 🧾. CONTENT INTERNETWORKING GATEWAYS must also allow for mechanisms that prevent diversion or corruption of ACCOUNTING data and similar meta-content 🚨.


7. Acknowledgements 🫢

The authors want to thank everyone who contributed and commented: Fred Douglis (AT&T), Don Gilletti (CacheFlow), Markus Hoffmann (Lucent), Barron Housel (Cisco), Barbara Liskov (Cisco), John Martin (Network Appliance), Nalin Mistry (Nortel Networks), Raj Nair (Cisco), Hilarie Orman (Volera), Doug Potter (Cisco), and Oliver Spatscheck (AT&T) πŸ’–.


8. Normative References πŸ“š

  • [1] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
  • [2] Schulzrinne, H., Rao, A. and R. Lanphier, "Real Time Streaming Protocol", RFC 2326, April 1998.
  • [3] Cooper, I., Melve, I. and G. Tomlinson, "Internet Web Replication and Caching Taxonomy", RFC 3040, June 2000.

9. Authors' Addresses πŸŽ€

Here are the people who wrote this one, with their contact details kept exactly as published πŸ’Œ:

Mark Stuart Day
Cisco Systems
1414 Massachusetts Avenue
Boxborough, MA  01719
US

Phone: +1 978 936 1089
EMail: mday@alum.mit.edu

Brad Cain
Storigen Systems
650 Suffolk Street
Lowell, MA  01854
US

Phone: +1 978 323 4454
EMail: bcain@storigen.com

Gary Tomlinson
Tomlinson Group
14324 227th Ave NE
Woodinville, WA 98072

Phone: +1 425 503 0881
EMail: gary@tomlinsongroup.net

Phil Rzewski
30 Jennifer Place
San Francisco, CA  94107
US

Phone: +1 650 303 3790
EMail: philrz@yahoo.com

Copyright and licensing details are kept word for word below, because legal text shouldn't get a glow-up πŸ’œ.

Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement 🌸

Funding for the RFC Editor function is currently provided by the Internet Society 🌈✨.

πŸ“¦ where this page comes from