RFC 1937

"Local/Remote" Forwarding Decision in Switched Data Link Subnetworks

πŸ“… published May 1996, from ietf

"Local/Remote" Forwarding Decision in Switched Data Link Subnetworks πŸ¦‹

Okay bestie, here's the deal with RFC 1937, the title block tea β˜•:

  • Network Working Group 🌸
  • Request for Comments: 1937 ✨
  • Authors: Y. Rekhter (Cisco Systems) and D. Kandlur (T.J. Watson Research Center, IBM Corp.) πŸ’œ
  • Category: Informational πŸŽ€
  • Date: May 1996 🌈
  • Obsoletes and updates: the title block doesn't list any RFCs this one obsoletes or updates 🧚

Status of This Memo πŸŽ€

This memo gives information to the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

Abstract 🌸

So the IP architecture assumes every Data Link subnetwork gets labeled with one single IP subnet number. Hosts that share that subnet number talk directly with no routers in the middle, and hosts with different subnet numbers always go through one or more routers. As RFC1620 points out, these assumptions might be too restrictive for big data networks, especially ones built on switched virtual circuit (SVC) technologies like ATM, Frame Relay, and X.25, because they put limits on how hosts and routers can talk across the network. Those limits could stop you from fully using everything the SVC-based Data Link subnetwork can do. This document describes extensions to the IP architecture that loosen these constraints, so you can fully use the services SVC-based Data Link subnetworks provide. πŸ’…

1. Background 🧚

Quick refresher on the IP Subnet, bestie. The topology is made of hosts and routers linked together by links, which are the Data Link subnetworks. An IP address for a host with an interface on a particular link is a tuple <prefix length, address prefix, host number>, where the host number is unique within the subnet address prefix. When a host wants to send an IP packet somewhere, it has to figure out whether the destination address belongs to an interface connected to one of the links the host is attached to. This is called the "local/remote" decision. The outcome depends on (a) the destination address and (b) the address and prefix length associated with the local interfaces. If the outcome is "local", the host resolves the IP address to a Link Layer address (for example, using ARP) and then sends the packet straight to that destination using Link layer services. If the outcome is "remote", the host hands the packet to one of its first-hop routers and relies on IP routing to do the rest. 🌈

To summarize, two of the important attributes of the IP subnet model are:

  • hosts with a common subnet address prefix are assumed to be attached to a common link (subnetwork), so they talk to each other directly with no routers involved - "local";
  • hosts with different subnet address prefixes are assumed to be attached to different links (subnetworks), so they can only talk through routers - "remote".

A classic example of applying the IP subnet architecture to an SVC-based Data Link subnetwork is "Classical IP and ARP over ATM" (RFC1577). RFC1577 supports ATM deployment that follows the traditional IP subnet model, and it introduces the notion of a Logical IP Subnetwork (LIS). The consequence is that a host is required to set up an ATM SVC to any host within its LIS, and for destinations outside its LIS the host has to forward packets through a router. It's important to stress that this "local/remote" decision is based solely on the information carried by the destination address and the address and prefix lengths associated with the local interfaces. πŸ’–

2. Motivations πŸ’œ

TCP/IP applications are wildly diverse, so their traffic looks wildly different too. Some apps last a very short time and generate only a small number of packets between two communicating hosts (think ping and DNS). Others have a short lifetime but generate a pretty big pile of packets (like FTP). There are apps with a long lifetime that generate relatively few packets (like Telnet). And then we anticipate apps that have a long lifetime and generate a huge volume of packets (video-conferencing, I'm obsessed). πŸŽ€

SVC-based Data Link subnetworks have unique capabilities that non-SVC ones (like Ethernet and Token Ring) don't have. Being able to dynamically establish and tear down SVCs between entities attached to an SVC-based Data Link subnetwork lets you dynamically dedicate and redistribute communication resources (like bandwidth) among those entities. You could accomplish all of that by relying solely on the mechanisms the Data Link layer provides. πŸ”₯

BUT these unique capabilities do not come "for free". The mechanisms that provide dedication and redistribution of resources have overhead, like the time needed to establish an SVC and the resources needed to maintain state for an SVC. There may also be a monetary cost to establishing and maintaining an SVC. So it's very important to be cognizant of that overhead and to carefully balance the benefits of the mechanisms against the overhead they introduce. πŸ™ˆ

One of the key issues for using SVC-based Data Link subnetworks in the TCP/IP environment is SVC management. That includes SVC establishment and tear-down, class of service specification, and SVC sharing. On one end of the spectrum, you could require SVC establishment between communicating entities on a common Data Link subnetwork for any application. On the other end, you could require communicating entities to always go through a router, regardless of the application. Given how diverse TCP/IP applications are, either extreme is likely to yield a suboptimal solution when it comes to efficiently exploiting the capabilities of the underlying Data Link layer. πŸ‘‘

The traditional IP subnet model is too restrictive for flexible and adaptive use of SVC-based Data Link subnetworks. Right now, how a subnetwork gets used is driven by information completely unrelated to what individual applications need. Let's revisit "Classical IP and ARP over ATM" (RFC1577) to see the problem. RFC1577 supports ATM deployment that follows the traditional IP subnet model and introduces the Logical IP Subnetwork (LIS). So a host has to set up an SVC to any host within its LIS, and it must forward packets to destinations outside its LIS through a router. This "local/remote" forwarding decision, and therefore the SVC management, is based solely on the information carried in the source and destination addresses and the subnet mask associated with the source address. It has no relation to the nature of the applications that generated these packets. 😭

3. QoS/Traffic Driven "Local/Remote" Decision ✨

Picture a host attached to an SVC-based Data Link subnetwork, and assume that the "local/remote" decision the host could make isn't constrained by the IP subnet model. When this host needs to send a packet to a destination, it might consider any of the following options:

  • Use a best-effort SVC to the first hop router.
  • Use an SVC to the first hop router dedicated to a particular type of service (ie: predictive real time).
  • Use a dedicated SVC to the first hop router.
  • Use a best-effort SVC to a router closer to the destination than the first hop router.
  • Use an SVC to a router closer to the destination than the first hop router, dedicated to a particular type of service.
  • Use a dedicated SVC to a router closer to the destination than the first hop router.
  • Use a best-effort SVC directly to the destination (if the destination is on the same Data Link subnetwork as the host).
  • Use an SVC directly to the destination dedicated to a particular type of service (if the destination is on the same Data Link subnetwork as the host).
  • Use a dedicated SVC directly to the destination (if the destination is on the same Data Link subnetwork as the host).

As you can see, the forwarding decision at the host is way more flexible than the "local/remote" decision of the IP subnet model. The host's forwarding decision can also take into account the QoS and/or traffic requirements of the applications, and/or the cost factors of establishing and maintaining a VC, which improves overall SVC management. So removing the constraints imposed by the IP subnet model is an important step toward better SVC management. πŸ‘‘

3.1 Extending the scope of possible "local" outcomes πŸ¦‹

A source may have an SVC (either dedicated or shared) to a destination if both the source and the destination are on a common Data Link subnetwork. Being able to create and use that SVC is completely decoupled from the source and destination IP addresses, and is instead coupled to the QoS and/or traffic characteristics of the application. In other words, the ability to establish a direct VC (either dedicated or shared) between a pair of hosts on a common Data Link subnetwork has nothing to do with the IP addresses of those hosts. In contrast with the IP subnet model (or the LIS model), the "local" outcome becomes divorced from the addressing information. πŸ’…

3.2 Allowing the "remote" outcome where applicable 🌸

A source may go through one or more routers to reach a destination if either (a) the destination is not on the same Data Link subnetwork as the source, or (b) the destination is on the same Data Link subnetwork as the source, but the QoS and/or traffic requirements of the application on the source don't justify a direct (either dedicated or shared) VC.

When the destination is not on the same Data Link subnetwork as the source, the source may select between (a) using its first-hop (default) router, or (b) establishing a "shortcut" to a router closer to the destination than the first-hop router. The source should be able to select between these two choices irrespective of the source and destination IP addresses.

When the destination is on the same Data Link subnetwork as the source, but the QoS and/or traffic requirements don't justify a direct VC, the source should be able to go through a router irrespective of the source and destination IP addresses.

In contrast with the IP subnet model (or the LIS model), the "remote" outcome, and its particular option (first-hop router versus a router closer to the destination than the first-hop router), becomes decoupled from the addressing information. 🧚

✨ That's the end of part 1, bestie! Part 2 is coming, so stay tuned πŸ’–

3.3 Sufficient conditions for direct connectivity

Okay bestie, here's the vibe check πŸ’… A host can only set up an SVC to a peer on a common switched Data Link subnetwork if it knows the peer's Link Layer address, or the Link Layer address of some intermediate point that's closer to the destination 🧚 ngl that's the whole ballgame. This doc just assumes there's some mechanism out there that can hand the host that info ✨ The examples it names are NHRP, ARP, or static configuration 🌸, but other options are not precluded, so the door stays open πŸšͺ

Here's the tea though: being able to get the peer's Link Layer address should not be viewed as proof that the two of them can actually set up an SVC πŸ™ˆ They might be on different Data Link subnetworks, or they might be on a common one that's partitioned. Not me assuming it'll just work πŸ’€

3.4 Some of the implications

So the "local/remote" decision depends on more than just the source and destination addresses, which is giving main character energy πŸŽ€ That means a pair of hosts can be using two different paths to reach each other at the same time πŸ¦‹ Traffic for apps with different QoS and/or traffic characteristics gets forwarded differently, and it's honestly iconic πŸ‘‘

3.5 Address assignment

Okay, so if the total number of hosts and routers on a common SVC-based Data Link subnetwork is sufficiently large, they can be split up into groups called Local Addressing Groups (LAGs) 🧁 Each LAG would have hosts and routers in it. The routers inside a LAG act as the first-hop routers for the hosts in that LAG 🫢 If the total isn't that big, then everybody can just form one single LAG 🌈 How you decide LAG sizes is outside the scope of this document, so that's a different slay πŸ’–

For scalable routing, each LAG gets its own IP address prefix, and the elements in that LAG get their addresses out of that prefix ✨ The routers in a LAG then advertise routes to the prefix tied to their LAG (using appropriate routing protocols) πŸ“£ Those routes get advertised as "directly reachable" with metric 0 πŸ’œ So the routers in a LAG end up acting as the last-hop routers for the hosts in that LAG. Full circle, no cap πŸ”₯


4. Conclusions

Okay, here's the big picture πŸ–ΌοΈ Different approaches to SVC-based Data Link subnetworks used by TCP/IP give wildly different results when it comes to how well TCP/IP applications can actually use what those subnetworks offer 😭 For example, with ATM, both LAN Emulation [LANE] and "classical" IP over ATM [RFC1577] keep host changes below the IP layer 🧚 That means they could be good first steps in an ATM deployment. BUT, lowkey, these approaches on their own are probably not enough for fully using ATM πŸ’€

It seems like any model that doesn't let SVC management be based on QoS and/or traffic requirements is going to hold back the full use of SVC-based Data Link subnetworks πŸ™…β€β™€οΈ Giving more direct connectivity to the apps that could benefit from what SVC-based subnetworks offer, while still relying on strict hop by hop paths for everything else, could help people explore what these subnetworks can do πŸ”βœ¨

Now, this document doesn't define any specific coupling between the various QoS, traffic characteristics and other parameters and SVC management πŸ€·β€β™€οΈ But it's really important to stress that work toward standardizing those QoS, traffic characteristics, and other parameters (which an application could use through an appropriate API to influence SVC management) is essential for flexible and adaptive use of SVC-based Data Link subnetworks πŸ’…πŸ’–

The proposed model uses the SVC-based infrastructure for the apps that could benefit from its capabilities, and it takes advantage of a router-based overlay for all the other apps πŸ¦‹ So you get a balanced mix of router-based and switch-based infrastructure, and the balance could be decided by what the applications need πŸ‘‘


5. Security Considerations

⚠️ Security issues are not discussed in this memo. Yep, that's the whole section, and it's giving very "not my problem" energy 😬 Please keep this in mind when you read the rest of the doc, bestie πŸ™ˆ


6. Acknowledgements

Huge thank yous to the people who reviewed and commented on this one 🫢 The authors would like to thank Joel Halpern (NewBridge), Allison Mankin (ISI), Tony Li (cisco Systems), Andrew Smith (BayNetworks), and Curtis Villamizar (ANS) 🌸 Iconic, all of them πŸ‘‘


References

[LANE] "LAN Emulation over ATM specification - version 1", ATM Forum, Feb.95.

[Postel 81] Postel, J., Sunshine, C., Cohen, D., "The ARPA Internet Protocol", Computer Networks, 5, pp. 261-271, 1983.

[RFC792] Postel, J., "Internet Control Message Protocol- DARPA Internet Program Protocol Specification", STD 5, RFC 792, ISI, September 1981.

[RFC1122] Braden, R., Editor, "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, USC/ISI, October 1989.

[RFC1577] Laubach, M., "Classical IP and ARP over ATM", January 1994.

[RFC1620] Braden, R., Postel, J., Rekhter, Y., "Internet Architecture Extensions for Shared Media", May 1994.

[RFC1755] Perez, M., Liaw, F., Grossman, D., Mankin, A., Hoffman, E., Malis, A., "ATM Signalling Support for IP over ATM", January 1995.


14. Authors' Addresses

Yakov Rekhter Cisco Systems 170 West Tasman Drive, San Jose, CA 95134-1706

Phone: (914) 528-0090 EMail: yakov@cisco.com πŸ’Œ

Dilip Kandlur T.J. Watson Research Center IBM Corporation P.O. Box 704 Yorktown Heights, NY 10598

Phone: (914) 784-7722 EMail: kandlur@watson.ibm.com πŸŽ€

And that's a wrap on RFC 1937, bestie!! πŸŒˆβœ¨πŸ’–

πŸ“¦ where this page comes from