User Control Modes and IP AllocationSkip other details (including permanent urls, DOI, citation information)
This work is protected by copyright and may be linked to without seeking permission. Permission must be received for subsequent distribution in print or electronically. Please contact email@example.com for more information. :
For more information, read Michigan Publishing's access and usage policy.
Presented at MIT Workshop on Internet Economics March 1995
Usage charging has been promoted recently as a means for recovering both production costs as well as social congestion costs in the Internet. Users that generate IP packets via their application will be charged a per-packet fee that varies dynamically with IP load. Given the combined dynamics of the application and the packet charges, the user will most likely be left with a high degree of uncertainty as to how large his accumulated IP charges eventually will be. On-line users can dynamically control upper bounds on IP expenditure rates via expenditure controllers installed at user Internet terminals. The controller will monitor network prices and attempt to minimize expenditure overruns for the user. With this tool a user can respond more efficiently to the dynamics of congestion pricing, which in effect should improve the economic value produced in the network.
The Internet is a global interconnection network for computers running the TCP/IP protocol suite. Allocation of network resources is controlled primarily by FIFO rationing and adaptive routing at the IP network layer, and window based network congestion control at the TCP transport layer [6, 15]. This collection of control mechanisms has been successful at providing high and stable throughput during congested periods and, with some modifications, scaled well to both increasing link capacities and a richer interconnection structure. Despite continuous efforts to minimize such effects as biases in both average throughput and drop rates to individual TCP conversations [11, 22], the allocation system remains unable to individualize allocation levels to the applications. Hierarchical link-sharing has been proposed to guarantee minimum allocations to classes of users, protocols or organizations, while at the same time allowing for alternate use of unused allocations . Replacement of IP's datagram service with resource reservation service was proposed in . Ultimately, however, the objective of a production Internet is to provide maximum value to its users. Neither of these practices offers any tangible user involvement in the real-time allocation process.
1.1 Users' Involvement
Users of the Internet make choices based on their individual value of information and the cost of waiting for responses to the various information requests. Their selections of Internet server to use, time to submit request, the size of the request, and potential abortion of submitted requests, have an indirect influence on their individual allocation levels as well as externality effects on concurrent users sharing the same resources. As such, the system is slowly self-regulating at the user level, complemented with faster regulation at lower layers, such as roundtrip-time window adjustments at the transport layer.
With recent proposals to charge users for the network resources they consume, an alternate opportunity emerges for control of IP allocation that can individualize allocations at the user level. Briefly stated, the proposals promote a slowly-changing fee per IP packet for production cost recovery and a rapidly-changing congestion fee per IP packet for dynamic balancing of usage value and waiting cost. High uncertainty as to the magnitude and variation of the IP usage costs motivate a need for users to control expenditures.
The design of an Expenditure Controller Interface (ECI) will be proposed, via which the user can specify a real-time upper bound on his expenditures. His decisions will be based on quality perceived and expenditure feedback. Since the bound regulates the flow of IP packets from the user's active application, the ECI and the user form a response to the pricing process and contribute to load regulation on the current IP path.
1.2 Computational Markets
In general, the coupling of congestion fees and users with appropriately designed ECIs defines a real-time market for resources whose potential use for computer networks was noted in [3, 9]. Current work has described the potentially very efficient Smart Market trading mechanism where users submit sealed bids per packet and the service center decides job schedule and optimal price. This has been examined for energy networks in  and IP networks in . Related mechanisms for access to distributed and parallel CPU resources were demonstrated with favorable experimental results in . Economic models have been developed under the assumption that the price coordinator has estimates on users' valuation on waiting time . Dynamic pricing was shown, via simulation, to improve on net consumer surplus produced in an Internet  and on cell drop rates in an ATM network . Typical for these papers is an emphasis on the market mechanism rather than user involvement, and the assumption of "smart agents" at the user site, dealing on behalf of the user .
1.3 Human Process Control
Direct user involvement for real-time price-quality control in digital telephony was proposed in . In an environment where price and quality change frequently, and telephones have speech compression equipment that removes quiet periods, the user would regulate the price-quality relationship by talking more or less. The costs could be controlled by shifting speech activity to periods where talking is cheaper. His real-time decisions would be motivated by real-time feedback; costs of talking would be displayed and speech quality would be detected in the form of the received earpiece speech quality.
Hume and Lewis studied the use of human control of multiple file transfer scheduling over a congestible and dynamically priced network . In their evaluation, process control problems appear to be advantageously automated when the task involves highly procedural observation, storage and computation with quickly changing numerical input data, whereas the selective and inductive behavior so characteristic of humans appears more suited for high entropy tasks that are hard to characterize. Their work demonstrates the use of ecological interface design theory to significantly improve the operator's ability to schedule file transfers within the deadline and monetary budget.
1.4 Quality Control
Drawing from this, it appears that control of expenditure in real-time falls within the domain of control problems better suited for automation. Expenditure is the price times usage integral over time, where price changes very rapidly and the usage is generally unobservable by the user. The ECI will automatically ensure that expected expenditure rate does not go beyond a user-specified upper bound. Our design leaves the setting of the upper bound for the user. Optimal setting of this bound depends on the individual quality preferences of the user and trends in the price-quality relationship. Users perceive quality differently depending on the type of application they are running.
Recent trends have favored an approach where the application specifies its service requirement to the network using the service descriptors available from the network interface. The service requirement asked for by a request-response type application (e.g. telnet, ftp and www navigators) is based on studies of user preferences for response times to various types of information requests. For continuous media, the service requirement is based on user's tolerance to noise in the received information (see  for details). Pre-programming service requirements may be a technically simple solution to provide the average user with the average preferred service quality, but allows for suboptimal over- or underprovisioning of resources to nonconforming users.
The ECI proposed in this paper requires no user quality specifications to performs its role. All that is needed is the upper limit on expenditures which in turn bounds IP resource usage. The sufficiency of this approach lies in that response time can be reduced by increasing the processing resource allocation to a user , and noise can be reduced by allocating either more buffers or processing resources to the user . Since the user at any time can adapt his expenditure rate control policy to his current private quality preferences and budgets, the ECI is an application independent quality control methodology.
1.5 Accounting and Billing
Computational markets rely on usage prices to be computed by the service center, i.e. an IP packet switch, and for endpoints, i.e. users, to respond. Sufficient user incentives to regulate in real-time can be preserved through (a) reliable billing, which requires an accounting mechanism such as in [4, 23], and (b) virtually instantaneous expenditure feedback, which requires the ECI to know the current packet price and billing rule.
A standard IP billing format is not defined yet. Ad hoc solutions for cost recovery are used in Chile  and New Zealand . Based on the accounting architecture, the local Internet provider can bill for all incoming and/or outgoing packets, but not identify the originator of an end-to-end call, which eliminates billing of the calling party. Higher-level distribution mechanisms for IP usage costs are likely to emerge. A possible scenario is that the user is billed for his outgoing traffic (in line with ), and that the price he pays per packet is billed only once.
For congestion control purposes, individual IP switches may exercise intra-AD backpressure price control. In this case the user will pay the usage price of the closest IP switch, and the price may reflect both congestion cost as well as forwarding costs to neighboring IP switches. The purpose of the ECI is to facilitate efficient load control for high frequency pricing mechanisms, so it is largely irrelevant to this paper where the price is computed as long as the ECI knows the rule with which it will be billed.
2 User Control Modes
From the typical Internet user's standpoint the packet is an hardly a comprehendible input good. Rather, the user will often associate each information request as a single input unit and qualify its value with such quality parameters as response time and noise in the received response .
2.1 Measured Rate Services
Indications of a "discomfort" with measured rate services has been voiced on various technical Internet mailing lists and in other media (see e.g. [1, 33]). Users seem inclined to prefer a pricing structure where the organization pays a capacity-dependent monthly fee for access without any fee for usage (see  for a review of the current practice). This is somewhat reminiscent of the debate over mandatory local measured telephone service that took place in the early to mid 1980's.
Wenders [32, Chapter 3] argues that pricing in telecommunications must be separated into usage and access pricing components.  More germane to this discussion, Wenders [32, Chapter 5] argues for mandatory local measured service. Under this pricing regime, access prices are lowered, allowing for an increased number of users on the network, while the usage charges suppress usage. This has the effect of reducing the usage costs (because of suppressed traffic) even when the costs of the measuring equipment is included. While Wenders considers peak-load pricing, not dynamic pricing as we do, and while a telephone call is a more tangible commodity to the end user than a packet as part of an application is, his analysis is nonetheless instructive.
When a user specifies an upper expenditure limit via the ECI he constrains the flow of IP packets from his application, without actually knowing by how much. He can only observe quality effects from the action. In a useful analogy, the accelerator pedal serves as the user tool for speed control in a car. Unaware of the actual gas consumption rate, the user has to learn the short run relationship between action and quality and, in the longer run, the effect between driving habit and monetary outlays. We expect this to hold for users of the ECI. Over repeated trials, users will learn how to operate effectively in their self-interest.
Simplicity of the ECI is deliberate for the initial design, although "smart agents" can reduce the mental burden on the user, and have been called for in general computational economies [13, 26, 31]. We choose to fit the control problem within what we think are current ranges of human capability and trust that automation of subtasks will be pursued in future works.
2.3 The ECI Model
A user will select to submit an information request if his expected net benefit is positive. Let v be the information value of the information item when successfully received by the user, C(T) be the congestion cost from having to wait T time units for the response, and P be the IP expenditure. Since neither T nor P is known perfectly, ahead of the submission, the user must deal with expectations, i.e. submit if v - C() - ≥ 0, and form those expectations through learning.
A congestion priced resource is assumed to announce a new packet price at fixed intervals in time. In response to this price process, and while awaiting a response to a submitted request, the user controls three variables: A budget unit m> 0, a current budget multiplier u ∊ (0, 1,..., K) and a budget period length k> 0. The ECI ensures that IP packets are not submitted when > , where is predicted period expenditure and = mu is period expenditure bound set by the user. While all three elements can be specified by the user at any time, it is expected that the user rarely will specify k, occasionally will specify m, and will use u as the real-time control tool. Perhaps the simplest control interface is binary, with K = 1. The user either allows for expenditure (u = 1 and = um = m) or not (u = 0).
2.3.1 Estimation Noise
To estimate the ECI must know the current packet price and have a rule for determining how many more packets will be charged for within the current period. With an ECI-to-switch network latency of ∆, the ECI knows the price ∆ time units in the past and will be charged the price δ time units into the future. Also, the billing policy affects , if e.g. the user is to be billed for both incoming and outgoing traffic.
The ECI can provide better safeguards against average expenditure rate overruns by allowing a (negative or positive) surplus a from the previous period to carry over to the next, i.e., the expenditure limit for the successive period becomes + a rather than .
The control interface (k, m, u) rules out the need for the user to know about "packets." The ECI estimates and communicates this to the user across the control interface, whereas q is the subjective quality measured by the user.
In cases where it is possible, the user can benefit from knowing the portion of the request that has been acknowledged, δ ≥ [0,1]. For "long" response times, i.e. file transfers, this would be the number of units successfully transferred divided by the file size. This information is already supplied by newer bulk transfer applications.
2.4 User Control in The Smart Market
The discussion so far assumed that the ECI is periodically informed of the new packet price (delayed by ∆). In the Smart Market the price is decided at each service time and cannot be publicized ahead of service, so the ECI needs tailoring.
Each IP packet submitted for service has a bid in its header. Let the set A(t) contain the packets awaiting service at time t at the IP switch. The next served packet is the one with the highest bid, for which the originating user will be charged a price equal to the lowest bid in A(t), which is at most equal to the bid of the packet served. The Smart Market thus guarantees an upper bound on the packet charge. 
A user can control the upper expenditure bound to for N IP packets by setting = /N. Since N is unobservable, unless the application designer provides an estimate, the tailored ECI for a Smart Market must provide for (a) a real-time controllable through which the user can manipulate quality and (b) expenditure feedback. While this is in line with the original Smart Market proposal, its proponents suggest reverse packets to carry the realized prices . However, not all flows see reverse traffic, so the expenditure feedback must constitute an upper bound. The ECI knows how many packets were submitted at which bids and, due to the price guarantee, knows this upper bound. Long run differences between bidding levels and packet charges, as materialized in periodic billing information, are likely to influence the behavior of the user, e.g. by him bidding higher for better quality, or by using more resources.
2.5 Other Technologies
User involvement as discussed here can be used for real-time purchase of goods in connection oriented networks. When rate is dynamically priced , the user can regulate his rate requirement in real-time. More complex, when both rate and buffers are priced  the user may control both or some composite thereof. Again, both rate and buffer allocation form incomprehensible input goods, so the user has to learn the price-quality relationship and therefore relies on explicit expenditure feedback from the ECI and implicit quality feedback through the application.
An implementation of the ECI requires modifications at both the application and transport level. The following figure illustrates a scenario with TCP as the transport layer.
The user perceives quality q from the application and possibly δ, the completion ratio of a bulk transfer. He applies control c towards the ECI, being (k, m, u) for the general expenditure rate controller or for the Smart Market expenditure per-request controller. His decisions are based on expenditure feedback which in the general case is xp or an upper bound x for the Smart Market, where x is actual usage as reported by TCP. The ECI may supply via a textual or a graphical information display and receive c via keyboard entries or window selections.
While TCP currently defers IP submissions when the congestion window or the receiver window is empty, it must now perform an additional test on an ECI-controlled variable . ECI updates every k time units as = /pwhere = um and p is the prevailing network price. If surplus carry-over is allowed, the ECI sets = ( + a)/p where a is the surplus of the previous period. 
In the additional test, TCP will submit an IP packet if > 0 and, if so, decrement by one. In the Smart Market, the user does not need to constrain usage rate so = ∞, but must be known by TCP for insertion into the IP header. A TCP that serves multiple users must be able to identify which to test and update, or for the Smart Market, which to insert.
An implementation needs to address, among other things, how to facilitate interprocess communication between the ECI and the communication software, and allow a study of perturbations to the currently fine-tuned transport protocol (especially TCP) operation.
2.6.1 Communicating User Controls to the Kernel Software
TCP, UDP and IP is a part of the kernel software and any user input has to be communicated via system calls. IP is normally accessed by the application via sockets of the AF_INET type. User-to-kernel communication can be established by extending the socket structure with needed state variables and accessing these via the
system calls. In general there are multiple users, each operating one ECI. Each user starts multiple applications that, in turn, may establish multiple sockets to communicate remotely. The user's ECI must know the socket handler for each of the user's sockets to ensure that the user control is applied to all IP traffic that generate monetary charges towards that user.
When a user applies control towards the ECI, the corresponding change in the network service requests has to be propagated to each of the supporting sockets, i.e., the ECI will have to perform
setsockopt(s, IP IP_PROTO, type, & val, sizeof(val))
on each socket s owned by the user, for each socket variable type to be assigned the value val. A second solution is to implement multiple ECI interfaces, one for each application. When running FTP, the user can specify control input via a new FTP prompt command. FTP will then access the necessary socket variables for both the CMD and the DATA channels via the above mentioned socket control system calls. Telnet and other user applications will have similar command interfaces.
Per-application ECI controls may be preferable since they allow the user to individualize controls for each application where quality-expenditure relationships have different utility to the user. On the other hand, the user has no control of the performance from IP to invisible applications at the operating system level, such as networked file systems. In this case one ECI per user, controlling all supporting sockets, may be the better choice. When the number of applications grows beyond three or four, the user may also prefer to operate one rather than multiple ECI's.
2.6.2 Socket Control
The user limits the usage in the current period to and the ECI must communicate this to the supporting sockets. For experimental purposes, one defines a new socket variables quota and associated variable type
call. To provide expenditure feedback, the ECI has to apply an
on each of its supporting sockets, and multiply the usage with the current price level (usage is the difference in quota reported between successive calls). Internally, TCP will submit datagrams as long as quota is positive for that datagram's socket.
In the Smart Market case, the user controls , the bid level that is to be associated with all IP packets that originate from the user's applications. One implementation is to have the IP header carry the bid, as proposed by MacKie-Mason and Varian. More detailed, the IP header has an 8-bit
(Type Of Service) field. The ECI will call
setsockopt(s, IP_PROTO, IP_TOS, & bid, ...)
on each supporting socket
. The socket software should store bid in the existing tos field of the socket structure. Upon each IP datagram transmission, IP should insert the socket's tos field in the IP header.  To provide expenditure feedback, the socket maintains the quota variable for x. This variable is decremented by one each time a unit is registered (submitted and/or received, depending on the charging policy of the provider). To provider user feedback the ECI performs a
call to read off remaining quota. From this the differential between successive calls is the usage. To get reliable differentials, the ECI applies at regular intervals a
to set quota to a value large enough to not reach zero within the interval. Accumulated expenditures then have to be increased by the interval usage times the current bid level. Again, this is an upper bound on expenditures that may have to be adjusted periodically with periodic charging information from the service provider (outside the scope of this paper).
2.6.3 Effects on Existing Software
The existing TCP/IP communications subsystem is a fine-tuned system on which the proposed changes will have an effect. Some cases have been found in simulations and experiments.
One effect from a real-time controllable is that the bid-queuing subnetwork may deliver packets out of the original order. While TCP ensures proper ordering, other transport protocols do not. On the other hand, the latter kind is typically used by applications that do not require full order preserving.
Secondly, TCP uses incoming Acknowledgment packets to clock its output packet rate. If the user throttles TCP from sending packets there eventually will be no incoming Acknowledgment packets and TCP loses its clock. The slow-start clock probing technique should therefore be run in the event where all Data packets are acknowledged .
3 Related Work and Conclusions
Incentive-based allocation has received considerable attention from various groups, and some of the very recent work promotes ideas of user involvement similar to those laid out in this document.
First, the idea of incentive control extends to non-price based schemes where the end users face some form of social pressure that, in turn, motivates self-regulation. This may be particularly effective in user groups where users know each other and can observe each other's contribution to the system load. The expected expenditure in selecting actions will depend here on who the user thinks will receive quality degradation and the type of social contract that exists between these two individuals . Prototype work on social regulation was undertaken in a RACE initiative, however without reports on welfare effects .
When the individual load contribution is invisible, as for IP networks, the regulating effect from any social contract vanishes and necessitates price based regulation. Among the recent proposals, two specifically promote user involvement in the allocation process. MacKie-Mason et al envision users who periodically decide usage based on the reported price per unit (i.e., per IP packet) . Via simulations, the authors estimate positive benefits from real-time user involvements. Clark provides a simple mechanism that IP networks can use to support service discrimination . In his model, users will contract with Internet service providers (ISPs) on the basis of a "usage profile." Clark assumes that the ISPs will be able to communicate the implications of transmission-rate-based usage profile to end users in such a way that users can define their needs in terms of such a profile, even though it is not clear how this will be done. When usage exceeds the profile, the network will drop these users first if congestion exists in the network.
Our work resides at a layer above either of these mechanisms. These proposals assume that users can specify certain network-level parameters, while we think that users want to regulate parameters they can relate to, and that expenditure is a natural parameter for users that are subject to dynamic-price based allocation. An Expenditure Controller Interface (ECI) is therefore proposed to allow users to bound expenditure. The ECI will subsequently transform user-level controls into network-level service requests. Users will, at their own pace, regulate their expenditure rates to maximize their net benefits. At the same time, the ECI operates at a much faster rate as an agent for the user in responding to signals from a high-frequency network-service price process.
Expenditure control input from the user is an indicator that the ECI has to translate into network-level period requests, such as usage limits and packet rates (as in the above-mentioned proposals), packet bid levels (as in the Smart Market case), or more sophisticated service request format (as in connection-oriented ATM networks). The ECI model provides distributed resource control, much in line with traditional Internet design philosophies (see ) and is, we think, relatively simple to learn and use. Finally, experiments on a closed IP network are currently being performed to determine welfare effects from allowing users to influence allocation via an ECI.
The authors wish to acknowledge valuable discussions with Sam Hume and Dr. Michael Lewis. Ketil Danielsen was supported through grant #100249/410 from the Royal Norwegian Council for Industrial Research. Hal Varian's information server has been of great value .NetBSD is generously made available at http://www.netbsd.org.
Ketil Danielsen can be contacted at firstname.lastname@example.org or by postal mail at Molde College, 6400 Molde, Norway. Martin Weiss is at email@example.com or School of Library and Information Science, Telecommunications Program, University of Pittsburgh, 135 North Bellefield Ave., Pittsburgh PA 15260.
 Ricardo Baeza-Yates, Jose M. Piquer, and Patricio V. Poblete. The Chilean Internet connection or I never promised you a rose garden. In Proc. INET, 1993.
 Krishna Bala, Israel Cidon, and Khosrow Sohraby. Congestion control for high speed packet switched networks. In IEEE Infocom, pages 520-526, 1990.
 R. T. Braden, D. Clark, and S. Shenker. Integrated services in the Internet architecture: An overview, July 1994. RFC1633: Internet Request For Comment. Available from .
 Nevil Brownlee. NeTraMet and NeMaC. Network Traffic Meter and NeTraMet Manager/Collector. Technical report, Computer Centre, The University of Auckland, New Zealand, October 1993.
 Michael Carter and Graeme Guthrie. Pricing Internet: The New Zealand experience. Technical report, University of Canterbury, New Zealand, 1994. Draft retrieved from .
 David D. Clark. Design philosophy of the DARPA network protocols. ACM Computer Communications Review, 1989.
 Ketil Danielsen. Price-quality telephony, April 1993. Working Paper for seminar on Communication Terminals and Services, Information Science Dept., University of Pittsburgh.
 David D. Clark. Adding service discrimination to the Internet. In Proceedings of the 1995 Telecommunications Policy Research Conference. Solomons Island, VA. 1995.
 Deborah Estrin and Lixia Zhang. Design considerations for usage accounting and feedback in internetworks. ACM Computer Communications Review, 20(5):56-66, October 1990. [doi: 10.1145/381906.381935]
 Sally Floyd and Van Jacobson. Link-sharing and resource management models for packet networks. IEEE/ACM Transactions on Networking, August 1995.
 Sally Floyd and Van Jacobson. On traffic phase effects in packet-switched gateways. Internetworking: Research and Experiences, vol. 3, no. 3, pages 115-156. September 1992.
 Internet Requests for Comment. Accessible with ftp at site ftp.isi.edu or www page [formerly http://www.ietf.cnri.reston.va.us/home.html].
 Alok Gupta, Dale O. Stahl, and Andrew B. Whinston. Managing the Internet as an economic system. Technical report, University of Texas at Austin, TX, July 1994. Draft.
 Sam Hume and Michael Lewis. Operator performance at network scheduling with dynamic pricing and limited capacities, March 1995. Working Paper at the Information Science Dept., University of Pittsburgh. Submitted to the 1995 IEEE Systems, Man and Cybernetics Conference.
 Van Jacobson. Congestion avoidance and control. Proceedings of ACM SIGCOMM '88, Stanford, CA. Pages 314-329. August 1988.
 Raj Jain. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation and Modeling. John Wiley & Sons, Inc., 1991.
 Jeffrey MacKie-Mason, Liam Murphy and John Murphy. The role of responsive pricing in the Internet. Technical Report, Department of Economics, University of Michigan. July 3, 1995.
 Steven H. Low and Pravin P. Varaiya. A simple theory of traffic and resource allocation in ATM. In IEEE Globecom, pages 1633-1637, 1991.
 Steven H. Low and Pravin P. Varaiya. A new approach to service provisioning in ATM networks. IEEE/ACM Transactions on Networking, 1(5):547-553, October 1993. [doi: 10.1109/90.251913]
 Jeffrey K. MacKie-Mason and Hal R. Varian. Pricing the Internet. In Public Access to the Internet, B. Kahin and J. Keller, editors, Prentice-Hall, 1995.
 Jeffrey K. MacKie-Mason and Hal R. Varian. Some FAQs about usage-based pricing. Computer Networks and ISDN Systems, 1995.
 Alison Mankin. Random drop congestion control. In ACM SIGCOMM 1990, 1990.
 C. Mills, D. Hirsch, and G. Ruth. Internet accounting: Background, November 1991. RFC1272: Internet Request For Comment. Available from .
 John Murphy and Liam Murphy. Bandwidth allocation by pricing in ATM networks. In Proceedings of IFIP Broadband Communications '94, Paris, France, March 1994.
 Stephen Rassenti, Vernon Smith, and Kevin McCabe. Designing a real time computer assisted auction for natural gas networks. In W. W. Cooper and A. B. Whinston, editors, New Directions in Computational Economics, pages 41 54. Kluwer Academic Publisher, Holland, 1994.
 Dale O. Stahl and Andrew B. Whinston. An economic approach to networked computing with priority classes. Technical report, University of Texas at Austin, TX, November 1993.
 Dale O. Stahl and Andrew B. Whinston. A general equilibrium model of distributed computing. In W. W. Cooper and A. B. Whinston, editors, New Directions in Computational Economics, pages 175-189. Kluwer Academic Publisher, Holland, 1994.
 Joseph D. Touch and David J. Farber. An experiment in latency reduction. In IEEE Infocom, 1994.
 Hal R. Varian. Economics of the Internet: Information service located on the Internet, accessible by www page [formerly gopher://gopher.econ.lsa.umich.edu].
 William Vickrey. Counterspeculation, auctions and competitive sealed tenders. Journal of Finance, 16:8-37, March 1961. [doi: 10.2307/2977633]
 Carl A. Waldspurger, Tad Hogg, Bernardo A. Huberman, Jeffrey O. Kephart, and W. Scott Stornetta. Spawn: A distributed computational economy. IEEE Transactions on Software Engineering, 18(2):103-117, February 1992. [doi: 10.1109/32.121753]
 John T. Wenders. The Economics of Telecommunications. Ballinger, Cambridge, MA, 1987.
 David L. Wilson. Metering the Internet—users campaign to retain current pricing system. The Chronicle of Higher Education, pages A17-A19, June 1994.
 MITS. D17: Metaphors for PSCS. 1995.
2. This is an approximate form of a Vickrey auction, the auction form on which the Smart Market idea is based. While the Vickrey auction form assumes instantaneous arrivals of all competing packets , this approximation considers the current waiting line A(t) that was formed by the preceding queue arrivals. In general, A(t) is the set on which, at any time t, the price setter bases his pricing decision, and does not necessarily have to equal the current queue.
3. This scheme resembles the Leaky Bucket traffic shaper in that it restricts burstiness of the output traffic (as described in e.g. ). At a rate of 1/k, the shaper generates new permits (with or without carry-over). Burstiness in the outgoing IP traffic can increase with increases in user-controlled u, m or k. If carry-over is allowed, it may be desirable to specify (by the system, not the user) an upper limit B on how much the period budget can accumulate to, the maximum burst that can emanate is B/p within a period. The modified budget update rule is then that the ECI sets = min[B/p, ( + a)/p]. The utility of the expenditure bounder as a traffic shaper may be low since the short timescale window adjustment procedures mentioned earlier will limit bursts in times of congestion.
4. The terminology here uses should rather than will to reflect that the connection between the socket and the IP header's