RFC 1672 INFORMATIONAL IPNG · ACCOUNTING · BILLING

Accounting Requirements for IPng

Embedding cost tracking in every packet to simplify billing and resource management.

On rfc-editor.org ↗
PUBLISHED
August 1994
AUTHORS
N. Brownlee
STREAM
Legacy
DOI
10.17487/RFC1672

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                        N. Brownlee
Request for Comments: 1672                    The University of Auckland
Category: Informational                                      August 1994


                    Accounting Requirements for IPng

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

Abstract

   This document was submitted to the IETF IPng area in response to RFC
   1550.  Publication of this document does not imply acceptance by the
   IPng area of any ideas expressed within.  Comments should be
   submitted to the big-internet@munnari.oz.au mailing list.

Summary

   This white paper discusses accounting requirements for IPng. It
   recommends that all IPng packets carry accounting tags, which would
   vary in size. In the simplest case a tag would simply be a voucher
   identifying the party responsible for the packet. At other times tags
   should also carry other higher-level accounting information.

Background

   The Internet Accounting Model - described in RFC 1272 - specifies how
   accounting information is structured, and how it is collected for use
   by accounting aplications.  The model is very general, with
   accounting variables being defined for various layers of a protocol
   stack.  The group's work has so far concentrated on the lower layers,
   but the model can be extended simply by defining the variables
   required, e.g., for session and application layers.

   Brian Carpenter [1] suggests that IPng packets should carry
   authenticated (source, destination, transaction) triplets, which
   could be used for policy-based routing and accounting. The following
   sections explain how the transaction field - hereafter called an
   'accounting tag' - could be used.

Lower-layer (Transport) Accounting

   At the lower (network) layers the tag would simply be a voucher. This
   means it is an arbitrary string which identifies the party
   responsible, i.e., willing to pay for, a packet. It would initially
   be set by the host which originates the packet, hence at that stage
   the tag would identify the user who sent it.

   A tag could be changed at various points along a packet's path. This
   could be done as part of the routing policy processing so as to
   reflect changes of the party responsible over each section of the
   path. For example:

        user - provider           tag identifies user
        provider A - provider B   tag identifies provider A

   The tag could be used by accounting meters to identify the party
   responsible for a traffic flow, without having to deduce this using
   tables of rules. This should considerably simplify accounting for
   transit traffic across intermediate networks.

Higher-layer (Session and Application) Accounting

   At higher layers there is a clear need to measure accounting
   variables and communicate them to various points along a packet's
   path, for example an application server may wish to inform a client
   about its usage of resources. A tag containing this information could
   be read by meters at any point along the packet's path for charging
   purposes, and could also be used by the client to inform the user of
   charges incurred.

   It would make the collection of accounting data much simpler if this
   information was carried in a standard tag within each packet, rather
   than having different protocols provide this service in differing
   ways.

   For 'old' applications which remain unaware of the tag field, a meter
   could be placed at a gateway for the application's host. This
   'gateway' meter could determine what the application is by watching
   its streams of packets, then set an appropriate value in thir tag
   fields.

Structure of the accounting tag

   The two uses of tags outlined above must be able to coexist. Since
   many - indeed most - of the packets will only carry a voucher, it
   seems simplest to keep this as part of the routing tuple (see below).

   For the application variables, a separate tag seems sensible. This
   would simply contain a list of the variables.  Having two tags in
   this way would keep separate the management of routers and meters.

   If the encryption/digital signature overhead of the second tag proves
   to be too high, it should be possible to combine this with the
   voucher.

   The fine detail of this, or at least the way variables are packed
   into the tags, could be standardised by the Accounting Working Group
   in due course. For the purpose of IPng all that is required is the
   ability to carry one or two variable-size objects in every packet.

References

   [1] Carpenter, B., "IPng White Paper on Transition and Other
       Considerations", RFC 1671, CERN, August 1994.

Security Considerations

       For IPng to provide reliable transport in a hostile environment,
       routing and accounting information, i.e., the (source, dest,
       network-tag) and (application-tag) tuples, must be tamper-proof.
       Routers and meters which need to use the tuples will need to hold
       appropriate keys for them. Network operators will have to plan
       for this, for example by determining which routers need which
       sets of keys. This will be neccessary in any case for reliable
       policy-based routing, so the extra work required to set up
       accounting meters should be acceptable.

Author's Address

       Nevil Brownlee
       Deputy Director
       Computer Centre, The University of Auckland
       Private Bag 92019, Auckland, New Zealand

       Phone: +64 9 373 7599
       Fax: +64 9 373 7425
       EMail: n.brownlee@auckland.ac.nz

AI ELI5

On this page
PROBLEMTracking who pays for what in a global network is complex without built-in support.
MECHANISMAdd an optional accounting tag to every IPng packet. The tag starts as a simple voucher identifying the responsible party, and can optionally carry higher-layer accounting data (costs, charges).
CLEARER BILLINGRouters and meters can identify the payer without complex rule tables, and applications can inform users of charges incurred.

§1Accounting Tags in Packets

RFC 1672 proposes that all IPng packets carry accounting tags—optional fields that identify who pays for each packet. Nevil Brownlee from the University of Auckland builds on a suggestion by Brian Carpenter to include authenticated (source, destination, transaction) triplets in IPng packets.

The RFC recommends two types of tags: a simple voucher for transport-layer accounting, and optionally a separate tag for application-layer variables. This dual approach keeps router and meter administration separate.

Packets get a label showing who sent it, where it goes, and which user account to charge for it.

§2How Tags Enable Billing

At the transport layer, the tag is simply a voucher—an arbitrary string identifying the party responsible for the packet. The originating host sets it, and it identifies the user who sent the data. Along the packet's path, the tag may be changed as policy-based routing reassigns responsibility. For example, from user to carrier to another carrier as the packet crosses network boundaries.

Accounting meters read the tags to identify traffic flows without needing complex tables of rules. This greatly simplifies accounting for transit traffic across intermediate networks. Applications can also use a separate application-level tag to inform users of costs.

Each packet says 'this user sent it' or 'this company is paying for it', so billing happens automatically as routers and meters count packets.

§3Tag Structure

The RFC proposes keeping the transport voucher as part of the routing tuple. A separate application-level tag could carry higher-layer variables (charges, resource usage) in a standardized list format. If encryption overhead becomes too high, the two tags could be combined.

The RFC does not specify the exact format or variable packing; it leaves those details to future work by the Accounting Working Group. For IPng, the key requirement is simply that the protocol can carry one or two variable-size objects in every packet.

Packets need space for a short billing label and optionally a longer cost record, but the exact format can be decided later.

§4Secure Accounting

For accounting to work in a hostile environment, the tags must be tamper-proof. Routers and meters need cryptographic keys to verify them. Network operators must plan key distribution—deciding which routers need which keys—much as they do for policy-based routing. This overhead is acceptable because it is necessary anyway for reliable policy-based routing.

The RFC notes that tags carrying authentication information must remain unforgeable so that charges reflect actual usage, not false claims.

Billing labels need to be signed so nobody can fake charges. Routers need passwords to check the signatures.

§5References