home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 800s / rfc875.txt < prev    next >
Text File  |  1992-09-22  |  23KB  |  565 lines

  1.      RFC 875                                            September 1982
  2.                                                                 M82-51
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                   Gateways, Architectures, and Heffalumps
  11.  
  12.  
  13.  
  14.  
  15.      
  16.      
  17.  
  18.      
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.                               M.A. PADLIPSKY
  33.                            THE MITRE CORPORATION
  34.                           Bedford, Massachusetts
  35.      
  36.  
  37.  
  38.  
  39.  
  40.                                  ABSTRACT
  41.      
  42.  
  43.      
  44.  
  45.           The growth of autonomous intercomputer networks has led to a
  46.      desire on the part of their respective proprietors to "gateway"
  47.      from one to the other.  Unfortunately, however, the implications
  48.      and shortcomings of gateways which must translate or map between
  49.      differing protocol suites are not widely understood.  Some
  50.      protocol sets have such severe functionality mismatches that
  51.      proper T/MG's cannot be generated for them; all attempts to mesh
  52.      heterogeneous suites are subject to numerous problems, including
  53.      the introduction of "singularity points" on logical connections
  54.      which would otherwise be able to enjoy the advantages of
  55.      communications subnetwork alternate routing, loss of
  56.      functionality, difficulty of Flow Control resolution, higher cost
  57.      than non-translating/mapping Gateways, and the necessity of
  58.      re-creating T/MG's when a given suite changes.  The preferability
  59.      of a protocol-compatible internet is also touched upon, as is the
  60.      psychology of those soi-disant architects who posit T/MG's.
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.                                      i
  94.           
  95.      
  96.      
  97.      
  98.                   Gateways, Architectures, and Heffalumps
  99.  
  100.                               M. A. Padlipsky
  101.      
  102.      
  103.      
  104.  
  105.           In our collective zeal to remain (or become) abreast of the
  106.      State of the Art, we sometimes fall into one or the other (or
  107.      both) of a couple of pitfalls.  Only one of these pitfalls is
  108.      particularly well-known:  "Buzzwords" -- and even here merely
  109.      knowing the name doesn't necessarily effect a spontaneous
  110.      solution.  The other deserves more attention:  inadequate
  111.      familiarity with The Relevant Literature.
  112.  
  113.           The key is the notion of what's really relevant.  Often,
  114.      it's the Oral Tradition that matters; published papers, in their
  115.      attempts to seem scholarly, offer the wrong levels of abstraction
  116.      or, because of the backgrounds of their authors, are so
  117.      ill-written as to fail to communicate well.  Sometimes, however,
  118.      that which is truly relevant turns out to be unfindable by a
  119.      conventional literature searcher because it isn't "in" the field
  120.      of search.
  121.  
  122.           I wandered into an instructive case in point recently, when
  123.      it took me over an hour to convince a neophyte to the mysteries
  124.      of intercomputer networking (who is quite highly regarded in at
  125.      least one other area of computer science, and is by no means a
  126.      dummy) that a particular Local Area Network architecture proposal
  127.      which casually appealed to the notion of "gatewaying" to three or
  128.      four other networks it didn't have protocols in common with was a
  129.      Very Bad Thing.  "Gateways" is, of course, another one of those
  130.      bloody buzzwords, and in some contexts it might have been enough
  131.      just to so label it.  But this was a conversation with a bright
  132.      professional who'd recently been reading up on networks and who
  133.      wanted really to understand what was so terrible.
  134.  
  135.           So I started by appealing to the Oral Tradition, pointing
  136.      out that in the ARPA internetworking research community (from
  137.      which we probably got the term "Gateway" in the first place --
  138.      and from which we certainly get the proof of concept for
  139.      internets) it had been explicitly decided that it would be too
  140.      hard to deal with connecting autonomous networks whose protocol
  141.      sets differed "above" the level of
  142.      Host-to-Communications-Subnetwork-Processor protocol.  That is,
  143.      the kind of Gateway we know how to build -- and, indeed, anything
  144.      one might call a Gateway -- attaches to two (or more) comm
  145.      subnets as if it were a Host on each, by appropriately
  146.      interpreting their respective H-CSNP protocols and doing the
  147.      right things in hardware (see Figure 1), but for ARPA Internet
  148.      Gateways each net attached to is assumed to have the same
  149.      Host-Host Protocol (TCP/IP, in fact
  150.  
  151.  
  152.                                      1
  153.      RFC 875                                            September 1982
  154.  
  155.  
  156.      or, anyway, IP and either TCP or some other common-to-both-nets
  157.      protocol above it), and the same process level protocols (e.g.,
  158.      Telnet, FTP, or whatever).  The reason for this assuming of
  159.      protocol set homogeneity is that they "knew" the alternative was
  160.      undesirable, because it would involve the translation or mapping
  161.      between different protocol sets in the Gateways and such T/MG's
  162.      were obviously to be avoided.
  163.  
  164.           Well, that didn't do the trick.  "Why is a T/MG a Bad
  165.      Thing?" he wanted to know.  "Because of the possibility of
  166.      irreconcilable mismatches in functionality."  "For instance?"
  167.      "Addressing is the most commonly cited."  "Addressing?"
  168.  
  169.           Assuming the reader is as bored as I am with the dialogue
  170.      bit, I'll try to step through some specifics of the sorts of
  171.      incompatibility one can find between protocol sets in a less
  172.      theatric manner.  Note that the premise of it all is that we
  173.      don't want to change either pre-existing protocol set.  Let's
  174.      assume for convenience that we are trying to attach just two nets
  175.      together with a T/MG, and further assume that one of the nets
  176.      uses the original ARPANET "NCP" -- which consists, strictly
  177.      speaking, of the unnamed original ARPANET Host-Host Protocol and
  178.      the unfortunately named "1822", or ARPANET Host-IMP Protocol --
  179.      and the other uses TCP/IP.
  180.  
  181.           Host addressing is the most significant problem.  NCP-using
  182.      hosts have "one-dimensional" addresses.  That is, there's a field
  183.      in the Host-IMP "leader" where the Host number goes.  When you've
  184.      assigned all the available values in that field, your net is full
  185.      until and unless you go back and change all the IMP's and NCP's
  186.      to deal with a bigger field.  Using IP, on the other hand,
  187.      addresses of Hosts are "two-dimensional".  That is, there's an IP
  188.      header field in which to designate the foreign network and
  189.      another field in which to designate the foreign Host.  (The
  190.      foregoing is a deliberate oversimplification, by the way.)  So if
  191.      you wanted a Host on an NCP-based net to communicate with a Host
  192.      on another, TCP-based net you'd have a terrible time of it if you
  193.      also didn't want to go mucking around inside of all the different
  194.      NCP implementations, because you don't have a way of expressing
  195.      the foreign address within your current complement of addressing
  196.      mechanisms.
  197.  
  198.           There are various tricks available, of course.  You could
  199.      find enough spare bits in the Host-IMP leader or Host-Host header
  200.      perhaps, and put the needed internet address there.  Or you could
  201.      change the Initial Connection Protocol, or even make the internet
  202.      address be the first thing transmitted as "data" by the User side
  203.      of each process-level protocol.  The common failing of all such
  204.      ploys is that you're changing the pre-existing protocols, though,
  205.      and if
  206.  
  207.  
  208.  
  209.  
  210.  
  211.                                      2
  212.      RFC 875                                            September 1982
  213.  
  214.  
  215.      that sort of thing were viewed with equanimity by system
  216.      proprietors you might as well go the whole hog and change over to
  217.      the new protocol set across the board.  Granted, that's a big
  218.      jump; but it must be realized that this is just the first of
  219.      several problems.
  220.  
  221.           (It is the case that you could get around the addressing
  222.      problem by having the T/MG become more nearly a real Host and
  223.      terminate the NCP-based side in an application program which
  224.      would "ask" the user what foreign Host he wants to talk to on the
  225.      TCP-based side -- at least for Telnet connections.  When there's
  226.      no user around, though, as would be the case in most file
  227.      transfers, you lose again, unless you fiddle your FTP.  In
  228.      general, this sort of "Janus Host" -- after the Roman deity with
  229.      two faces, who was according to some sources the god of gateways
  230.      (!) -- confers extremely limited functionality anyway; but in
  231.      some practical cases it can be better than trying for full
  232.      functionality and coming up empty.)
  233.  
  234.           Then there's the question of what to do about RFNM's.  That
  235.      is, NCP's follow the discipline of waiting until the foreign IMP
  236.      indicates a Ready for Next Message state exists before sending
  237.      more data on a given logical connection, but if you're talking to
  238.      a T/MG, its IMP is the one you'll get the RFNM from (the real
  239.      foreign Host might not even be attached to an IMP).  Now, I've
  240.      actually seen a proposal that suggested solving this problem by
  241.      altering the T/MG's IMP to withhold RFNM's, but that doesn't make
  242.      me think it's a viable solution.  At the very least, the T/MG is
  243.      going to have to go in for buffering in a big way (see Figure 2).
  244.      In a possible worst case, the foreign net might not even let you
  245.      know your last transmission got through without changing its
  246.      protocols.
  247.  
  248.           Going beyond the NCP-TCP example, a generic topic fraught
  249.      with the peril of functionality mismatch is that of the
  250.      Out-of-Band Signal.  (There are some who claim it's also an
  251.      NCP-TCP problem.) The point is that although "any good Host-Host
  252.      protocol" should have some means of communicating aside from
  253.      normal messages "on" logical connections, the mechanizations and
  254.      indeed the semantics of such Out-of-Band Signals often differ.
  255.      The fear is that the differences may lead to  incompatibilities.
  256.      For example, in NCP the OOBS is an Interrupt command "on" the
  257.      control link, whereas in TCP it's an Urgent bit in the header of
  258.      a message "on" the socket.  If you want Urgent to be usable in
  259.      order to have a "virtual quit button", the semantics of the
  260.      protocol must make it very clear that Urgent is not merely the
  261.      sort of thing the NBS/ECMA Host-Host protocol calls "Expedited
  262.      Data".  If, that is, the intent of the mechanism is to cause the
  263.      associated process/job/task to take special action rather than
  264.      merely the associated protocol interpreter (which need not be
  265.  
  266.  
  267.  
  268.  
  269.  
  270.                                      3
  271.      RFC 875                                            September 1982
  272.  
  273.  
  274.      part of the process), you'd better say so -- and none of the
  275.      ISO-derived protocols I've seen yet does so.  And there's not
  276.      much a T/MG  can do if it gets an NCP Interrupt on a control
  277.      link, notices a Telnet Interrupt Process control code on the
  278.      associated socket, and doesn't have anything other than
  279.      Expediting Data to do with it on its other side.  (Expedited
  280.      Data, it may be noted, bears a striking resemblance to taking an
  281.      SST across the Atlantic, only to find no one on duty in the
  282.      Customs shed -- and the door locked from the other side.)
  283.  
  284.           Functionality mismatch is not, of course, limited to
  285.      Host-Host protocols.  Indeed, the following interesting situation
  286.      was observed at University College London:  In their "Terminal
  287.      Gateway", which translates/maps ARPANET Telnet and "Triple X"
  288.      (CCITT X.25, X.28, X.29), they were able to get data across, as
  289.      might be expected, but only one option (echoing), which is rather
  290.      worse than might be expected.  (And the UCL people are quite
  291.      competent, so the problem almost certainly doesn't have to do
  292.      with inadequate ingenuity.)
  293.  
  294.           It could be argued that the real problem with Expedite Data
  295.      and Triple X is that some protocol sets are a lot worse than
  296.      others.  I wouldn't dispute that.  But it's still the case, to
  297.      re-use a Great Network One-liner, that:
  298.  
  299.                    sometimes, when you try to turn an apple into an
  300.                    orange, you get back a lemon.
  301.  
  302.           Nor is the likelihood of encountering irresolvable
  303.      functionality  mismatches the only technical shortcoming of
  304.      Translating/Mapping Gateways.  A somewhat subtle but rather
  305.      fascinating point arises if we ask what happens when traffic is
  306.      heavy enough to warrant more than one T/MG between a given pair
  307.      of protocol-incompatible nets (or even if we'd like to add some
  308.      reliability, regardless of traffic).  What happens, if we think
  309.      about it a little, is a big problem.  Suppose you actually could
  310.      figure out a way to translate/map between two given sets of
  311.      protocols.  That would mean that for each logical connection you
  312.      had open, you'd have a wealth of state information about it for
  313.      each net you were gatewaying.  But "you" now stand revealed as a
  314.      single T/MG -- and your clone next door doesn't have that state
  315.      information, so any logical connection that started its life with
  316.      you has to spend its life with you, in a state of perpetual
  317.      monogamy, as it were.  Naturally, this epoxied pair-bonding could
  318.      perhaps be dealt with by still another new protocol between
  319.      T/MG's, but it's abundantly clear that there will be no easy
  320.      analogue to no-fault divorce.  That is, to put it less
  321.      metophorically, it becomes at best extremely complex to do
  322.      translating/mapping at more
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                                      4
  330.      RFC 875                                            September 1982
  331.  
  332.  
  333.      than one T/MG for the same logical connection.  As with the
  334.      broader issue of reconciling given protocol sets at all, doing so
  335.      at multiple loci of control may or may not turn out to be
  336.      feasible in practice and certainly will be a delicate and complex
  337.      design task.
  338.  
  339.           One more NCP/TCP problem:  When sending mail on an NCP-based
  340.      net, the mail (actually, File Transfer) protocol currently only
  341.      uses the addressee's name, because the Host was determined by the
  342.      Host-Host Protocol.  If you're trying to get mail from an
  343.      NCP-based net to a TCP-based net, though, you're back in the Host
  344.      addressing bind already discussed.  If you don't want to change
  345.      NCP (which, after all, is being phased out), you have to do
  346.      something at the process level.  You can, but the "Simple Mail
  347.      Transfer Protocol" to do it takes 62 pages to specify in ARPANET
  348.      Request for Comments 788.
  349.  
  350.           If things get that complicated when going from NCP to TCP,
  351.      where there's a close evolutionary link between the Host-Host
  352.      protocols, and the process-level protocols are nominally the
  353.      same, what happens when you want to go from DECNET, or from SNA,
  354.      or from the as-yet incomplete NBS or ISO protocol sets?  There
  355.      may or may not turn out to be any aspects that no amount of
  356.      ingenuity can reconcile, but it's abundantly clear that
  357.      Translating/Mapping Gateways are going to have to be far more
  358.      powerful systems than IP Gateways (which are what you use if both
  359.      nets use the same protocol sets above the Host to Comm Subnet
  360.      Processor protocol).  And you're going to need a different T/MG
  361.      for each pair of protocol sets.  And you may have to tinker with
  362.      CSNP internals....  An analogy to the kids' game of Telephone (or
  363.      Gossip) comes to mind:  How much do you lose each time you
  364.      whisper to your neighbor who in turn whispers to the next
  365.      neighbor?  What, for that matter, if we transplant the game to
  366.      the United Nations and have the whisperers be translators who
  367.      have speakers of different languages on each side?
  368.  
  369.           Other problem areas could be adduced.  For example, it's
  370.      clear that interpreting two protocol sets rather than one would
  371.      take more time, even if it could be done.  Also, it should be
  372.      noted that the RFNM's Problem generalizes into a concern over
  373.      resolving Flow Control mismatches for any pair of protocol sets,
  374.      and could lead to the necessity of having more memory for buffers
  375.      on the T/MG than on any given Host even for those cases where
  376.      it's doable in principle. But only one other problem area seems
  377.      particularly major, and that is the old Moving Target bugaboo:
  378.      For when any protocol changes, so must all the T/MG's involving
  379.      it, and as there have already been three versions of SNA,
  380.      presumably a like number of versions of DECNET, and as there are
  381.      at least two additional levels which ISO should be acknowledging
  382.      the existence of, the fear of having to re-do T/MG's should serve
  383.      as a considerable deterrent to doing them
  384.  
  385.  
  386.  
  387.  
  388.                                      5
  389.      RFC 875                                            September 1982
  390.  
  391.  
  392.      in the first place.  (This apparent contravention of the
  393.      Padlipsky's Law to the effect that Implemented Protocols Have
  394.      Barely Finite Inertia Of Rest is explained by a brand-new
  395.      Padlipsky's Law:  To The Technologically Naive, Change Equals
  396.      Progress; To Vendors, Change Equals Profit.)
  397.  
  398.           At any rate, it's just not clear that a given Translating/
  399.      Mapping Gateway can even be built; you have to look very closely
  400.      at the protocol sets in question to determine even that.  It's
  401.      abundantly clear that if a given one can be built it won't be
  402.      easy to do (see Figure 3).  Yet "system architect" after "system
  403.      architect", apparently in good faith, toss such things into their
  404.      block diagrams.  Assuming that the architectural issue isn't
  405.      resolved by a fondness for the Gothic in preference to the more
  406.      modern view that form should follow function, let's pause briefly
  407.      to visualize an immense, turreted, crenellated, gargoyled  ...
  408.      microprocessor, and return to the question of why this sort of
  409.      thing happens.
  410.  
  411.           It's clear that buzzwording is a factor.  After all, "system
  412.      architects" in our context are usually employees of contractors
  413.      and their real role in life is not to build more stately mansions
  414.      but to get contracts, so it's not surprising to find appeal to
  415.      the sort of salesmanship that relies more heavily on fast patter
  416.      than precision. Another good analogy: I once went to one of the
  417.      big chain electronics stores in response to an ad for a cassette
  418.      recorder that "ran on batteries or house current" for $18, only
  419.      to find that they wanted an additional $9 for the (outboard) AC
  420.      adaptor.  Given the complexities of T/MG's, however, in our case
  421.      it's more like an $18 recorder and a $36 adaptor.
  422.  
  423.           But is buzzwording all there is?  Clearly not, for as
  424.      mentioned earlier there's also ignorance of the Oral Tradition in
  425.      play. Whether the ignorance is willful or not is probably better
  426.      left unexamined, but if we're willing to entertain the notion
  427.      that it's not all a bait-and-switch job akin to the
  428.      separately-priced AC adaptor, we see that those who casually
  429.      propose T/MG's haven't done enough homework as to the real state
  430.      of the art.
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.                                      6
  448.      RFC 875                                            September 1982
  449.  
  450.  
  451.           What ever became of that early reference to The Relevant
  452.      Literature, though?  Surely you didn't think I'd never ask.  The
  453.      answers are both implied in the assertion that:
  454.  
  455.                           Gateways are Heffalumps
  456.  
  457.      as you'll plainly see once you've been reminded of what
  458.      Heffalumps are.  Dipping into The Relevant Literature, then,
  459.      let's reproduce the opening of the Heffalumps story:
  460.  
  461.                   One day, when Christopher Robin and Winnie-the-Pooh
  462.              and Piglet were all talking together, Christopher Robin
  463.              finished the mouthful he was eating and said carelessly:
  464.              "I saw a Heffalump today, Piglet."
  465.                   "What was it doing?"  asked Piglet.
  466.                   "Just lumping along," said Christopher Robin.
  467.              "I don't think it saw me."
  468.                   "I saw one once," said Piglet. "At least, I think
  469.              I did," he said.  "Only perhaps it wasn't."
  470.                   "So did I," said Pooh, wondering what a Heffalump
  471.              was like.
  472.                   "You don't often see them," said Christopher Robin
  473.              carelessly.
  474.                   "Not now," said Piglet.
  475.                   "Not at this time of year," said Pooh.
  476.                   Then they all talked about something else, until it
  477.              was time for Pooh and Piglet to go home together.
  478.  
  479.           (To satisfy the lazy reader -- who'd actually be better off
  480.      searching for it in both -- it's from Winnie-the Pooh, not The House  at
  481.      Pooh Corner.)
  482.  
  483.           Pooh, in case you still don't recall, decides to make a Heffalump
  484.      Trap.  (Piglet is sorry he didn't think of it first.)  He baits it with
  485.      a jar of honey, after making sure that it really was honey all the way
  486.      to the bottom, naturally.  In the middle of the night, he goes to the
  487.      Trap to get what's left of the honey and gets his head stuck in the jar.
  488.      Along comes Piglet, who sees this strange creature with a jar-like head
  489.      making frightful noises, and, having known no more than Pooh what
  490.      Heffalumps really were, assumes that a Heffalump has indeed been Trapped
  491.      and is duly terrified.
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.                                      7
  507.      RFC 875                                            September 1982
  508.  
  509.  
  510.           It would probably be too moralistic to wonder how much Christopher
  511.      Robin actually knew about Heffalumps in the first place. The
  512.      "Decorator", based on the picture on page 60 of my edition, clearly
  513.      thinks C.R. thought they were elephants, but I still wonder. At best,
  514.      though, he knew no more about them than the contractor did about
  515.      Gateways in the proposal that started this whole tirade off.
  516.  
  517.           NOTE:  FIGURE 1.  Defining Characteristic of All Flavors of
  518.      Gateways, FIGURE 2.  Gateway and Translating/Mapping Gateway,
  519.      Approximately to Scale, and FIGURE 3.  Respective Internals Schematics,
  520.      may be obtained by writing to:  Mike Padlipsky, MITRE Corporation, P.O.
  521.      Box 208, Bedford, Massachusetts, 01730, or sending computer mail to
  522.      Padlipsky@ISIA.
  523.  
  524.           
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.                                      8