RFC 875

Gateways, architectures, and heffalumps

๐Ÿ“… published September 1982, from ietf

RFC 875 ๐ŸŽ€ September 1982 ๐Ÿฆ‹ M82-51 ๐ŸŒธ

Gateways, Architectures, and Heffalumps ๐Ÿ‘‘

Author: M.A. Padlipsky, The MITRE Corporation, Bedford, Massachusetts ๐Ÿงš


Abstract ๐Ÿ’–

okay so the growth of autonomous intercomputer networks has made their owners really want to "gateway" from one network to another ๐ŸŒˆ but the implications and shortcomings of gateways that have to translate or map between different protocol suites are NOT widely understood ๐Ÿ’€ some protocol sets have such severe functionality mismatches that proper T/MG's can't even be generated for them ๐Ÿ˜ญ and trying to mesh heterogeneous suites causes a bunch of problems, like:

  • the introduction of "singularity points" on logical connections that would otherwise get to enjoy communications subnetwork alternate routing โœจ
  • loss of functionality ๐Ÿ“‰
  • difficulty of Flow Control resolution ๐Ÿ™ƒ
  • higher cost than non-translating/mapping Gateways ๐Ÿ’ธ
  • and having to re-create T/MG's whenever a given suite changes ๐Ÿซ 

we also touch on the preferability of a protocol-compatible internet, and the psychology of those soi-disant architects who posit T/MG's ๐Ÿ”ฎ (the vibes are immaculate, bestie)


Introduction โœจ

In our collective zeal to stay (or become) abreast of the State of the Art, we sometimes fall into one or the other (or both) of a couple of pitfalls ๐Ÿซถ only one of them is super well-known: "Buzzwords" ๐Ÿ™„ and even then, just knowing the name doesn't automatically fix anything. The other one deserves way more attention: inadequate familiarity with The Relevant Literature ๐Ÿ“š

The key is the notion of what's really relevant ๐Ÿ‘€ honestly, it's often the Oral Tradition that matters ๐Ÿ—ฃ๏ธ published papers try so hard to seem scholarly that they either offer the wrong levels of abstraction or, because of their authors' backgrounds, are so ill-written they fail to communicate at all ๐Ÿ’… and sometimes what's truly relevant is unfindable by a conventional literature searcher because it isn't "in" the field of search ๐Ÿ™ˆ

I wandered into a super instructive case of this recently ๐Ÿ”ฅ it took me over an hour to convince a neophyte to the mysteries of intercomputer networking (who is quite highly regarded in at least one other area of computer science, and is by no means a dummy) that a particular Local Area Network architecture proposal was a Very Bad Thing ๐Ÿ˜ญ the proposal casually appealed to the notion of "gatewaying" to three or four other networks it didn't have protocols in common with. "Gateways" is, of course, another one of those bloody buzzwords, and in some contexts it might have been enough to just label it that way ๐Ÿ™„ but this was a conversation with a bright professional who'd recently been reading up on networks and who really wanted to understand what was so terrible ๐Ÿฅน

so I started by appealing to the Oral Tradition ๐Ÿงšโ€โ™€๏ธ in the ARPA internetworking research community (where we probably got the term "Gateway" in the first place, and where we certainly got the proof of concept for internets) it had been explicitly decided that it would be too hard to deal with connecting autonomous networks whose protocol sets differed "above" the level of Host-to-Communications-Subnetwork-Processor protocol. the kind of Gateway we know how to build (and honestly, anything you might call a Gateway) attaches to two (or more) comm subnets as if it were a Host on each, by appropriately interpreting their respective H-CSNP protocols and doing the right things in hardware (see Figure 1). but for ARPA Internet Gateways, each net attached to is assumed to have the same Host-Host Protocol (TCP/IP, in fact, or anyway IP and either TCP or some other common-to-both-nets protocol above it), and the same process level protocols (e.g., Telnet, FTP, or whatever) ๐ŸŽ€ the reason for assuming protocol set homogeneity is that they "knew" the alternative was undesirable, because it would involve translation or mapping between different protocol sets in the Gateways, and such T/MG's were obviously to be avoided ๐Ÿšซ

Well, that didn't do the trick ๐Ÿ˜ฉ

"Why is a T/MG a Bad Thing?" he wanted to know.

"Because of the possibility of irreconcilable mismatches in functionality."

"For instance?"

"Addressing is the most commonly cited."

"Addressing?"


Specifics of the Incompatibilities ๐ŸŒธ

Okay, assuming you're as bored as I am with the dialogue bit, I'll step through some specifics of the sorts of incompatibility you can find between protocol sets in a less theatrical manner ๐Ÿ’… the premise of it all is that we don't want to change either pre-existing protocol set ๐Ÿ™…โ€โ™€๏ธ let's assume, for convenience, that we're trying to attach just two nets together with a T/MG, and further assume that one of the nets uses the original ARPANET "NCP" (which consists, strictly speaking, of the unnamed original ARPANET Host-Host Protocol and the unfortunately named "1822", or ARPANET Host-IMP Protocol ๐Ÿ˜ญ) and the other uses TCP/IP โœจ

Host Addressing ๐Ÿฆ‹

Host addressing is the most significant problem ๐Ÿšจ NCP-using hosts have "one-dimensional" addresses. That is, there's a field in the Host-IMP "leader" where the Host number goes. When you've assigned all the available values in that field, your net is full, until and unless you go back and change all the IMP's and NCP's to deal with a bigger field ๐Ÿ’€

Using IP, on the other hand, addresses of Hosts are "two-dimensional" ๐ŸŒˆ there's an IP header field in which to designate the foreign network, and another field in which to designate the foreign Host. (The foregoing is a deliberate oversimplification, by the way ๐Ÿ™ˆ) so if you wanted a Host on an NCP-based net to communicate with a Host on another, TCP-based net, you'd have a terrible time of it if you also didn't want to go mucking around inside all the different NCP implementations ๐Ÿ˜ฉ because you don't have a way of expressing the foreign address within your current complement of addressing mechanisms.

There are various tricks available, of course ๐Ÿงš you could find enough spare bits in the Host-IMP leader or Host-Host header, perhaps, and put the needed internet address there. Or you could change the Initial Connection Protocol, or even make the internet address be the first thing transmitted as "data" by the User side of each process-level protocol ๐ŸŽ€ the common failing of all such ploys, though, is that you're changing the pre-existing protocols. And if that sort of thing were viewed with equanimity by system proprietors, you might as well go the whole hog and change over to the new protocol set across the board ๐Ÿ“ granted, that's a big jump, but it must be realized that this is just the first of several problems ๐Ÿ˜ญ

(It is the case that you could get around the addressing problem by having the T/MG become more nearly a real Host and terminate the NCP-based side in an application program which would "ask" the user what foreign Host he wants to talk to on the TCP-based side, at least for Telnet connections. When there's no user around, though, as would be the case in most file transfers, you lose again, unless you fiddle your FTP. In general, this sort of "Janus Host" (after the Roman deity with two faces, who was according to some sources the god of gateways (!)) confers extremely limited functionality anyway; but in some practical cases it can be better than trying for full functionality and coming up empty. ๐ŸŒธ)

RFNM's ๐Ÿ“จ

Then there's the question of what to do about RFNM's ๐Ÿซ  NCP's follow the discipline of waiting until the foreign IMP indicates a Ready for Next Message state exists before sending more data on a given logical connection. But if you're talking to a T/MG, its IMP is the one you'll get the RFNM from (the real foreign Host might not even be attached to an IMP) ๐Ÿ˜ต now, I've actually seen a proposal that suggested solving this by altering the T/MG's IMP to withhold RFNM's, but that doesn't make me think it's a viable solution ๐Ÿ™…โ€โ™€๏ธ at the very least, the T/MG is going to have to go in for buffering in a big way (see Figure 2). In a possible worst case, the foreign net might not even let you know your last transmission got through without changing its protocols ๐Ÿ’€

Out-of-Band Signals ๐Ÿ”ฅ

Going beyond the NCP-TCP example, a generic topic fraught with the peril of functionality mismatch is that of the Out-of-Band Signal. (There are some who claim it's also an NCP-TCP problem.) The point is that although "any good Host-Host protocol" should have some means of communicating aside from normal messages "on" logical connections, the mechanizations and indeed the semantics of such Out-of-Band Signals often differ ๐ŸŒˆ the fear is that the differences may lead to incompatibilities ๐Ÿ˜ฌ

For example, in NCP the OOBS is an Interrupt command "on" the control link, whereas in TCP it's an Urgent bit in the header of a message "on" the socket ๐Ÿฆ‹ if you want Urgent to be usable in order to have a "virtual quit button," the semantics of the protocol must make it very clear that Urgent is not merely the sort of thing the NBS/ECMA Host-Host protocol calls "Expedited Data" ๐Ÿ‘‘ if, that is, the intent of the mechanism is to cause the associated process/job/task to take special action, rather than merely the associated protocol interpreter (which need not be part of the process), you'd better say so ๐Ÿซต and none of the ISO-derived protocols I've seen yet does ๐Ÿ’€

And there's not much a T/MG can do if it gets an NCP Interrupt on a control link, notices a Telnet Interrupt Process control code on the associated socket, and doesn't have anything other than Expediting Data to do with it on its other side ๐Ÿ˜ญ (Expedited Data, it may be noted, bears a striking resemblance to taking an SST across the Atlantic, only to find no one on duty in the Customs shed, and the door locked from the other side ๐Ÿ›ฌ๐Ÿ’€)

Triple X and Friends ๐ŸŒ

Functionality mismatch is not, of course, limited to Host-Host protocols ๐Ÿ™ƒ indeed, the following interesting situation was observed at University College London: in their "Terminal Gateway," which translates/maps ARPANET Telnet and "Triple X" (CCITT X.25, X.28, X.29), they were able to get data across, as might be expected, but only one option (echoing), which is rather worse than might be expected ๐Ÿ˜ญ (and the UCL people are quite competent, so the problem almost certainly doesn't have to do with inadequate ingenuity ๐Ÿซถ)

It could be argued that the real problem with Expedite Data and Triple X is that some protocol sets are a lot worse than others ๐Ÿ“ I wouldn't dispute that. But it's still the case, to re-use a Great Network One-liner, that:

okay so sometimes, when you try to turn an apple into an orange, you get back a lemon ๐Ÿ‹๐Ÿ’€

Nor is the chance of running into irresolvable functionality mismatches the only technical problem with Translating/Mapping Gateways โœจ. There's a subtle but honestly fascinating point that pops up if we ask what happens when traffic is heavy enough to need more than one T/MG between a given pair of protocol-incompatible nets (or even if we just want some reliability, no matter the traffic) ๐Ÿ˜ญ. If we think about it for a sec, it's a big problem. Say you could actually figure out how to translate/map between two sets of protocols. That would mean that for every logical connection you had open, you'd be holding a whole pile of state information about it for each net you were gatewaying ๐Ÿง . But "you" are now revealed as a single T/MG, and your clone next door doesn't have that state information. So any logical connection that started its life with you has to spend its life with you, in a state of perpetual monogamy, as it were ๐Ÿ’. Naturally, this epoxied pair-bonding could maybe be handled by yet another new protocol between T/MG's, but it's abundantly clear there's going to be no easy analogue to a no-fault divorce ๐Ÿ’”. To put it less metaphorically, doing translating/mapping at more

โ€” page 4 โ€”

than one T/MG for the same logical connection becomes extremely complex at best ๐Ÿ˜ตโ€๐Ÿ’ซ. Just like the broader issue of reconciling given protocol sets at all, doing it across multiple loci of control may or may not turn out to be feasible in practice, and it's certainly going to be a delicate and complex design task ๐Ÿงฉ.

One more NCP/TCP problem ๐Ÿ‘€: when you send mail on an NCP-based net, the mail (actually, File Transfer) protocol only uses the addressee's name, because the Host was already determined by the Host-Host Protocol. If you're trying to get mail from an NCP-based net to a TCP-based net, though, you're right back in the Host addressing bind we already talked about ๐Ÿ™ƒ. If you don't want to change NCP (which, after all, is being phased out), you have to do something at the process level. You can, but the "Simple Mail Transfer Protocol" needed to do it takes 62 pages to specify in ARPANET Request for Comments 788 ๐Ÿ“„๐Ÿ˜ฉ.

If things get this complicated going from NCP to TCP, where there's a close evolutionary link between the Host-Host protocols and the process-level protocols are nominally the same, what happens when you want to go from DECNET, or from SNA, or from the as-yet incomplete NBS or ISO protocol sets? ๐Ÿ˜ณ There may or may not be aspects that no amount of ingenuity can reconcile, but it's abundantly clear that Translating/Mapping Gateways are going to have to be way more powerful systems than IP Gateways (which are what you use if both nets use the same protocol sets above the Host to Comm Subnet Processor protocol) ๐Ÿ’ช. And you're going to need a different T/MG for each pair of protocol sets. And you may have to tinker with CSNP internals.... ๐Ÿ› ๏ธ It's giving the kids' game of Telephone (or Gossip) ๐Ÿคญ: how much do you lose each time you whisper to your neighbor, who in turn whispers to the next neighbor? And what, for that matter, if we transplant the game to the United Nations and have the whisperers be translators with speakers of different languages on each side? ๐ŸŒ๐Ÿ—ฃ๏ธ

Other problem areas could be adduced ๐ŸŒธ. For example, it's clear that interpreting two protocol sets rather than one would take more time, even if it could be done. Also, the RFNM's Problem generalizes into a concern over resolving Flow Control mismatches for any pair of protocol sets, and it could lead to needing more buffer memory on the T/MG than on any given Host, even for cases where it's doable in principle ๐Ÿง ๐Ÿ’พ. But only one other problem area seems particularly major, and that's the old Moving Target bugaboo ๐ŸŽฏ: whenever any protocol changes, so must all the T/MG's involving it. Since there have already been three versions of SNA, presumably a like number of versions of DECNET, and at least two additional levels that ISO should be acknowledging the existence of, the fear of having to redo T/MG's should serve as a considerable deterrent to doing them

โ€” page 5 โ€”

in the first place ๐Ÿ™…โ€โ™€๏ธ. (This apparent contravention of Padlipsky's Law, the one saying Implemented Protocols Have Barely Finite Inertia Of Rest, is explained by a brand-new Padlipsky's Law: To The Technologically Naive, Change Equals Progress; To Vendors, Change Equals Profit ๐Ÿ’…๐Ÿ’ธ.)

Anyway, it's just not clear that a given Translating/Mapping Gateway can even be built ๐Ÿคทโ€โ™€๏ธ. You have to look super closely at the protocol sets in question just to figure out even that. It's abundantly clear that if one can be built, it won't be easy to do (see Figure 3) ๐Ÿ˜ค. Yet "system architect" after "system architect", apparently in good faith, toss these things into their block diagrams ๐Ÿ“ฆ. Assuming the architectural issue isn't being resolved by a fondness for the Gothic over the more modern view that form should follow function, let's pause briefly to visualize an immense, turreted, crenellated, gargoyled ... microprocessor ๐Ÿฐ๐Ÿ‘พ, and then return to the question of why this sort of thing happens.

It's clear that buzzwording is a factor ๐Ÿ“ฃ. After all, "system architects" in our context are usually employees of contractors, and their real role in life isn't to build more stately mansions but to get contracts. So it's not surprising to find an appeal to the sort of salesmanship that relies more on fast patter than precision ๐ŸŽค. Another good analogy: I once went to one of the big chain electronics stores in response to an ad for a cassette recorder that "ran on batteries or house current" for $18, only to find that they wanted an additional $9 for the (outboard) AC adaptor ๐Ÿ˜’. Given the complexities of T/MG's, though, in our case it's more like an $18 recorder and a $36 adaptor ๐Ÿ’ธ๐Ÿซ .

But is buzzwording all there is? Clearly not, because, as mentioned earlier, there's also ignorance of the Oral Tradition in play ๐Ÿ“œ. Whether the ignorance is willful or not is probably better left unexamined. But if we're willing to entertain the notion that it's not all a bait-and-switch job akin to the separately-priced AC adaptor, we see that those who casually propose T/MG's haven't done enough homework on the real state of the art ๐Ÿ“šโœจ.

โ€” page 6 โ€”

What ever became of that early reference to The Relevant Literature, though? Surely you didn't think I'd never ask ๐Ÿง. The answers are both implied in the assertion that:

Gateways are Heffalumps ๐Ÿ˜๐Ÿ’œ

as you'll plainly see once you've been reminded of what Heffalumps are. Digging into The Relevant Literature, then, let's reproduce the opening of the Heffalumps story ๐Ÿ“–๐Ÿฏ:

One day, when Christopher Robin and Winnie-the-Pooh
and Piglet were all talking together, Christopher Robin
finished the mouthful he was eating and said carelessly:
"I saw a Heffalump today, Piglet."
    "What was it doing?"  asked Piglet.
    "Just lumping along," said Christopher Robin.
"I don't think it saw me."
    "I saw one once," said Piglet. "At least, I think
I did," he said.  "Only perhaps it wasn't."
    "So did I," said Pooh, wondering what a Heffalump
was like.
    "You don't often see them," said Christopher Robin
carelessly.
    "Not now," said Piglet.
    "Not at this time of year," said Pooh.
    Then they all talked about something else, until it
was time for Pooh and Piglet to go home together.

(To satisfy the lazy reader, who'd actually be better off searching for it in both, it's from Winnie-the Pooh, not The House at Pooh Corner ๐Ÿ™„๐Ÿ“•.)

Pooh, in case you still don't recall, decides to make a Heffalump Trap ๐Ÿชค. (Piglet is sorry he didn't think of it first ๐Ÿ˜ญ.) He baits it with a jar of honey, after making sure that it really was honey all the way to the bottom, naturally ๐Ÿฏ. In the middle of the night, he goes to the Trap to get what's left of the honey and gets his head stuck in the jar ๐Ÿซ™๐Ÿ˜ต. Along comes Piglet, who sees this strange creature with a jar-like head making frightful noises, and, having known no more than Pooh what Heffalumps really were, assumes that a Heffalump has indeed been Trapped and is duly terrified ๐Ÿฅน๐Ÿ’€.

โ€” page 7 โ€”

It would probably be too moralistic to wonder how much Christopher Robin actually knew about Heffalumps in the first place ๐Ÿค”. The "Decorator", based on the picture on page 60 of my edition, clearly thinks C.R. thought they were elephants, but I still wonder ๐Ÿ˜๐Ÿ‘€. At best, though, he knew no more about them than the contractor did about Gateways in the proposal that started this whole tirade off ๐Ÿ’….

NOTE: FIGURE 1. Defining Characteristic of All Flavors of Gateways, FIGURE 2. Gateway and Translating/Mapping Gateway, Approximately to Scale, and FIGURE 3. Respective Internals Schematics, may be obtained by writing to: Mike Padlipsky, MITRE Corporation, P.O. Box 208, Bedford, Massachusetts, 01730, or sending computer mail to Padlipsky@ISIA. ๐Ÿ“ฌ๐Ÿฆ‹

โ€” page 8 โ€”

๐Ÿ“ฆ where this page comes from