World Library  
Flag as Inappropriate
Email this Article

Quality of service

Article Id: WHEBN0000025315
Reproduction Date:

Title: Quality of service  
Author: World Heritage Encyclopedia
Language: English
Subject: Traffic classification, Cable modem, Windows Rally, Computer network, Voice over IP
Collection: Internet Architecture, Network Performance, Streaming, Telecommunications Engineering, Teletraffic
Publisher: World Heritage Encyclopedia

Quality of service

Quality of service (QoS) is the overall performance of a telephony or computer network, particularly the performance seen by the users of the network.

To quantitatively measure quality of service, several related aspects of the network service are often considered, such as error rates, bandwidth, throughput, transmission delay, availability, jitter, etc.

Quality of service is particularly important for the transport of traffic with special requirements. In particular, much technology has been developed to allow computer networks to become as useful as telephone networks for audio conversations, as well as supporting new applications with even stricter service demands.


  • Definitions 1
  • History 2
  • Qualities of traffic 3
  • Applications 4
  • Mechanisms 5
    • Over-provisioning 5.1
    • IP and Ethernet efforts 5.2
    • Protocols 5.3
  • End-to-end quality of service 6
  • Circumvention 7
  • Doubts about quality of service over IP 8
  • Mobile (cellular) QoS 9
  • Standards 10
  • Open source software 11
  • See also 12
  • References 13
  • Further reading 14
  • External links 15


In the field of telephony, quality of service was defined by the ITU in 1994.[1] Quality of service comprises requirements on all the aspects of a connection, such as service response time, loss, signal-to-noise ratio, crosstalk, echo, interrupts, frequency response, loudness levels, and so on. A subset of telephony QoS is grade of service (GoS) requirements, which comprises aspects of a connection relating to capacity and coverage of a network, for example guaranteed maximum blocking probability and outage probability.[2]

In the field of computer networking and other packet-switched telecommunication networks, the traffic engineering term refers to resource reservation control mechanisms rather than the achieved service quality. Quality of service is the ability to provide different priority to different applications, users, or data flows, or to guarantee a certain level of performance to a data flow. For example, a required bit rate, delay, jitter, packet dropping probability and/or bit error rate may be guaranteed. Quality of service guarantees are important if the network capacity is insufficient, especially for real-time streaming multimedia applications such as voice over IP, online games and IP-TV, since these often require fixed bit rate and are delay sensitive, and in networks where the capacity is a limited resource, for example in cellular data communication.

A network or protocol that supports QoS may agree on a traffic contract with the application software and reserve capacity in the network nodes, for example during a session establishment phase. During the session it may monitor the achieved level of performance, for example the data rate and delay, and dynamically control scheduling priorities in the network nodes. It may release the reserved capacity during a tear down phase.

A best-effort network or service does not support quality of service. An alternative to complex QoS control mechanisms is to provide high quality communication over a best-effort network by over-provisioning the capacity so that it is sufficient for the expected peak traffic load. The resulting absence of network congestion eliminates the need for QoS mechanisms.

QoS is sometimes used as a quality measure, with many alternative definitions, rather than referring to the ability to reserve resources. Quality of service sometimes refers to the level of quality of service, i.e. the guaranteed service quality.[3] High QoS is often confused with a high level of performance or achieved service quality, for example high bit rate, low latency and low bit error probability.

An alternative and disputable definition of QoS, used especially in application layer services such as telephony and streaming video, is requirements on a metric that reflects or predicts the subjectively experienced quality. In this context, QoS is the acceptable cumulative effect on subscriber satisfaction of all imperfections affecting the service. Other terms with similar meaning are the quality of experience (QoE) subjective business concept, the required “user perceived performance”,[4] the required “degree of satisfaction of the user” or the targeted “number of happy customers”. Examples of measures and measurement methods are Mean Opinion Score (MOS), Perceptual Speech Quality Measure (PSQM) and Perceptual Evaluation of Video Quality (PEVQ). See also subjective video quality.


Conventional Internet routers and LAN switches operate on a best effort basis. This equipment is less expensive, less complex and faster and thus more popular than competing more complex technologies that provided QoS mechanisms. There were four “Type of service” bits and three “Precedence” bits provided in each IP packet header, but they were not generally respected. These bits were later re-defined as Differentiated services code points (DSCP) and are sometimes honored in peered links on the modern Internet.

With the advent of IPTV and IP telephony, QoS mechanisms are increasingly available to the end user.

A number of attempts for layer 2 technologies that add QoS tags to the data have gained popularity in the past. Examples are frame relay, asynchronous transfer mode (ATM) and multiprotocol label switching (MPLS) (a technique between layer 2 and 3). Despite these network technologies remaining in use today, this kind of network lost attention after the advent of Ethernet networks. Today Ethernet is, by far, the most popular layer 2 technology. Ethernet may offer QoS through its 802.1p.

In Ethernet, virtual local area networks (VLAN) may be used to separate different QoS levels. For example fibre-to-the-home switches typically offer several Ethernet ports connected to different VLANs. One VLAN may be used for Internet access (low priority), one for IPTV (higher priority) and one for IP telephony (highest priority). Different Internet service providers may use different VLANs.

Qualities of traffic

In packet-switched networks, quality of service is affected by various factors, which can be divided into “human” and “technical” factors. Human factors include: stability of service, availability of service, delays, user information. Technical factors include: reliability, scalability, effectiveness, maintainability, grade of service, etc.[5]

Many things can happen to packets as they travel from origin to destination, resulting in the following problems as seen from the point of view of the sender and receiver:

Low throughput
Due to varying load from disparate users sharing the same network resources, the bit rate (the maximum throughput) that can be provided to a certain data stream may be too low for realtime multimedia services if all data streams get the same scheduling priority.
Dropped packets
The routers might fail to deliver (drop) some packets if their data loads are corrupted, or the packets arrive when the router buffers are already full. The receiving application may ask for this information to be retransmitted, possibly causing severe delays in the overall transmission.
Sometimes packets are corrupted due to bit errors caused by noise and interference, especially in wireless communications and long copper wires. The receiver has to detect this and, just as if the packet was dropped, may ask for this information to be retransmitted.
It might take a long time for each packet to reach its destination, because it gets held up in long queues, or it takes a less direct route to avoid congestion. This is different from throughput, as the delay can build up over time, even if the throughput is almost normal. In some cases, excessive latency can render an application such as VoIP or online gaming unusable.
Packets from the source will reach the destination with different delays. A packet's delay varies with its position in the queues of the routers along the path between source and destination and this position can vary unpredictably. This variation in delay is known as jitter and can seriously affect the quality of streaming audio and/or video.
Out-of-order delivery
When a collection of related packets is routed through a network, different packets may take different routes, each resulting in a different delay. The result is that the packets arrive in a different order than they were sent. This problem requires special additional protocols responsible for rearranging out-of-order packets to an isochronous state once they reach their destination. This is especially important for video and VoIP streams where quality is dramatically affected by both latency and lack of sequence.


A defined quality of service may be desired or required for certain types of network traffic, for example:

These types of service are called inelastic, meaning that they require a certain minimum level of bandwidth and a certain maximum latency to function. By contrast, elastic applications can take advantage of however much or little bandwidth is available. Bulk file transfer applications that rely on TCP are generally elastic.


Circuit switched networks, especially those intended for voice transmission, such as Asynchronous Transfer Mode (ATM) or GSM, have QoS in the core protocol and do not need additional procedures to achieve it. Shorter data units and built-in QoS were some of the unique selling points of ATM for applications such as video on demand.

When the expense of mechanisms to provide QoS is justified, network customers and providers can enter into a contractual agreement termed a service level agreement (SLA) which specifies guarantees for the ability of a network/protocol to give guaranteed performance/throughput/latency bounds based on mutually agreed measures, usually by prioritizing traffic. In other approaches, resources are reserved at each step on the network for the call as it is set up.


An alternative to complex QoS control mechanisms is to provide high quality communication by generously over-provisioning a network so that capacity is based on peak traffic load estimates. This approach is simple for networks with predictable peak loads. The performance is reasonable for many applications. This might include demanding applications that can compensate for variations in bandwidth and delay with large receive buffers, which is often possible for example in video streaming. Over-provisioning can be of limited use, however, in the face of transport protocols (such as TCP) that over time exponentially increase the amount of data placed on the network until all available bandwidth is consumed and packets are dropped. Such greedy protocols tend to increase latency and packet loss for all users.

Commercial VoIP services are often competitive with traditional telephone service in terms of call quality even though QoS mechanisms are usually not in use on the user's connection to their ISP and the VoIP provider's connection to a different ISP. Under high load conditions, however, VoIP may degrade to cell-phone quality or worse. The mathematics of packet traffic indicate that network requires just 60% more raw capacity under conservative assumptions.[6]

The amount of over-provisioning in interior links required to replace QoS depends on the number of users and their traffic demands. This limits usability of over-provisioning. Newer more bandwidth intensive applications and the addition of more users results in the loss of over-provisioned networks. This then requires a physical update of the relevant network links which is an expensive process. Thus over-provisioning cannot be blindly assumed on the Internet.

IP and Ethernet efforts

Unlike single-owner networks, the Internet is a series of exchange points interconnecting private networks.[7] Hence the Internet's core is owned and managed by a number of different network service providers, not a single entity. Its behavior is much more stochastic or unpredictable. Therefore, research continues on QoS procedures that are deployable in large, diverse networks.

There are two principal approaches to QoS in modern packet-switched IP networks, a parameterized system based on an exchange of application requirements with the network, and a prioritized system where each packet identifies a desired service level to the network.

Early work used the integrated services (IntServ) philosophy of reserving network resources. In this model, applications used the Resource reservation protocol (RSVP) to request and reserve resources through a network. While IntServ mechanisms do work, it was realized that in a broadband network typical of a larger service provider, Core routers would be required to accept, maintain, and tear down thousands or possibly tens of thousands of reservations. It was believed that this approach would not scale with the growth of the Internet, and in any event was antithetical to the notion of designing networks so that Core routers do little more than simply switch packets at the highest possible rates.

In response to these markings, routers and switches use various queuing strategies to tailor performance to requirements. At the IP layer, differentiated services code point (DSCP) markings use the 6 bits in the IP packet header. At the MAC layer, VLAN IEEE 802.1Q and IEEE 802.1p can be used to carry essentially the same information.

Routers supporting DiffServ configure their network scheduler to use multiple queues for packets awaiting transmission from bandwidth constrained (e.g., wide area) interfaces. Router vendors provide different capabilities for configuring this behavior, to include the number of queues supported, the relative priorities of queues, and bandwidth reserved for each queue.

In practice, when a packet must be forwarded from an interface with queuing, packets requiring low jitter (e.g., VoIP or videoconferencing) are given priority over packets in other queues. Typically, some bandwidth is allocated by default to network control packets (such as Internet Control Message Protocol and routing protocols), while best effort traffic might simply be given whatever bandwidth is left over.

At the Media Access Control (MAC) layer, VLAN IEEE 802.1Q and IEEE 802.1p can be used to distinguish between Ethernet frames and classify them. Queueing theory models have been developed on performance analysis and QoS for MAC layer protocols.[8][9]

Cisco IOS NetFlow and the Cisco Class Based QoS (CBQoS) Management Information Base (MIB) are marketed by Cisco Systems. [10]

One compelling example of the need for QoS on the Internet relates to congestion collapse. The Internet relies on congestion avoidance protocols, as built into Transmission Control Protocol (TCP), to reduce traffic under conditions that would otherwise lead to "meltdown". QoS applications such as VoIP and IPTV, because they require largely constant bitrates and low latency cannot use TCP and cannot otherwise reduce their traffic rate to help prevent congestion. QoS contracts limit traffic that can be offered to the Internet and thereby enforce traffic shaping that can prevent it from becoming overloaded, and are hence an indispensable part of the Internet's ability to handle a mix of real-time and non-real-time traffic without meltdown.


End-to-end quality of service

End-to-end quality of service can require a method of coordinating resource allocation between one autonomous system and another. The Internet Engineering Task Force (IETF) defined the Resource Reservation Protocol (RSVP) for bandwidth reservation, as a proposed standard in 1997.[12] RSVP is an end-to-end bandwidth reservation protocol. The traffic engineering version, RSVP-TE, is used in many networks to establish traffic-engineered Multiprotocol Label Switching (MPLS) label-switched paths. The IETF also defined Next Steps in Signaling (NSIS)[13] with QoS signalling as a target. NSIS is a development and simplification of RSVP.

Research consortia such as "end-to-end quality of service support over heterogeneous networks" (EuQoS, from 2004 through 2007)[14] and fora such as the IPsphere Forum[15] developed more mechanisms for handshaking QoS invocation from one domain to the next. IPsphere defined the Service Structuring Stratum (SSS) signaling bus in order to establish, invoke and (attempt to) assure network services. EuQoS conducted experiments to integrate Session Initiation Protocol, Next Steps in Signaling and IPsphere's SSS with an estimated cost of about 15.6 million Euro and published a book.[16][17]

A research project Multi Service Access Everywhere (MUSE) defined another QoS concept in a first phase from January 2004 through February 2006, and a second phase from January 2006 through 2007.[18][19][20] Another research project named PlaNetS was proposed for European funding circa 2005.[21] A broader European project called "Architecture and design for the future Internet" known as 4WARD had a budgest estimated at 23.4 million Euro and was funded from January 2008 through June 2010.[22] It included a "Quality of Service Theme" and published a book.[23][24] Another European project, called WIDENS (Wireless Deployable Network System) [25] proposed a bandwidth reservation approach for mobile wireless multirate adhoc networks.[26]
In the services domain, end-to-end Quality of Service has also been discussed in the case of composite services (consisting of atomic services) or applications (consisting of application components).[27][28] Moreover, in cloud computing end-to-end QoS has been the focus of various research efforts aiming at the provision of QoS guarantees across the cloud service models.[29]


Strong cryptography network protocols such as Secure Sockets Layer, I2P, and virtual private networks obscure the data transferred using them. As all electronic commerce on the Internet requires the use of such strong cryptography protocols, unilaterally downgrading the performance of encrypted traffic creates an unacceptable hazard for customers. Yet, encrypted traffic is otherwise unable to undergo deep packet inspection for QoS.

Doubts about quality of service over IP


  • Nate Hoy. "Implementing QoS". Vonage Forum. Retrieved October 14, 2011. 
  • Cisco's Internetworking Technology Handbook
  • "Quality of Service". Microsoft TechNet. March 31, 2011. Retrieved October 14, 2011. 
  • "Web Camera QoS Analysis Tool". FishyCam. October 31, 2012. Retrieved November 16, 2012. 

External links

  • Deploying IP and MPLS QoS for Multiservice Networks: Theory and Practice by John Evans, Clarence Filsfils (Morgan Kaufmann, 2007, ISBN 0-12-370549-5)
  • Lelli, F. Maron, G. Orlando, S. Client Side Estimation of a Remote Service Execution. 15th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, 2007. MASCOTS '07.
  • QoS Over Heterogeneous Networks by Mario Marchese (Wiley, 2007, ISBN 978-0-470-01752-4)
  • XiPeng Xiao (September 8, 2008). Technical, Commercial and Regulatory Challenges of QoS: An Internet Service Model Perspective. Morgan Kaufmann.  
  • RFC 1633: Integrated Services in the Internet Architecture: an Overview
  • RFC 2475: An Architecture for Differentiated services
  • RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels

Further reading

  1. ^ a b "E.800: Terms and definitions related to quality of service and network performance including dependability". ITU-T Recommendation. August 1994. Retrieved October 14, 2011.  Updated September 2008 as Definitions of terms related to quality of service
  2. ^ Teletraffic Engineering Handbook ITU-T Study Group 2 (350 pages, 4·48MiB)(It uses abbreviation GoS instead of QoS)
  3. ^ Real-time reconfiguration for guaranteeing QoS provisioning levels in Grid environments Future Generation Computer Systems, Volume 25, Issue 7, July 2009, Pages 779–784, Elsevier
  4. ^ Leonard Franken. Quality of Service Management: A Model-Based Approach. PhD thesis, Centre for Telematics and Information Technology, 1996.
  5. ^ Peuhkuri M., IP Quality of Service, Helsinki University of Technology, Laboratory of Telecommunications Technology, 1999.
  6. ^ Yuksel, M.; Ramakrishnan, K. K.; Kalyanaraman, S.; Houle, J. D.; Sadhvani, R. (2007). "IEEE International Workshop on Quality of Service (IWQoS'07)" (PDF). Evanston, IL, USA. pp. 109–112.  
  7. ^ An Evening With Robert Kahn, from Computer History Museum, 9 Jan 2007
  8. ^ Bianchi, Giuseppe (2000). "Performance analysis of the IEEE 802.11 distributed coordination function". IEEE Journal on Selected Areas in Communications 18 (3): 535.  
  9. ^ Shi, Zhefu; Beard, Cory; Mitchell, Ken (2009). "Analytical Models for Understanding Misbehavior and MAC Friendliness in CSMA Networks". Performance Evaluation 66 (9–10): 469.  
  10. ^ Ben Erwin (December 16, 2008). "How To Manage QoS In Your Environment, Part 1 of 3". Network Performance Daily video.  
  11. ^ "VoIP on MPLS". Search Unified Communications. Retrieved 12 March 2012. 
  12. ^  
  13. ^ “Next Steps in Signaling” Charter
  14. ^ "EuQoS - End-to-end Quality of Service support over heterogeneous networks". Project website. 2004–2006. Archived from the original on April 30, 2007. Retrieved October 12, 2011. 
  15. ^ IPSphere: Enabling Advanced Service Delivery
  16. ^ "End-to-end quality of service support over heterogeneous networks". Project description. European Community Research and Development Information Service. Retrieved October 12, 2011. 
  17. ^ Torsten Braun; Thomas Staub (2008). End-to-end quality of service over heterogeneous networks. Springer.  
  18. ^ "Multi Service Access Everywhere (MUSE)". Project website. Retrieved October 12, 2011. 
  19. ^ "Multi Service Access Everywhere". Project description. European Community Research and Development Information Service. Retrieved October 12, 2011. 
  20. ^ "Multi Service Access Everywhere". Project description. European Community Research and Development Information Service. Retrieved October 12, 2011. 
  21. ^ "PlaNetS QoS Solution". Project website. Archived from the original on November 12, 2009. Retrieved October 12, 2011. 
  22. ^ "4WARD: Architecture and design for the future Internet". Project description. European Community Research and Development Information Service. Retrieved October 15, 2011. 
  23. ^ "Going 4WARD" (PDF). Project newsletter. June 2010. Retrieved October 15, 2011. 
  24. ^ Luís M. Correia; Joao Schwarz (FRW) da Silva (January 30, 2011). Architecture and Design for the Future Internet: 4WARD EU Project. Springer.  
  25. ^ "Wireless Deployable Network System". Project description. European Union. Retrieved May 23, 2012. 
  26. ^ R. Guimaraes, L. Cerdà, J. M. Barcelo-Ordinas, J. Garcia-Vidal, M. Voorhaen, C. Blondia (March 2009). "Quality of Service through Bandwidth Reservation on Multirate Ad-doc Wireless Networks". Ad Hoc Networks Journal (Elsevier), Vol. 7, Issue 2 7 (2): 388–400.  
  27. ^ D. Kyriazis, K. Tserpes, A. Menychtas, A. Litke, T. Varvarigou, An innovative Workflow Mapping Mechanism for Grids in the frame of Quality of Service, Elsevier Future Generation Computer Systems, Vol. 24, Iss. 6, pp. 498-511, 2008
  28. ^ Q. Sun, S. Wang, H. Zou, F. Yang, QSSA: A QoS-aware Service Selection Approach, International Journal of Web and Grid Services, pp.147 - 169, 2011
  29. ^ D Kyriazis, A Menychtas, G Kousiouris, K Oberle, T Voith, M Boniface, E Oliveros, T Cucinotta, S Berger, “A Real-time Service Oriented Infrastructure”, International Conference on Real-Time and Embedded Systems (RTES 2010), Singapore, November 2010
  30. ^ a b Benjamin Teitelbaum,  
  31. ^ a b Andy Oram (June 11, 2002). "A Nice Way to Get Network Quality of Service?". Platform Independent column. O'Reilly. Archived from the original on September 12, 2010. Retrieved October 15, 2011. 
  32. ^ Gary Bachula (February 7, 2006). "Testimony of Gary R. Bachula, Vice President, Internet2". pp. 2–3. Retrieved October 15, 2011. 
  33. ^ "X.902:Information technology – Open Distributed Processing – Reference model: Foundations". ITU-T Recommendation. November 1995. Retrieved October 14, 2011.  Updated October 2009.
  34. ^ "X.641: Information technology - Quality of service: framework". ITU-T Recommendation. December 1997. 
  35. ^ "Advanced Routing & Traffic Control HOWTO". August 21, 2005. Retrieved October 14, 2011. 
  36. ^ "Linux Bandwidth Arbitrator". APConnections. Retrieved October 14, 2011. 
  37. ^ Fulvio Ricciardi. "QoS and Traffic Shaping in Transparent Bridge mode". Router/Bridge Linux Firewall website. ZeroShell Net Services. Retrieved October 15, 2011. 


See also

  • Linux Advanced Routing & Traffic Control (from 2000 to 2005)[35]
  • Linux Bandwidth Arbitrator (2003 through 2005)[36]
  • Zero Shell[37]
  • mod_qos adding QoS to the Apache HTTP Server

Open source software

The IETF has also published RFC 4594 Configuration Guidelines for DiffServ Service Classes as an informative or "best practices" document about the practical aspects of designing a QoS solution for a DiffServ network. They try to identify which types of applications are commonly run over an IP network to group them into traffic classes, study what treatment do each of these classes need from the network, and suggest which of the QoS mechanisms commonly available in routers can be used to implement those treatments.

Some QoS-related IETF Request For Comments (RFC)s are Definition of the Differentiated services Field (DS Field) in the IPv4 and IPv6 Headers (RFC 2474), and Resource ReSerVation Protocol (RSVP) (RFC 2205); both these are discussed above. The IETF has also published two RFCs giving background on QoS: RFC 2990: Next Steps for the IP QoS Architecture, and RFC 3714: IAB Concerns Regarding Congestion Control for Voice Traffic in the Internet.

Quality of service in the field of telephony, was first defined in 1994 in the ITU-T Recommendation E.800. This definition is very broad, listing 6 primary components: Support, Operability, Accessibility, Retainability, Integrity and Security.[1] A 1995 recommendation X.902 included a definition is the OSI reference model.[33] In 1998 the ITU published a document discussing QoS in the field of data networking. X.641 offers a means of developing or enhancing standards related to QoS and provide concepts and terminology that will assist in maintaining the consistency of related standards.[34]


Mobility adds complication to the QoS mechanisms, for several reasons:

Mobile cellular service providers may offer mobile QoS to customers just as the fixed line PSTN services providers and Internet Service Providers (ISP) may offer QoS. QoS mechanisms are always provided for circuit switched services, and are essential for non-elastic services, for example streaming multimedia.

Mobile (cellular) QoS

Bachula's testimony has been cited by proponents of a law banning quality of service as proof that no legitimate purpose is served by such an offering. This argument is dependent on the assumption that over-provisioning isn't a form of QoS and that it is always possible. Cost and other factors affect the ability of carriers to build and maintain permanently over-provisioned networks.

The Abilene network study was the basis for the testimony of Gary Bachula to the US Senate Commerce Committee's hearing on Network Neutrality in early 2006. He expressed the opinion that adding more bandwidth was more effective than any of the various schemes for accomplishing QoS they examined.[32]

[31][30] They believed that the economics would encourage network providers to deliberately erode the quality of best effort traffic as a way to push customers to higher priced QoS services. Instead they proposed over-provisioning of capacity as more cost-effective at the time.[31]

This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.