DistOS-2011W Public Goods: Difference between revisions
(210 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
= | =Abstract= | ||
Public goods are resources that are held in common for the benefit of all within the society. The Internet is now such an important piece of our economy, culture, communication and entertainment that the technologies that enable it should be placed in trust for benefit of the entire population. In this paper we establish a model to help define public goods as they relate to the access and use of the Internet. Using three examples of public goods candidates (physical infrastructure, web caching and DNS) the viability and benefits of this conversion will be illustrated. Finally, criteria to define other candidates for public goods will be established. | |||
= | =Introduction= | ||
As societies have developed, communities have recognized the need for public goods. From simple shepherds to colonial empires to current democratic superpowers, all societies have recognized a need for and have identified public goods which can be defined as “resources that are held in common in the sense than no one exercises any property right with respect to these resources or the exclusive right to choose whether the resource is made available to others”<ref name="wirelessRural">David Johnson, Kobus Roux. Building Rural Wireless Networks: Lessons Learnt and Future Directions. WINS-DR, 5. September 2008. DOI=10.1145/1410064.1410068 [http://doi.acm.org/10.1145/1410064.1410068 link]</ref>. These public goods provide a noticeable benefit to all of the individuals composing the society. Generally speaking, these entities are deemed to be essential, beneficial and non-excludable to individuals and the public as a whole. Roads, parks, military, police, water and fresh air are all example of public goods. We propose to add the Internet to this long list. The Internet is becoming a vital tool in nearly everyone's life, playing a massive part in modern business, education, communication and entertainment. As we move into the future, access to the Internet for individuals worldwide is quickly becoming essential. While it might be nice to identify the Internet as a public good, identifying how to convert it to one is a more difficult process. The Internet is a system of heterogenous computers, hardware and runs using an even more diverse set of protocols and software. This system is much too large to be effectively managed by a single governing body and there are certain aspects of the Internet (ie. business entities) that should not be publicly controlled. With this in mind, we have tried to answer the following questions: | |||
* Which aspects of the Internet should be controlled by the public? | |||
* | * How are these aspects identified? | ||
* | * Are these aspects absolutely fundamental to the functionality of the Internet? | ||
*What | * What are the problems with how these aspects are controlled today? | ||
* What are the advantages and disadvantages of having this aspect of the Internet as a public good? | |||
*What | |||
We have identified three key pieces of the Internet that are excellent candidates to become public goods. We propose how these aspects could be removed from being solely in the hands of private companies and converted to a public good. These are the physical infrastructure of the Internet, web caching and DNS. We chose these three pieces based on them being absolutely essential to the current operation of the Internet. After doing this, and examining the benefits of converting these three pieces of the Internet into public goods, we added another key question to be answered to the list above: | |||
* What qualities do these potential public goods have in common? | |||
Upon analysis, common benefits were identified and we believe these can provide a base criteria that can be used to identify other portions of the Internet as candidates for public goods. | |||
= | =Candidates for Public Goods= | ||
In the following sections, a few key examples of aspects of the Internet that would be excellent candidates for becoming public goods will be presented. | |||
==Physical Infrastructure== | |||
As the ubiquitous nature of the Internet has unfolded, people's dependence on it has increased. While the Internet's roots exist in a serendipitous alignment of academic and military interests, the Internet quickly became a provider of entertainment and communication. Today the Internet has enmeshed itself in the fabric of society and is a part of many people's daily ritual. For many, the Internet is as important as roads for conducting their daily activities, yet while roads are not privately owned the infrastructure of the Internet lies in the hands of private companies. | |||
The private companies that currently own the infrastructure of the Internet are referred to as ISPs (Internet Service Providers). These are the entities that any user must pay to gain access to the Internet currently. For the purposes of this paper, we will consider the servers, routers, switches, hubs, wires, fiber, and all other hardware that exists outside of the consumers own networks to be the infrastructure of the Internet and will not differentiate between these technologies. | |||
= | ===Problems=== | ||
== | A variety of problems arise with the ISPs owning the infrastructure of the Internet. These companies make decisions based on their own profit margins and with little regard for the public good. One problem currently experienced is packet shaping<ref name="wikipediaTrafficShaping"> Wikipedia/Traffic Shaping. visited April 2011. last modified March 2011. [http://en.wikipedia.org/wiki/Traffic_shaping link]</ref>. Packet shaping is currently used by ISPs to control the speed of certain kinds of traffic, thus avoiding congestion. It does this by assigning priorities to packets using various criteria decided by the ISPs. While it is good for everyone with the technology implemented by private companies, we don't know what protocols are limited, by how much and if it's only done at peak times. We also don't know if this technology is deployed to just decrease the bandwidth consumption so the company can avoid upgrading the infrastructure. Another potential problem is the ISPs giving preferential treatment to websites or webservices that have paid the ISP. This could be implemented by slowing our disallowing traffic to competitors. While this hasn't been proposed by ISPs, it has been fought against by the movement known as Net Neutrality<ref name="wikipediaNetNeutrality">Wikipedia/NetNeutrality. visited April 2011. last modified April 2011. [http://en.wikipedia.org/wiki/Net_neutrality link]</ref>. More recently we have become acutely aware that ISPs provide convenient choke points. In Egypt during an uprising, the incumbent government shutdown the population's access to the Internet by simply forcing the ISPs to shutdown. This is not a conclusive list of weaknesses that private ownership of the infrastructure presents. There are a host of other issues, but these few are cause for concern. | ||
== | ===Alternatives=== | ||
With the current importance of the Internet, an alternative to private ownership of the Internet's infrastructure needs to be found. Here, we provide two. The first is to have the government legislate the behaviour of the ISPs which is currently our only mechanism. This would transform the infrastructure into a virtual public good by legislating the behaviours of the ISPs to be in accordance with the best interest of the public. There are problems in that politician's have their own goals and can be influenced unduly by private industries though lobbyists or other means. Additionally, the government is slow to act and this could allow disruptive and unfair behaviour by the ISPs to affect the population until the government passes a law preventing the current behaviour. These reasons make this option less than compelling. | |||
The other option is for the public to actually own the infrastructure of the Internet. We are not proposing that the government take the infrastructure from the ISPs, but that it creates its own with the help of the people. This new infrastructure would coexist with the current ISPs and operate in parallel. Conceivably the speed of this new infrastructure would not be as fast as the incumbents, and people could still turn to the ISPs if they desire higher speeds. In a structure analogous to the way maintenance of our roadways is organized, this would be adopted at all levels of government (municipal, provincial and federal). This stratification allows incremental deployment as individual urban centres acting at the municipal level could start with localized infrastructure. The provinces could eventually provide infrastructure to connect urban centres together and the federal government would eventually link together the provinces and other countries. Below we will describe one possible implementation of such an infrastructure. In doing so we can see what the concrete benefits might be in addition to reducing dependency on private companies for infrastructure that in all respects should be a public good. | |||
===Implementation Description=== | |||
The implementation that we chose to explore for the purposes of this paper is a wireless mesh. The mesh structure would exist in conjunction with the current infrastructure of the ISPs and, as such, it can be envisioned as an omnipresent overlay that provides alternative transportation for Internet traffic. At the simplest level this mesh would be composed of a number of fairly static nodes with high availability consisting of users' home computers. In addition, there would be a large number of highly mobile nodes that would move and provide variable availability consisting of users' laptop and Internet aware personal devices. The nodes would use algorithms to elect members to act as super nodes responsible for routing information. While maintaining the accuracy of routing information is a significant challenge, research has been done that provides efficient mechanisms for doing this<ref name="wirelessDart">Jakob Eriksson, Michalis Faloutsos, Srikanth V. Krishnamurthy. DART: Dynamic Address RouTing for Scalable | |||
Ad Hoc and Mesh Networks. IEEE/ACM TRANSACTIONS ON NETWORKING, January 2006. DOI=10.1109/TNET.2006.890092 [http://doi.acm.org/10.1145/1250000/1241842/p119-eriksson.pdf link]</ref><ref name="wirelessFlooding"> | |||
Pengfei Di, Thomas Fuhrman. Scalable Landmark Flooding - A Scalable Routing Protocol | |||
for WSNs. CoNEXT Student Workshop’09, December 2009. DOI=10.1145/1658997.1658999 [http://doi.acm.org/10.1145/1660000/1658999 link]</ref>. If higher speeds were desired, the urban centres the mesh is located in could provide a wired infrastructure with frequent wireless access points servicing 'neighborhoods'<ref name="wirelessUrban"/>. When the mesh density gets too low, presumably between urban centres, faster backbones would be added to connect these urban centres. Conceivably the mesh might also extend to more distant locals, but performance would be severely impacted with very few nodes available to provide routing. Finally, at the highest level, different countries could connect their meshes together. As mentioned previously, these different levels of connection segment along in parallel with the levels of government that we have in Canada. As wireless technology improves the speed and coverage of the mesh will improve as well and, as the level of support increases, the publicly offered speed could increase as well. Potentially the privately owned ISP might even disappear entirely. | |||
== | ===Advantages of Internet Infrastructure as a Public Good=== | ||
The following list is a summary of the major advantages of having Internet infrastructure as a public good. | |||
* | *'''Increase in speed''' | ||
As envisioned, the publicly owned infrastructure would offload basic services such as email, instant messaging, and other similar services more tolerant of lower speeds from the conventional infrastructure. This would free up bandwidth on the privately owned ISPs. This in turn would speed up access for members of the population who desire higher speed and the services dependent on it, such as video streaming. | |||
* | *'''Increased robustness''' | ||
A mesh also provides significant increases in robustness. A mesh presents not a single point of connection, so it can not be disabled as easily as current ISPs can be. Even if a portion of the mesh was partitioned from the Internet, it would continue to function within its partition. Considering the significant portion of the population that use the Internet to communicate, this could be a significant benefit in a disaster scenario. In such a scenario it is likely that other forms of communication relying on centralized infrastructure would fail while the mesh would continue to work. | |||
== | *'''Universally provide a basic level of service''' | ||
=== | The publicly owned infrastructure would provide a basic level of service for everyone. This could negate the need for ISPs for some users whose primary use of the Internet might be surfing or visiting low-bandwidth websites. This could also help make Internet access available for fiscally disadvantaged members of the population as well. Finally, a mesh topology has the potential to extend Internet coverage to low density rural areas, as it has been used for this purpose in developing nations<ref name="wirelessRural"/>. Canada, due to our low population density, has areas that draw a parallel to these rural areas where the technology has been used. | ||
In general, the idea behind web caching is the temporary storage of web objects that can be used later without having to retrieve the data from the original server again. When a new web request is made, the resulting data is stored in a cache after being delivered to the end user. If another user requests the same data, barring certain conditions, the cached data is returned to the user and the request is not passed on to the originating web server. There are many aspects of many websites that do not change very often (ie. logos, static text, pictures, other multimedia) and hence are good candidates for caching <ref name="visolve">Optimized Bandwidth + Secured Access = Accelerated Data Delivery, Web Caching - A cost effective approach for organizations to address all types of bandwidth management challenges. A ViSolve White Paper. March 2009. [http://www.visolve.com/squid/whitepapers/ViSolve_Web_Caching.pdf link]</ref> Web caches can either exist on the end user's machine (in the browser, for instance) or can exist somewhere between the user the servers they wish to communicate with on what is known as a proxy server <ref name="webcaching.com"> Web Caching Overview. visited March 2011. [http://www.web-caching.com/welcome.html link] </ref>. Internet Service Providers have a key interest in web caching and in most cases implement their own caches <ref name="visolve"/><ref name="cisco">Geoff Huston | |||
*'''Incrementally deployable''' | |||
A mesh supports incremental roll out. It could start in a single neighborhood using the wireless of the neighbours to create a small network. As the mesh increases in size, the mesh can be self organizing with the composing nodes being elected to more prominent roles if they have sufficient speed. The municipality could support this topology by adding wireless access points that could be attached to a higher speed wired infrastructure of the urban centre. The density of connection points has been studied and there is a relationship with this to the potential speeds that are sustainable by the mesh, again allowing incremental deployment but in the dimension of speed<ref name="wirelessUrban">Vinay Sridhara, Jonghyun Kim, Stephan Bohacek. Performance of Urban Mesh Networks∗. MSWiM’05, October 2005. DOI=10.1145/1089444.1089492 [http://doi.acm.org/10.1145/1089444.1089492 link]</ref>. | |||
===Disadvantages of Internet Infrastructure as a Public Good=== | |||
While we feel the benefits outweigh the drawbacks, a summary of the disadvantages of making the infrastructure of the Internet a public good are presented here. | |||
*'''Public costs''' | |||
Advocating that various levels of government participate in the provision of some infrastructure would necessitate an increase in taxes. Since the support would be at all levels of government, the taxes would be distributed at all levels becoming almost imperceptible. | |||
*'''Software Changes''' | |||
To fully take advantage of the two level system of Internet access that the mesh overlay provides, some software would need to be changed. An example of this would be email which is normally considered a low bandwidth service. If a large attachment were present it would make sense to take advantage of the faster network connection to download it. Thus the software would have to be aware of the availability and the capability of the two networks and switch between them in specific cases. | |||
*'''Personal costs''' | |||
Implementing a mesh, where the population provides some of the nodes active in routing and otherwise maintaining the network, incurs some cost. This could be in the form of used CPU cycles and additional power usage to increase node availability. Alternatively, a dedicated piece of hardware in the form of a wireless router with additional computational power could be a mandatory purchase. | |||
==Web Caching== | |||
In general, the idea behind web caching is the temporary storage of web objects that can be used later without having to retrieve the data from the original server again. When a new web request is made, the resulting data is stored in a cache after being delivered to the end user. If another user requests the same data, barring certain conditions, the cached data is returned to the user and the request is not passed on to the originating web server. There are many aspects of many websites that do not change very often (ie. logos, static text, pictures, other multimedia) and hence are good candidates for caching <ref name="visolve">Optimized Bandwidth + Secured Access = Accelerated Data Delivery, Web Caching - A cost effective approach for organizations to address all types of bandwidth management challenges. A ViSolve White Paper. March 2009. [http://www.visolve.com/squid/whitepapers/ViSolve_Web_Caching.pdf link]</ref>. Web caches can either exist on the end user's machine (in the browser, for instance) or can exist somewhere between the user the servers they wish to communicate with on what is known as a proxy server <ref name="webcaching.com"> Web Caching Overview. visited March 2011. [http://www.web-caching.com/welcome.html link] </ref>. Internet Service Providers have a key interest in web caching and in most cases implement their own caches <ref name="visolve"/><ref name="cisco">Geoff Huston. Web Caching. The Internet Protocol Journal Volume 2, No. 3. 2000. [http://www.cisco.com/web/about/ac123/ac147/ac174/ac199/about_cisco_ipj_archive_article09186a00800c8903.html link]</ref>. There are a variety of incentives for entities on the Internet, including ISPs, to use web caches. In general, these advantages can be summarized as follows: | |||
*'''Reduced Bandwidth Usage''' | *'''Reduced Bandwidth Usage''' | ||
One of the main incentives for ISPs to use web caching is the reduction of outgoing web traffic which results in a reduction of overall bandwidth usage <ref name="visolve"/><ref name="webcaching.com"/><ref name="cisco"/><ref name="survey">Jia Wang | One of the main incentives for ISPs to use web caching is the reduction of outgoing web traffic which results in a reduction of overall bandwidth usage <ref name="visolve"/><ref name="webcaching.com"/><ref name="cisco"/><ref name="survey">Jia Wang. A survey of web caching schemes for the Internet. SIGCOMM Comput. Commun. Rev. 29, 5 (October 1999), 36-46. DOI=10.1145/505696.505701 [http://doi.acm.org/10.1145/505696.505701 link]</ref><ref name="docforge"> Web application/Caching. visited March 2011. last modified September 2010. [http://docforge.com/wiki/Web_application/Caching link]</ref>. For a typical ISP, web based traffic can account for upwards of 70% of the total bandwidth used and, of this web based traffic, the level of similarity of requests can be as high as 50%<ref name="cisco"/>. It is also true that, for many ISPs, transmission costs dominate their overall operating costs and any reduction in requests that must be satisfied outside of the ISP are beneficial<ref name="cisco"/>. | ||
*'''Improved End User Experience''' | *'''Improved End User Experience''' | ||
Another benefit of web caching is the apparent reduction in latency to the end user <ref name="visolve"/><ref name="webcaching.com"/><ref name="survey"/><ref name="docforge"/>. Instead of web requests traveling all the way to the desired web server, these requests are intercepted by a proxy server who can | Another benefit of web caching is the apparent reduction in latency to the end user <ref name="visolve"/><ref name="webcaching.com"/><ref name="survey"/><ref name="docforge"/>. Instead of web requests traveling all the way to the desired web server, these requests are intercepted by a proxy server who can return a cached version of the requested data. The fact that the total distance that the data had to travel is cut down significantly (as web caches are intended to be relatively close to the end user), the time to deliver the content to the end user can also be cut down significantly. It has been found that small performance improvements made by an ISP through the use of caching can result in a significantly better end user experience<ref name="docforge"/>. | ||
*'''Reduced Web Server Load''' | *'''Reduced Web Server Load''' | ||
Web servers providing popular data also benefit from web caching. Popular websites translate into a high number of simultaneous connections and a high bandwidth usage by the providing web server <ref name="cisco"/><ref name="survey"/>. A web cache placed in front of a given web server can reduce the number of connections that need to be passed through by providing data it has stored. This can translate into reduced hardware and support costs<ref name="docforge"/>. | Web servers providing popular data also benefit from web caching. Popular websites translate into a high number of simultaneous connections and a high bandwidth usage by the providing web server <ref name="cisco"/><ref name="survey"/>. A web cache placed in front of a given web server can reduce the number of connections that need to be passed through by providing data it has stored. This can translate into reduced hardware and support costs<ref name="docforge"/>. | ||
Additional advantages include the added robustness that a web cache adds to the | Additional advantages include the added robustness that a web cache adds to the Internet, allowing users to access documents even if the supplying web server is down as well as allowing organizations to analyze Internet usage patterns <ref name="survey"/>. | ||
===Web Caching Schemes=== | ===Web Caching Schemes=== | ||
Since web caching has been identified as significant | Since web caching has been identified as significant asset to the Internet as a whole, it has received its fair share of research. Different approaches to web caching have been proposed, many of which utilized distributed or hierarchical elements. These approaches will not be looked into in depth here as they will be considered merely implementation details. A survey of web caching schemes <ref name="survey"/> identified the main architectures that a large scale web cache can have. | ||
One of these is a hierarchical architecture. In such an architecture web caches are placed at different levels of a network, starting with the client's machine, followed by a local then regional and then finally a national level cache. In this type of system, web requests are first sent to the lowest level cache and passed along to higher levels until the request can be satisfied. Once it is satisfied, the data | One of these is a hierarchical architecture. In such an architecture, web caches are placed at different levels of a network, starting with the client's machine, followed by a local, then regional and then finally a national level cache. In this type of system, web requests are first sent to the lowest level cache and passed along to higher levels until the request can be satisfied. Once it is satisfied, the data travels back down the hierarchy, leaving a copy at each of the lower levels. Hierarchical web caches benefit from their efficient use of bandwidth by allowing popular web sites to propagate towards the demand. | ||
Another potential architecture is distributed web caching. In such a structure there is only one level of | Another potential architecture is distributed web caching. In such a structure there is only one level of cache that cooperates with each other to satisfy web requests. To do this, each cache retains meta-data about the content of all of the other caches it cooperates with and uses it to fulfill web requests it receives from clients. This web caching scheme allows for better load balancing as well as introduces fault tolerance that was not available to strictly hierarchical structures. Examples of such systems <ref name="distributed1">Jong Ho Park and Kil To Chong. An Implementation of the Client-Based Distributed Web Caching System. Web Technologies Research and Development - APWeb 2005. Lecture Notes in Computer Science, 2005, Volume 3399/2005, 759-770, DOI: 10.1007/978-3-540-31849-1_73 [http://www.springerlink.com/content/mga3c714e9glr5el/ link]</ref><ref name="distributed2"> | ||
Sandra G. Dykes, Clinton L. Jeffery, and Samir Das. Taxonomy and Design Analysis for Distributed Web Caching. In Proceedings of the Thirty-second Annual Hawaii International Conference on System Sciences-Volume 8 - Volume 8 (HICSS '99) [http://portal.acm.org/citation.cfm?id=876307 link 1], [http://www.google.ca/url?sa=t&source=web&cd=3&ved=0CCgQFjAC&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.8.7799%26rep%3Drep1%26type%3Dpdf&rct=j&q=%22taxonomy%20and%20design%20analysis%20for%20distributed%20web%20caching%22&ei=mRqWTdnIJsjYgAe8i7GuCA&usg=AFQjCNGa-pNxW62SpjpwQmheA3KrH0nZ2A&sig2=htSW5Po4rEGbrd4LGVacmg link 2]</ref> have been implemented and shown to be effective in realistic web traffic scenarios. | |||
Finally, a third option for large scale web caches is a hybrid architecture. In such a system, a hierarchy of caches exists, however there are a number of caches on each level that cooperate with each other in a distributed fashion. This type of system can benefit from the combination of the different advantages that the hierarchical and distributed architectures provide. | Finally, a third option for large scale web caches is a hybrid architecture. In such a system, a hierarchy of caches exists, however there are a number of caches on each level that cooperate with each other in a distributed fashion. This type of system can benefit from the combination of the different advantages that the hierarchical and distributed architectures provide. The Internet Cache Protocol <ref name="icp">D. Wessels and K. Claffy. Internet Cache Protocol (ICP), version 2. RFC 2186. 1997.</ref> can be used to implement such a system where a cache hierarchy exists with a number of individual caches cooperating at each level <ref name="survey"/>. | ||
===Web Caching as a Public Good=== | ===Web Caching as a Public Good=== | ||
Web caching is obviously of enormous importance to the efficient | Web caching is obviously of enormous importance to the efficient functionality of the Internet, and therefore is vitally important to the end users. Web caching ultimately succeeds by keeping relevant data close to the end users. Typically these web caches are currently implemented by ISPs, and they do so because it is in their financial interest and not because it is in the interest of their customers. Obviously their customer's satisfaction is important, but it is not their top priority. Transitioning ISP controlled web caches into a public good would allow for a balance between both the financial and end user experience aspects of web caching. This can be achieved by the government actually taking over the proxy servers that host the web caches or though strict regulations on exactly how web caching should be done. A benefit of this is that it allows for the standardization of web caching on all proxies. This doesn't mean that every web cache needs to be implemented in the exact same way, but it could allow for generic interfaces where web caches of all types could communicate with one another. This would then allow end users who are customers of one ISP to be able to be serviced by web caches that used to be available to customers of other ISPs. | ||
Not only would standardizing web caches at the ISP level allow for these previously private, uncooperative proxies to act more like distributed web caches, it would also allow for a natural hierarchy to be built. This hierarchy would be based on geography, where the ISP level caches would now work together to service a relatively small region, which would then be followed by a level of web caches that would service a larger geographical region, followed by provincial/state level web caches and finally a national level. These of course would all be standardized to allow for regional or provincial caches to serve web requests for users in different regions or provinces. Having formalized and standardized web hierarchies would allow for a reduction in wasted bandwidth and an improved end user experience. This would also remove redundant data stored in caches that previously would not or could not communicate with each other, increasing the overall storage capabilities. This increase in storage would allow for more web data to be stored in more places, which would translate into more robust web caches by becoming more fault tolerant. | |||
Once web caching becomes a public good it would also be in the end user's best interest to participate, if they could. This would essentially mean turning the lowest level of web caching (currently done on a user's machine) into a distributed web cache. This would allow for users to share their cache with each other and allow for the building of neighbourhood specific, ultra fast caches. This could be implemented by each user supplying a small amount of hard drive space as well as some computation cycles, similar to that of BOINC projects<ref name="boinc>David P. Anderson. Public Computing: Reconnecting People to Science. Conference on Shared Knowledge and the Web. Residencia de Estudiantes, Madrid, Spain, Nov. 17-19 2003. [http://boinc.berkeley.edu/boinc2.pdf link]</ref>. The end users machines can be simply used as passive storage devices, where the local, publicly owned or ISP controlled proxy server decided what data existed where and could point users to other users to satisfy web requests. On the other hand, the users' machines could be active participants in the caching, receiving their user's requests and actually deciding what other users to contact to try and retrieve the data. In such a situation, any privacy concerns could be mediated by the local proxy server. It has been shown that local, peer-assisted data delivery solutions can remove a significant amount of network traffic currently done at the ISP level while also providing a noticeable performance increase <ref name="p2p">Thomas Karagiannis, Pablo Rodriguez and Konstantina Papagiannaki. Should Internet Service Providers fear peer-assisted content distribution? In Proceedings of the 5th ACM SIGCOMM conference on Internet Measurement (IMC '05). USENIX Association, Berkeley, CA, USA, 6-6. [http://portal.acm.org/citation.cfm?id=1251086.1251092 link]</ref>. | |||
Another option to allow for lower level distributed caching would be to extend the capabilities of the currently used cable or DSL modems. These new modems would have a relatively small amount of storage and computing power. This would remove the burden from the users' computers and allow a special purpose device to take over. Since the majority of users would not reset their modems as often as they shut down their computers, this would allow for greater reliability than the previously described solution. As in the previous example, these devices could either participate as active or passive players in the overall web caching scheme, a detail that does not need to be decided upon before hand and can actually vary from neighbourhood to neighbourhood or even house to house depending on the given circumstances. Although this would entail an additional investment on the part of the user, with ever decreasing hardware costs a relatively powerful machine could be built, especially on a large scale, relatively inexpensively. Once devices like this became commonplace, it would allow for the storage and computational power of the local web cache to scale as more users joined, allowing for the overall capacity to grow linearly with the demand. | |||
===Extending Web Caching to Full Web Application Caching=== | |||
If web caching were to become a public good and the underlying infrastructure described above was put in place, an opportunity to extend the classic definition of web caching would be possible. This new infrastructure could allow for the caching of web code on top of the static data that web caches currently hold. This would, in essence, allow for popular websites to "live" closer to the users that actually use the websites while using the locally cached data as well. In this type of system, the web developers would develop their applications to make use of the available resources and then maintain a minimal back end system to essentially tie everything together. There would no longer be a need to maintain enormous data centers to store all of the users' data and the code to run their applications. This would mean that the prospect of a small number of people with a very good idea could realistically come together to implement their application. The more popular their application became would no longer necessarily dramatically increase their hardware and support costs as it does today. Essentially this would allow anyone to write the next Facebook or Google without needing enormous amount of financial or physical resources that face modern day corporations. | |||
Another added benefit of this new definition of web caching is that it would allow for individual fragments of the Internet who, for one reason or another, become disconnected from the Internet as a whole to still communicate through the cached web applications and data that it has stored in it's web caches. This would mean that a region that is undergoing some major natural catastrophe such as an earthquake or even in circumstances where a section of the Internet is willfully disconnected from the rest of the Internet would still be able to communicate internally through the use of popular social networking websites such as Facebook as well as have access to all of the web data that is currently being stored in all of the reachable caches. This added robustness would certainly reduce the amount of panic inherent to these kinds of situations. | |||
===Advantages of Web Caching as a Public Good=== | |||
The following list is a summary of the major advantages of having web caching as a public good. | |||
*'''Further reduction of wasted bandwidth.''' | |||
With the standardized, hierarchical/distributed hybrid web caches proposed, the amount of wasted bandwidth in the form of unneeded web requests being sent out from the caches to the originating web servers will go down. Currently web caches implemented by different ISPs do not work together, so uncached web requests from users of one ISP that might be able to be satisfied by caches implemented by another local ISP must be retrieved all the way from the originating web server. With the proposed architecture, these caches could then work together, essentially multiplying the available cache size. This would result in these types of web requests being satisfied locally and reducing the amount of long distance web requests significantly. | |||
*'''Further reduction of latency and improved end user experience.''' | |||
As noted above, with the massive increase in distributed local caching, the chances that users' web requests can be satisfied are significantly improved. This then leads to a reduction in wait time for the end users, improving their overall web experience. This would be especially noticed if the lowest level of the caching hierarchy proposed above (the distributed, neighbourhood-level cache) was implemented. Web requests that could be satisfied within a user's immediate neighbourhood would be incredibly fast and would translate into an unparalleled web experience. For requests that must travel outside of the local caches, the existence of the standardized caching hierarchy would mean that more requests would be satisfied by the regional, provincial or national level caches than having to be sent all the way to the original web server. | |||
*'''Added Reliability/Robustness''' | |||
The fact that the proposed web caching strategy implements distributed caching at each level of the caching hierarchy injects an added level of reliability that isn't present in modern web caching. Since it is likely that the storage space of the distributed caches at each level will be larger than the amount that can be efficiently used as a cache, this would allow for data duplication. This duplication would allow for fault tolerance and the caches could be implemented in such a way as to redistribute the remaining data in the event that a single cache went down. These proposed caches would also drastically improve reliability, especially with the full web application caching. Now in the event that a single region is disconnected from the Internet, users would still be able to use popular web applications and data that are cached until they are reconnected. Web application programmers could take these scenarios into account and sync the local data with their back-end servers once a connection is reestablished, resulting in unprecedented reliability with the Internet's most popular web sites and applications. | |||
*'''Inherently guaranteed basic level of service.''' | |||
As mentioned in the previous point, the fact that full web applications would now be able to be cached would mean that any user would have full access to any web application or any data that is currently 'living' on any reachable cache. This means that if a region is disconnected, all users in that region would be able to use any application or data that is stored in any cache anywhere in that region. This basic level of service is non-existent with modern web caches. | |||
*'''Control in the hands of the users.''' | |||
As with any entity that is put into the public hands, private interests in how web caches are controlled would now be a secondary concern to those of the public. This means that any innovation in web caching along with new technologies to improve how web caching is done can be implemented if it is in the best interests of the public. Currently we must rely on these upgrades being a worthy investment for a given ISP, regardless of how much upgrades would improve overall performance. | |||
*'''Incrementally deployable.''' | |||
Lastly, the proposed web caching scheme, both software and infrastructure wise, are incrementally deployable. It is imagined that a scheme similar to the one proposed would most likely start off in a few selected cities, maybe with a few neighbourhoods participating in local neighbourhood caches. Once these become popular, more could start up in other urban areas whouch could then be joined together by regional and provincial level caches. An important aspect of the proposed caches is that users have an incentive to join (the previously mentioned benefits) and, as more users/regions joined, the overall system would only get better. | |||
===Disadvantages of Web Caching as a Public Good=== | |||
Along with the numerous benefits that making web caching a public good would produce, there would also be some significant disadvantages discussed below. | |||
*'''Infrastructure costs.''' | |||
First and foremost, it is certain that for the proposed web caching infrastructure to be put into place, even if it were to incorporate the already in place ISP caches, that there would be significant infrastructure costs. Although there may be a considerable amount of infrastructure available in large urban centers, it is likely that rural regions as well as caches in the higher levels of the hierarchy (provincial, national, etc) will need a sizable investment to produce the envisioned system. | |||
*'''Support costs.''' | |||
On top of the infrastructure costs would be the support costs. The proposed infrastructure would take a massive amount of work to either convert the old ISP caches or to setup the new caches. This setup would include the initial installation of the software as well as rigorous testing, which would require a significant number of man-hours. Once the systems are setup, they would have to be closely monitored and tuned as conditions changed in the regions that the given cache served. On top of this, the caches would require routine maintenance and service from specially trained individuals. Overall, the support costs alone will be quite substantial. | |||
* | *'''Personal costs.''' | ||
Lastly, the individual users would also incur a cost. Firstly they would most likely have to pay for both the infrastructure and support costs in a form of a tax or possible through usage fees. Secondly, if the low level neighbourhood caches were implemented, individual users would with have to provide CPU cycles and storage space (which, in itself is a cost) or will have to purchase specialized hardware (eg. a new modem as proposed) to be able to participate in the local cache. | |||
==DNS | ==DNS== | ||
With the Internet’s vast ubiquity, as mentioned in the previous sections, there is a requirement that a convenient method be in place to refer to different resources out there within this distributed system. DNS (Domain Name System) aims to aid this process, by allowing resources be referred to by name, rather than a series of numbers. DNS can be considered as the "switchboard" of the Internet. To make the system as a whole work in user friendly manner, a user or application needs only supply a name, and the service returns the IP address number and hostname. It is essential for the functionality and usability of the Internet to have this service.<ref name="DNS4">Wikipedia/Domain Name System. Accessed Mach 10, 2011 [http://en.wikipedia.org/wiki/Domain_Name_System link]</ref> | |||
DNS (Domain Name System) | |||
Given its necessity, the system is a good candidate to be considered a public good. | For the sake of this paper, many technical details are avoided and a more simplistic, higher level view of the system is taken on. It is considered for the purposes of this discussion as a static, distributed tree that returns an IP address when queried with a domain name. | ||
Given its necessity, the system is a good candidate to be considered a public good. The current provider of the service falls under the responsibility of an individual user's Internet Service Provider (ISP). A user's ISP maintains the database or tree of names to IP addresses for their users to access. | |||
===Implementation Overview=== | ===Implementation Overview=== | ||
For | From a user’s perspective, there are two categories of options when it comes to using DNS: | ||
====ISP==== | |||
For a standard user, an ISP takes care of the DNS service. It is understood by the users that all Internet requests can be filtered or redirected as the ISP sees fit. For example, two of Canada's biggest providers, Bell Canada and Rogers Communications, offer advertising-based redirects when and if a user seeks a non-existent URL. This can be seen as helpful (in the event of typos) or a nuisance (suggestions based on advertising).<ref name="DNS1">Michael Geist. Rogers Implements New Approach On Failed DNS Lookups. July 18, 2008 - Accessed March 15, 2011[http://www.michaelgeist.ca/content/view/3199/1/ link]</ref><ref name="DNS2">Eric Bangeman. Rogers latest ISP to "help" customers with DNS redirects. arstechnica.com. July 2008 - Accessed March 15, 2011[http://arstechnica.com/old/content/2008/07/rogers-latest-isp-to-help-customers-with-dns-redirects.ars link]</ref><ref name="DNS3">Bell Starts Hijacking NX Domain Queries. Slashdot.org. August 2009 - Accessed March 12, 2011[http://tech.slashdot.org/story/09/08/04/1512248/Bell-Starts-Hijacking-NX-Domain-Queries link]</ref> | |||
====Alternative/Public==== | |||
More | More knowledgeable users can configure a setup where their DNS requests are processed via any number of alternative options such as Google's public DNS project<ref name="GDNS">Google Public DNS [http://code.google.com/speed/public-dns/ link]</ref> or OpenDNS<ref name="openDNS">OpenDNS [http://www.opendns.com/ link]</ref>. This can be a healthy approach to avoid the ISP issues, but still imparts significant trust on another corporation or "good Samaritans" in a public community. | ||
== | Issues arise when considering user privacy though. In the case of Google, there is reason to consider how Google will end up treating and using the information it gains access to, even given a clean track record, when it comes to providing free applications and services to users.<ref name ="DNS5">JR Raphael. Google Public DNS: Good for privacy? PCWorld.com. December 2009 - Accessed March 2011[http://features.techworld.com/networking/3208133/google-public-dns-good-for-privacy/ link]</ref> Google would now have deep access to user behaviour in being able to determine every single thing that is being sought out.<ref name="DNS6">David Coursey. Google Public DNS: Wonderful Freebie or Big New Menace? PCWorld.com. December 2009. - Accessed March 2011[http://www.pcworld.com/businesscenter/article/183650/google_public_dns_wonderful_freebie_or_big_new_menace.html link]</ref>. Resource and maintenance issues need to be considered as well for any "community-based" project. As strong as user generated communities can be at providing and generating ample content, it is difficult to imagine this large responsibility lying on the back of these "good Samaritans." The configuration may also demand a fair bit of the end user as local DNS settings may have to be changed frequently to keep up with changes as they occur.<ref name="DNS7">Free Fast Public DNS Servers List - Accessed March 2011[http://theos.in/windows-xp/free-fast-public-dns-server-list/ link]</ref> | ||
====Implementation Issues==== | |||
While the system is functional for what the majority of users and applications require, there are some problems that arise with the current implementations. These issues arise around bottlenecks, update propagation, attack resiliency and general performance. Before any replacement system is to be considered, these issues need to be improved upon. | |||
* | *'''Bottlenecks''' | ||
The current system is susceptible to bottleneck effects due to a low number of servers to be accessed by many users. For example, Bell Canada customers are served by two servers for the entire country for this service. Just as web caching has been shown in a previous section to improve general browsing and decrease latency, the same concept can be used for DNS lookups. | |||
The small number of servers results in affecting the attack resiliency as well, since these servers represent single points of failure. | |||
* | *'''Update Propagation''' | ||
Any change to a domain’s nameserver can take up to 48 hours to propagate across the Internet. DNS servers around the world have a static schedule for updating their records and, when considering caching, this period is required to get the changes across. | |||
=General Public Goods= | *'''Attack Resiliency''' | ||
*robustness | The single points of failure, indicated by the bottleneck issue, make the entire system highly susceptible to Denial of Service (DoS) attacks. Malicious users can target the limited servers to severely cramp Internet traffic at any time. Measures are in place to prevent this kind of attack, however, like anything security based, it requires constant monitoring and changes in approach as malicious users evolve their techniques. | ||
*basic | |||
* | *'''Performance''' | ||
* | |||
Processing power will always improve, but the combination of the all the factors mentioned above leaves much improvement in regards to performance and robustness. | |||
===DNS Evolution=== | |||
Caching is a major aspect in the improvements that lay ahead of DNS performance. DNS caching has become a major aspect to improving performance by reducing latency much like web caching provides for regular content browsing. DNS caches could be contained within the Web Caching Schemes presented in the previous section. The hierarchical structure described can function equally well for DNS purposes. Ideally, the DNS cache would essentially piggyback at each level of the web cache, thereby locally providing content in a somewhat democratic fashion; users are able to dictate what sites are loaded quickly simply by visiting them. | |||
Research is being done on improving the performance, attack resiliency, bottleneck prevention and update propagation issues that hinder the legacy DNS deployment, even if it is aided by caching. One candidate as a next generation naming system, actively being researched at Cornell University, is entitled Cooperative Domain Name System (CoDoNS).<ref name="CoDoNS">Venugopalan Ramasubramanian and Emin Gün Sirer. 2004. The design and implementation of a next generation name service for the Internet. SIGCOMM Comput. Commun. Rev. 34, 4 (August 2004), 331-342. DOI=10.1145/1030194.1015504 http://doi.acm.org/10.1145/1030194.1015504. Accessed March 2011 [http://conferences.sigcomm.org/sigcomm/2004/papers/p292-ramasubramanian1111.pdf link]</ref>. Through a structure based on caching and peer to peer distribution, the system boasts an improvement on all the factors indicated above. It also adds the benefit that it is incrementally deployable which is a very important point when it comes to upgrading any part of a complex, distributed system like the Internet. Due to the high-level nature of the discussion of this report, technical specifications will be avoided in favour of looking at the role of DNS as a whole for its use as a public good. In essence, the static DNS tree is decentralized and distributed across the network with this implementation. This removes the issues of bottlenecks and increases resiliency against attack as the single points of failure have been removed. | |||
===DNS as a Public Good=== | |||
The essential nature of DNS makes it a strong candidate to be a public good. The fashion in which traffic is directed on the Internet, whether user-based or application-based, requires the use of a naming service. Without a functional service, the bulk of Internet traffic would falter as it would not know where to go. ISPs and alternative services have provided a strong framework thus far, however the interference issues imposed by the ISPs and the privacy concerns brought up by some of the alternative services indicate the ideal scenario lies within public hands. Regardless of its implementation, it is a service that is required to be both reliable and trusted. A user base is dependent on some form of trusted source, whether it is a governed initiative, a corporately controlled process, or user contributed service. Having the DNS in public hands will ensure this reliable service. If the public is also in control of web caching as well, it can be incrementally deployed and rolled out as a piggyback to that scenario. | |||
===Advantages of DNS as a Public Good=== | |||
*'''Reliability/Trust Solved''' | |||
With this public’s best interest in maintaining this service, the reliability and trust issue is satisfied. Users must trust some entity for the service, so it is essential that this entity have the public’s best intentions in mind. Misinformation and misdirection will be averted by assuming trust in whatever public authority applies. | |||
*'''Next Generation Uptake''' | |||
When it comes to implementing any sort of next generation service or upgrade, it will be done when deemed most ideal for the public. The incremental deployment of the CoDoNS service | |||
*'''Improved Robustness''' | |||
A DNS cache can be implemented hierarchically in an effort to reduce latency, wasted bandwidth and enhanced reliability for DNS lookups. The cache ends up being democratized as users only need to use the sites as they do resulting in them appearing higher in the cache for rapid lookup. | |||
*'''Universal basic level of service''' | |||
When combined with caching and a physical network infrastructure, localized systems could function as pockets of the Internet in the event of a network partition. | |||
===Disadvantages of DNS as a Public Good=== | |||
As with the other potential public good, transitioning DNS into the public hands also has it's disadvantages. They are briefly described below. | |||
*'''Privacy''' | |||
The DNS governing authority will have the capability to observe and even log user behaviour. This is a major issue if the authority is not trustworthy, so it is required that any such orientation work in concert with some form of privacy commission. | |||
*'''Cost''' | |||
Maintaining and acquiring or mandating the current system will impose a financial burden on the public, as any good will that is brought to the hands of the public. | |||
*'''Next Generation Implementations''' | |||
It is possible that private corporations or independent organizations would implement newer schemas sooner than some form of public authority, given less overhead or caution when it comes to decision making. Users may miss out on the newest services available as the authority evaluates any upgrade options. | |||
=General Public Goods and the Internet= | |||
After analyzing the proposed candidates for public goods with respect to the Internet, we identified many qualities that these entities had in common. Building from these qualities, we believe that the following list can be used as a set of basic criteria that a given aspect of the Internet should meet before being nominated as a candidate for becoming a public good. | |||
* '''Essential Component of the Internet''' | |||
For an aspect of the Internet to become a public good, it should be an aspect that is fundamental to the overall functionality of the Internet as a whole. If this is not the case, then the public could start owning aspects that are not permanent and will become obsolete quickly. This will then mean that aspects of the Internet will cycle through the public's hands very quickly, which would end up being very expensive. In general, novel aspects of the Internet should be left in private hands and only after these aspects have proven themselves to be vital should they be looked as a potential public good. | |||
* '''Adds Robustness and Reliability''' | |||
Since the Internet itself is a huge, distributed system, robustness and reliability are key. If transitioning an aspect of the internet into the public's hands can improve this, it will improve the overall effectiveness of the Internet as a whole. | |||
* '''Ensure a Basic Level of Service''' | |||
Since public goods are defined to be something that everyone should have access to and something that is deemed essential, ensuring a basic level of service for users for a given Internet public good is mandatory. If an aspect of the Internet cannot be given guaranteed access to all of the users in its reach, then it should not be considered a public good, by definition. | |||
* '''Improve Performance''' | |||
Performance is always a key metric when discussing any distributed system and it is a key concern here as well. Any potential public good should provide some kind of performance improvement, or there may be no real point in making it a public good. | |||
* '''Makes the User Experience a Priority''' | |||
With all things considered, the end user's experience is one of the most important factors when thinking about public goods on the Internet. Currently many of the aspects of the Internet that would make good candidates for public goods have a large impact on the end user's experience. The parties that control these resources have their own priorities and sometimes are at odds with what would be best for the user. | |||
* '''Incrementally Deployable''' | |||
As in any distributed system, any changes or improvements must be incrementally deployable. Generally speaking, these public goods should be able to be trialed in certain locations before they are widely introduced. This allows for these new systems to grow dynamically, starting in areas that need them the most and ending up in more remote regions. | |||
=Conclusion= | |||
As we know, the Internet is becoming a ubiquitous entity in modern day society and access to it is becoming more and more essential as time goes by. It is due to this necessity that people will have a much greater incentive in owning and controlling how the Internet works, basically transitioning the Internet into a public good. However, there are significant portions of the Internet that would be undesirable or unlikely to be held by the public. Many modern businesses rely on the Internet today for a significant portion of their revenue and are actually responsible for a lot of innovation and evolution within the Internet itself. For these reasons it makes most sense to bring portions of the Internet under the public's control. | |||
We first focused on which aspects of the Internet to convert into public goods by examining three ideal candidates: physical infrastructure, web caching and DNS. From examining these entities, a list of common criteria that could be used to identify future public goods on the Internet were exposed. By using this set of criteria one would be able to successfully identify future public goods candidates. Additional benefits of bringing aspects of the Internet under the public's control is the cumulatively beneficial effects that would occur. Although proposed public goods would have to adhere to the criteria listed above, they would often do so in different ways. For instance, the basic level of service provided by the physical infrastructure as a public good is significantly different than the basic level of service provided by the proposed web caching scheme. On top of this, the performance improvements provided by one public good would most most likely increase due to the performance gains introduced by other, new public goods. Generally speaking, the more aspects of the Internet that fulfill the above criteria that are converted into public goods will only increase the more we will notice each individual advantage. On top of the cumulative benefits that public goods on the Internet provide, they would also allow for new technologies to emerge. Putting these resources into the public's hands would allow everyday people to have easier access to them then ever before. One example given was with the full web application caching discussed earlier. This type of open access to computing resources would allow people with great ideas to implement, test and deploy them to the world wide web in a way that was never possible before. Another opportunity lies in a simultaneous deployment of DNS and web caching. The hierarchical nature of DNS caching coincides ideally with that of web caching, thus providing a combined benefit for the public good. | |||
Moving into the future, the Internet is going to play a larger and larger role in our day-to-day lives. For this reason alone it will be vital to ensure that the Internet itself will evolve with its changing demands and for the fundamental aspects of the Internet to be secured. The best and only true way of doing this will be to give the users the overall control. | |||
=References= | =References= | ||
<references/> | <references/> | ||
=Miscellaneous= | |||
==Members== | |||
*Lester Mundt | |||
*Fahim Rahman | |||
*Andrew Schoenrock | |||
==Presentation== | |||
[https://docs.google.com/present/edit?id=0AYULfbx_Ww_hZDZ3YnNicF8yZjR2Yng2YzI&hl=en&authkey=CNqB9o0G As presented April 5, 2011] |
Latest revision as of 01:49, 13 April 2011
Abstract
Public goods are resources that are held in common for the benefit of all within the society. The Internet is now such an important piece of our economy, culture, communication and entertainment that the technologies that enable it should be placed in trust for benefit of the entire population. In this paper we establish a model to help define public goods as they relate to the access and use of the Internet. Using three examples of public goods candidates (physical infrastructure, web caching and DNS) the viability and benefits of this conversion will be illustrated. Finally, criteria to define other candidates for public goods will be established.
Introduction
As societies have developed, communities have recognized the need for public goods. From simple shepherds to colonial empires to current democratic superpowers, all societies have recognized a need for and have identified public goods which can be defined as “resources that are held in common in the sense than no one exercises any property right with respect to these resources or the exclusive right to choose whether the resource is made available to others”<ref name="wirelessRural">David Johnson, Kobus Roux. Building Rural Wireless Networks: Lessons Learnt and Future Directions. WINS-DR, 5. September 2008. DOI=10.1145/1410064.1410068 link</ref>. These public goods provide a noticeable benefit to all of the individuals composing the society. Generally speaking, these entities are deemed to be essential, beneficial and non-excludable to individuals and the public as a whole. Roads, parks, military, police, water and fresh air are all example of public goods. We propose to add the Internet to this long list. The Internet is becoming a vital tool in nearly everyone's life, playing a massive part in modern business, education, communication and entertainment. As we move into the future, access to the Internet for individuals worldwide is quickly becoming essential. While it might be nice to identify the Internet as a public good, identifying how to convert it to one is a more difficult process. The Internet is a system of heterogenous computers, hardware and runs using an even more diverse set of protocols and software. This system is much too large to be effectively managed by a single governing body and there are certain aspects of the Internet (ie. business entities) that should not be publicly controlled. With this in mind, we have tried to answer the following questions:
- Which aspects of the Internet should be controlled by the public?
- How are these aspects identified?
- Are these aspects absolutely fundamental to the functionality of the Internet?
- What are the problems with how these aspects are controlled today?
- What are the advantages and disadvantages of having this aspect of the Internet as a public good?
We have identified three key pieces of the Internet that are excellent candidates to become public goods. We propose how these aspects could be removed from being solely in the hands of private companies and converted to a public good. These are the physical infrastructure of the Internet, web caching and DNS. We chose these three pieces based on them being absolutely essential to the current operation of the Internet. After doing this, and examining the benefits of converting these three pieces of the Internet into public goods, we added another key question to be answered to the list above:
- What qualities do these potential public goods have in common?
Upon analysis, common benefits were identified and we believe these can provide a base criteria that can be used to identify other portions of the Internet as candidates for public goods.
Candidates for Public Goods
In the following sections, a few key examples of aspects of the Internet that would be excellent candidates for becoming public goods will be presented.
Physical Infrastructure
As the ubiquitous nature of the Internet has unfolded, people's dependence on it has increased. While the Internet's roots exist in a serendipitous alignment of academic and military interests, the Internet quickly became a provider of entertainment and communication. Today the Internet has enmeshed itself in the fabric of society and is a part of many people's daily ritual. For many, the Internet is as important as roads for conducting their daily activities, yet while roads are not privately owned the infrastructure of the Internet lies in the hands of private companies.
The private companies that currently own the infrastructure of the Internet are referred to as ISPs (Internet Service Providers). These are the entities that any user must pay to gain access to the Internet currently. For the purposes of this paper, we will consider the servers, routers, switches, hubs, wires, fiber, and all other hardware that exists outside of the consumers own networks to be the infrastructure of the Internet and will not differentiate between these technologies.
Problems
A variety of problems arise with the ISPs owning the infrastructure of the Internet. These companies make decisions based on their own profit margins and with little regard for the public good. One problem currently experienced is packet shaping<ref name="wikipediaTrafficShaping"> Wikipedia/Traffic Shaping. visited April 2011. last modified March 2011. link</ref>. Packet shaping is currently used by ISPs to control the speed of certain kinds of traffic, thus avoiding congestion. It does this by assigning priorities to packets using various criteria decided by the ISPs. While it is good for everyone with the technology implemented by private companies, we don't know what protocols are limited, by how much and if it's only done at peak times. We also don't know if this technology is deployed to just decrease the bandwidth consumption so the company can avoid upgrading the infrastructure. Another potential problem is the ISPs giving preferential treatment to websites or webservices that have paid the ISP. This could be implemented by slowing our disallowing traffic to competitors. While this hasn't been proposed by ISPs, it has been fought against by the movement known as Net Neutrality<ref name="wikipediaNetNeutrality">Wikipedia/NetNeutrality. visited April 2011. last modified April 2011. link</ref>. More recently we have become acutely aware that ISPs provide convenient choke points. In Egypt during an uprising, the incumbent government shutdown the population's access to the Internet by simply forcing the ISPs to shutdown. This is not a conclusive list of weaknesses that private ownership of the infrastructure presents. There are a host of other issues, but these few are cause for concern.
Alternatives
With the current importance of the Internet, an alternative to private ownership of the Internet's infrastructure needs to be found. Here, we provide two. The first is to have the government legislate the behaviour of the ISPs which is currently our only mechanism. This would transform the infrastructure into a virtual public good by legislating the behaviours of the ISPs to be in accordance with the best interest of the public. There are problems in that politician's have their own goals and can be influenced unduly by private industries though lobbyists or other means. Additionally, the government is slow to act and this could allow disruptive and unfair behaviour by the ISPs to affect the population until the government passes a law preventing the current behaviour. These reasons make this option less than compelling. The other option is for the public to actually own the infrastructure of the Internet. We are not proposing that the government take the infrastructure from the ISPs, but that it creates its own with the help of the people. This new infrastructure would coexist with the current ISPs and operate in parallel. Conceivably the speed of this new infrastructure would not be as fast as the incumbents, and people could still turn to the ISPs if they desire higher speeds. In a structure analogous to the way maintenance of our roadways is organized, this would be adopted at all levels of government (municipal, provincial and federal). This stratification allows incremental deployment as individual urban centres acting at the municipal level could start with localized infrastructure. The provinces could eventually provide infrastructure to connect urban centres together and the federal government would eventually link together the provinces and other countries. Below we will describe one possible implementation of such an infrastructure. In doing so we can see what the concrete benefits might be in addition to reducing dependency on private companies for infrastructure that in all respects should be a public good.
Implementation Description
The implementation that we chose to explore for the purposes of this paper is a wireless mesh. The mesh structure would exist in conjunction with the current infrastructure of the ISPs and, as such, it can be envisioned as an omnipresent overlay that provides alternative transportation for Internet traffic. At the simplest level this mesh would be composed of a number of fairly static nodes with high availability consisting of users' home computers. In addition, there would be a large number of highly mobile nodes that would move and provide variable availability consisting of users' laptop and Internet aware personal devices. The nodes would use algorithms to elect members to act as super nodes responsible for routing information. While maintaining the accuracy of routing information is a significant challenge, research has been done that provides efficient mechanisms for doing this<ref name="wirelessDart">Jakob Eriksson, Michalis Faloutsos, Srikanth V. Krishnamurthy. DART: Dynamic Address RouTing for Scalable Ad Hoc and Mesh Networks. IEEE/ACM TRANSACTIONS ON NETWORKING, January 2006. DOI=10.1109/TNET.2006.890092 link</ref><ref name="wirelessFlooding"> Pengfei Di, Thomas Fuhrman. Scalable Landmark Flooding - A Scalable Routing Protocol for WSNs. CoNEXT Student Workshop’09, December 2009. DOI=10.1145/1658997.1658999 link</ref>. If higher speeds were desired, the urban centres the mesh is located in could provide a wired infrastructure with frequent wireless access points servicing 'neighborhoods'<ref name="wirelessUrban"/>. When the mesh density gets too low, presumably between urban centres, faster backbones would be added to connect these urban centres. Conceivably the mesh might also extend to more distant locals, but performance would be severely impacted with very few nodes available to provide routing. Finally, at the highest level, different countries could connect their meshes together. As mentioned previously, these different levels of connection segment along in parallel with the levels of government that we have in Canada. As wireless technology improves the speed and coverage of the mesh will improve as well and, as the level of support increases, the publicly offered speed could increase as well. Potentially the privately owned ISP might even disappear entirely.
Advantages of Internet Infrastructure as a Public Good
The following list is a summary of the major advantages of having Internet infrastructure as a public good.
- Increase in speed
As envisioned, the publicly owned infrastructure would offload basic services such as email, instant messaging, and other similar services more tolerant of lower speeds from the conventional infrastructure. This would free up bandwidth on the privately owned ISPs. This in turn would speed up access for members of the population who desire higher speed and the services dependent on it, such as video streaming.
- Increased robustness
A mesh also provides significant increases in robustness. A mesh presents not a single point of connection, so it can not be disabled as easily as current ISPs can be. Even if a portion of the mesh was partitioned from the Internet, it would continue to function within its partition. Considering the significant portion of the population that use the Internet to communicate, this could be a significant benefit in a disaster scenario. In such a scenario it is likely that other forms of communication relying on centralized infrastructure would fail while the mesh would continue to work.
- Universally provide a basic level of service
The publicly owned infrastructure would provide a basic level of service for everyone. This could negate the need for ISPs for some users whose primary use of the Internet might be surfing or visiting low-bandwidth websites. This could also help make Internet access available for fiscally disadvantaged members of the population as well. Finally, a mesh topology has the potential to extend Internet coverage to low density rural areas, as it has been used for this purpose in developing nations<ref name="wirelessRural"/>. Canada, due to our low population density, has areas that draw a parallel to these rural areas where the technology has been used.
- Incrementally deployable
A mesh supports incremental roll out. It could start in a single neighborhood using the wireless of the neighbours to create a small network. As the mesh increases in size, the mesh can be self organizing with the composing nodes being elected to more prominent roles if they have sufficient speed. The municipality could support this topology by adding wireless access points that could be attached to a higher speed wired infrastructure of the urban centre. The density of connection points has been studied and there is a relationship with this to the potential speeds that are sustainable by the mesh, again allowing incremental deployment but in the dimension of speed<ref name="wirelessUrban">Vinay Sridhara, Jonghyun Kim, Stephan Bohacek. Performance of Urban Mesh Networks∗. MSWiM’05, October 2005. DOI=10.1145/1089444.1089492 link</ref>.
Disadvantages of Internet Infrastructure as a Public Good
While we feel the benefits outweigh the drawbacks, a summary of the disadvantages of making the infrastructure of the Internet a public good are presented here.
- Public costs
Advocating that various levels of government participate in the provision of some infrastructure would necessitate an increase in taxes. Since the support would be at all levels of government, the taxes would be distributed at all levels becoming almost imperceptible.
- Software Changes
To fully take advantage of the two level system of Internet access that the mesh overlay provides, some software would need to be changed. An example of this would be email which is normally considered a low bandwidth service. If a large attachment were present it would make sense to take advantage of the faster network connection to download it. Thus the software would have to be aware of the availability and the capability of the two networks and switch between them in specific cases.
- Personal costs
Implementing a mesh, where the population provides some of the nodes active in routing and otherwise maintaining the network, incurs some cost. This could be in the form of used CPU cycles and additional power usage to increase node availability. Alternatively, a dedicated piece of hardware in the form of a wireless router with additional computational power could be a mandatory purchase.
Web Caching
In general, the idea behind web caching is the temporary storage of web objects that can be used later without having to retrieve the data from the original server again. When a new web request is made, the resulting data is stored in a cache after being delivered to the end user. If another user requests the same data, barring certain conditions, the cached data is returned to the user and the request is not passed on to the originating web server. There are many aspects of many websites that do not change very often (ie. logos, static text, pictures, other multimedia) and hence are good candidates for caching <ref name="visolve">Optimized Bandwidth + Secured Access = Accelerated Data Delivery, Web Caching - A cost effective approach for organizations to address all types of bandwidth management challenges. A ViSolve White Paper. March 2009. link</ref>. Web caches can either exist on the end user's machine (in the browser, for instance) or can exist somewhere between the user the servers they wish to communicate with on what is known as a proxy server <ref name="webcaching.com"> Web Caching Overview. visited March 2011. link </ref>. Internet Service Providers have a key interest in web caching and in most cases implement their own caches <ref name="visolve"/><ref name="cisco">Geoff Huston. Web Caching. The Internet Protocol Journal Volume 2, No. 3. 2000. link</ref>. There are a variety of incentives for entities on the Internet, including ISPs, to use web caches. In general, these advantages can be summarized as follows:
- Reduced Bandwidth Usage
One of the main incentives for ISPs to use web caching is the reduction of outgoing web traffic which results in a reduction of overall bandwidth usage <ref name="visolve"/><ref name="webcaching.com"/><ref name="cisco"/><ref name="survey">Jia Wang. A survey of web caching schemes for the Internet. SIGCOMM Comput. Commun. Rev. 29, 5 (October 1999), 36-46. DOI=10.1145/505696.505701 link</ref><ref name="docforge"> Web application/Caching. visited March 2011. last modified September 2010. link</ref>. For a typical ISP, web based traffic can account for upwards of 70% of the total bandwidth used and, of this web based traffic, the level of similarity of requests can be as high as 50%<ref name="cisco"/>. It is also true that, for many ISPs, transmission costs dominate their overall operating costs and any reduction in requests that must be satisfied outside of the ISP are beneficial<ref name="cisco"/>.
- Improved End User Experience
Another benefit of web caching is the apparent reduction in latency to the end user <ref name="visolve"/><ref name="webcaching.com"/><ref name="survey"/><ref name="docforge"/>. Instead of web requests traveling all the way to the desired web server, these requests are intercepted by a proxy server who can return a cached version of the requested data. The fact that the total distance that the data had to travel is cut down significantly (as web caches are intended to be relatively close to the end user), the time to deliver the content to the end user can also be cut down significantly. It has been found that small performance improvements made by an ISP through the use of caching can result in a significantly better end user experience<ref name="docforge"/>.
- Reduced Web Server Load
Web servers providing popular data also benefit from web caching. Popular websites translate into a high number of simultaneous connections and a high bandwidth usage by the providing web server <ref name="cisco"/><ref name="survey"/>. A web cache placed in front of a given web server can reduce the number of connections that need to be passed through by providing data it has stored. This can translate into reduced hardware and support costs<ref name="docforge"/>.
Additional advantages include the added robustness that a web cache adds to the Internet, allowing users to access documents even if the supplying web server is down as well as allowing organizations to analyze Internet usage patterns <ref name="survey"/>.
Web Caching Schemes
Since web caching has been identified as significant asset to the Internet as a whole, it has received its fair share of research. Different approaches to web caching have been proposed, many of which utilized distributed or hierarchical elements. These approaches will not be looked into in depth here as they will be considered merely implementation details. A survey of web caching schemes <ref name="survey"/> identified the main architectures that a large scale web cache can have.
One of these is a hierarchical architecture. In such an architecture, web caches are placed at different levels of a network, starting with the client's machine, followed by a local, then regional and then finally a national level cache. In this type of system, web requests are first sent to the lowest level cache and passed along to higher levels until the request can be satisfied. Once it is satisfied, the data travels back down the hierarchy, leaving a copy at each of the lower levels. Hierarchical web caches benefit from their efficient use of bandwidth by allowing popular web sites to propagate towards the demand.
Another potential architecture is distributed web caching. In such a structure there is only one level of cache that cooperates with each other to satisfy web requests. To do this, each cache retains meta-data about the content of all of the other caches it cooperates with and uses it to fulfill web requests it receives from clients. This web caching scheme allows for better load balancing as well as introduces fault tolerance that was not available to strictly hierarchical structures. Examples of such systems <ref name="distributed1">Jong Ho Park and Kil To Chong. An Implementation of the Client-Based Distributed Web Caching System. Web Technologies Research and Development - APWeb 2005. Lecture Notes in Computer Science, 2005, Volume 3399/2005, 759-770, DOI: 10.1007/978-3-540-31849-1_73 link</ref><ref name="distributed2"> Sandra G. Dykes, Clinton L. Jeffery, and Samir Das. Taxonomy and Design Analysis for Distributed Web Caching. In Proceedings of the Thirty-second Annual Hawaii International Conference on System Sciences-Volume 8 - Volume 8 (HICSS '99) link 1, link 2</ref> have been implemented and shown to be effective in realistic web traffic scenarios.
Finally, a third option for large scale web caches is a hybrid architecture. In such a system, a hierarchy of caches exists, however there are a number of caches on each level that cooperate with each other in a distributed fashion. This type of system can benefit from the combination of the different advantages that the hierarchical and distributed architectures provide. The Internet Cache Protocol <ref name="icp">D. Wessels and K. Claffy. Internet Cache Protocol (ICP), version 2. RFC 2186. 1997.</ref> can be used to implement such a system where a cache hierarchy exists with a number of individual caches cooperating at each level <ref name="survey"/>.
Web Caching as a Public Good
Web caching is obviously of enormous importance to the efficient functionality of the Internet, and therefore is vitally important to the end users. Web caching ultimately succeeds by keeping relevant data close to the end users. Typically these web caches are currently implemented by ISPs, and they do so because it is in their financial interest and not because it is in the interest of their customers. Obviously their customer's satisfaction is important, but it is not their top priority. Transitioning ISP controlled web caches into a public good would allow for a balance between both the financial and end user experience aspects of web caching. This can be achieved by the government actually taking over the proxy servers that host the web caches or though strict regulations on exactly how web caching should be done. A benefit of this is that it allows for the standardization of web caching on all proxies. This doesn't mean that every web cache needs to be implemented in the exact same way, but it could allow for generic interfaces where web caches of all types could communicate with one another. This would then allow end users who are customers of one ISP to be able to be serviced by web caches that used to be available to customers of other ISPs.
Not only would standardizing web caches at the ISP level allow for these previously private, uncooperative proxies to act more like distributed web caches, it would also allow for a natural hierarchy to be built. This hierarchy would be based on geography, where the ISP level caches would now work together to service a relatively small region, which would then be followed by a level of web caches that would service a larger geographical region, followed by provincial/state level web caches and finally a national level. These of course would all be standardized to allow for regional or provincial caches to serve web requests for users in different regions or provinces. Having formalized and standardized web hierarchies would allow for a reduction in wasted bandwidth and an improved end user experience. This would also remove redundant data stored in caches that previously would not or could not communicate with each other, increasing the overall storage capabilities. This increase in storage would allow for more web data to be stored in more places, which would translate into more robust web caches by becoming more fault tolerant.
Once web caching becomes a public good it would also be in the end user's best interest to participate, if they could. This would essentially mean turning the lowest level of web caching (currently done on a user's machine) into a distributed web cache. This would allow for users to share their cache with each other and allow for the building of neighbourhood specific, ultra fast caches. This could be implemented by each user supplying a small amount of hard drive space as well as some computation cycles, similar to that of BOINC projects<ref name="boinc>David P. Anderson. Public Computing: Reconnecting People to Science. Conference on Shared Knowledge and the Web. Residencia de Estudiantes, Madrid, Spain, Nov. 17-19 2003. link</ref>. The end users machines can be simply used as passive storage devices, where the local, publicly owned or ISP controlled proxy server decided what data existed where and could point users to other users to satisfy web requests. On the other hand, the users' machines could be active participants in the caching, receiving their user's requests and actually deciding what other users to contact to try and retrieve the data. In such a situation, any privacy concerns could be mediated by the local proxy server. It has been shown that local, peer-assisted data delivery solutions can remove a significant amount of network traffic currently done at the ISP level while also providing a noticeable performance increase <ref name="p2p">Thomas Karagiannis, Pablo Rodriguez and Konstantina Papagiannaki. Should Internet Service Providers fear peer-assisted content distribution? In Proceedings of the 5th ACM SIGCOMM conference on Internet Measurement (IMC '05). USENIX Association, Berkeley, CA, USA, 6-6. link</ref>.
Another option to allow for lower level distributed caching would be to extend the capabilities of the currently used cable or DSL modems. These new modems would have a relatively small amount of storage and computing power. This would remove the burden from the users' computers and allow a special purpose device to take over. Since the majority of users would not reset their modems as often as they shut down their computers, this would allow for greater reliability than the previously described solution. As in the previous example, these devices could either participate as active or passive players in the overall web caching scheme, a detail that does not need to be decided upon before hand and can actually vary from neighbourhood to neighbourhood or even house to house depending on the given circumstances. Although this would entail an additional investment on the part of the user, with ever decreasing hardware costs a relatively powerful machine could be built, especially on a large scale, relatively inexpensively. Once devices like this became commonplace, it would allow for the storage and computational power of the local web cache to scale as more users joined, allowing for the overall capacity to grow linearly with the demand.
Extending Web Caching to Full Web Application Caching
If web caching were to become a public good and the underlying infrastructure described above was put in place, an opportunity to extend the classic definition of web caching would be possible. This new infrastructure could allow for the caching of web code on top of the static data that web caches currently hold. This would, in essence, allow for popular websites to "live" closer to the users that actually use the websites while using the locally cached data as well. In this type of system, the web developers would develop their applications to make use of the available resources and then maintain a minimal back end system to essentially tie everything together. There would no longer be a need to maintain enormous data centers to store all of the users' data and the code to run their applications. This would mean that the prospect of a small number of people with a very good idea could realistically come together to implement their application. The more popular their application became would no longer necessarily dramatically increase their hardware and support costs as it does today. Essentially this would allow anyone to write the next Facebook or Google without needing enormous amount of financial or physical resources that face modern day corporations.
Another added benefit of this new definition of web caching is that it would allow for individual fragments of the Internet who, for one reason or another, become disconnected from the Internet as a whole to still communicate through the cached web applications and data that it has stored in it's web caches. This would mean that a region that is undergoing some major natural catastrophe such as an earthquake or even in circumstances where a section of the Internet is willfully disconnected from the rest of the Internet would still be able to communicate internally through the use of popular social networking websites such as Facebook as well as have access to all of the web data that is currently being stored in all of the reachable caches. This added robustness would certainly reduce the amount of panic inherent to these kinds of situations.
Advantages of Web Caching as a Public Good
The following list is a summary of the major advantages of having web caching as a public good.
- Further reduction of wasted bandwidth.
With the standardized, hierarchical/distributed hybrid web caches proposed, the amount of wasted bandwidth in the form of unneeded web requests being sent out from the caches to the originating web servers will go down. Currently web caches implemented by different ISPs do not work together, so uncached web requests from users of one ISP that might be able to be satisfied by caches implemented by another local ISP must be retrieved all the way from the originating web server. With the proposed architecture, these caches could then work together, essentially multiplying the available cache size. This would result in these types of web requests being satisfied locally and reducing the amount of long distance web requests significantly.
- Further reduction of latency and improved end user experience.
As noted above, with the massive increase in distributed local caching, the chances that users' web requests can be satisfied are significantly improved. This then leads to a reduction in wait time for the end users, improving their overall web experience. This would be especially noticed if the lowest level of the caching hierarchy proposed above (the distributed, neighbourhood-level cache) was implemented. Web requests that could be satisfied within a user's immediate neighbourhood would be incredibly fast and would translate into an unparalleled web experience. For requests that must travel outside of the local caches, the existence of the standardized caching hierarchy would mean that more requests would be satisfied by the regional, provincial or national level caches than having to be sent all the way to the original web server.
- Added Reliability/Robustness
The fact that the proposed web caching strategy implements distributed caching at each level of the caching hierarchy injects an added level of reliability that isn't present in modern web caching. Since it is likely that the storage space of the distributed caches at each level will be larger than the amount that can be efficiently used as a cache, this would allow for data duplication. This duplication would allow for fault tolerance and the caches could be implemented in such a way as to redistribute the remaining data in the event that a single cache went down. These proposed caches would also drastically improve reliability, especially with the full web application caching. Now in the event that a single region is disconnected from the Internet, users would still be able to use popular web applications and data that are cached until they are reconnected. Web application programmers could take these scenarios into account and sync the local data with their back-end servers once a connection is reestablished, resulting in unprecedented reliability with the Internet's most popular web sites and applications.
- Inherently guaranteed basic level of service.
As mentioned in the previous point, the fact that full web applications would now be able to be cached would mean that any user would have full access to any web application or any data that is currently 'living' on any reachable cache. This means that if a region is disconnected, all users in that region would be able to use any application or data that is stored in any cache anywhere in that region. This basic level of service is non-existent with modern web caches.
- Control in the hands of the users.
As with any entity that is put into the public hands, private interests in how web caches are controlled would now be a secondary concern to those of the public. This means that any innovation in web caching along with new technologies to improve how web caching is done can be implemented if it is in the best interests of the public. Currently we must rely on these upgrades being a worthy investment for a given ISP, regardless of how much upgrades would improve overall performance.
- Incrementally deployable.
Lastly, the proposed web caching scheme, both software and infrastructure wise, are incrementally deployable. It is imagined that a scheme similar to the one proposed would most likely start off in a few selected cities, maybe with a few neighbourhoods participating in local neighbourhood caches. Once these become popular, more could start up in other urban areas whouch could then be joined together by regional and provincial level caches. An important aspect of the proposed caches is that users have an incentive to join (the previously mentioned benefits) and, as more users/regions joined, the overall system would only get better.
Disadvantages of Web Caching as a Public Good
Along with the numerous benefits that making web caching a public good would produce, there would also be some significant disadvantages discussed below.
- Infrastructure costs.
First and foremost, it is certain that for the proposed web caching infrastructure to be put into place, even if it were to incorporate the already in place ISP caches, that there would be significant infrastructure costs. Although there may be a considerable amount of infrastructure available in large urban centers, it is likely that rural regions as well as caches in the higher levels of the hierarchy (provincial, national, etc) will need a sizable investment to produce the envisioned system.
- Support costs.
On top of the infrastructure costs would be the support costs. The proposed infrastructure would take a massive amount of work to either convert the old ISP caches or to setup the new caches. This setup would include the initial installation of the software as well as rigorous testing, which would require a significant number of man-hours. Once the systems are setup, they would have to be closely monitored and tuned as conditions changed in the regions that the given cache served. On top of this, the caches would require routine maintenance and service from specially trained individuals. Overall, the support costs alone will be quite substantial.
- Personal costs.
Lastly, the individual users would also incur a cost. Firstly they would most likely have to pay for both the infrastructure and support costs in a form of a tax or possible through usage fees. Secondly, if the low level neighbourhood caches were implemented, individual users would with have to provide CPU cycles and storage space (which, in itself is a cost) or will have to purchase specialized hardware (eg. a new modem as proposed) to be able to participate in the local cache.
DNS
With the Internet’s vast ubiquity, as mentioned in the previous sections, there is a requirement that a convenient method be in place to refer to different resources out there within this distributed system. DNS (Domain Name System) aims to aid this process, by allowing resources be referred to by name, rather than a series of numbers. DNS can be considered as the "switchboard" of the Internet. To make the system as a whole work in user friendly manner, a user or application needs only supply a name, and the service returns the IP address number and hostname. It is essential for the functionality and usability of the Internet to have this service.<ref name="DNS4">Wikipedia/Domain Name System. Accessed Mach 10, 2011 link</ref>
For the sake of this paper, many technical details are avoided and a more simplistic, higher level view of the system is taken on. It is considered for the purposes of this discussion as a static, distributed tree that returns an IP address when queried with a domain name. Given its necessity, the system is a good candidate to be considered a public good. The current provider of the service falls under the responsibility of an individual user's Internet Service Provider (ISP). A user's ISP maintains the database or tree of names to IP addresses for their users to access.
Implementation Overview
From a user’s perspective, there are two categories of options when it comes to using DNS:
ISP
For a standard user, an ISP takes care of the DNS service. It is understood by the users that all Internet requests can be filtered or redirected as the ISP sees fit. For example, two of Canada's biggest providers, Bell Canada and Rogers Communications, offer advertising-based redirects when and if a user seeks a non-existent URL. This can be seen as helpful (in the event of typos) or a nuisance (suggestions based on advertising).<ref name="DNS1">Michael Geist. Rogers Implements New Approach On Failed DNS Lookups. July 18, 2008 - Accessed March 15, 2011link</ref><ref name="DNS2">Eric Bangeman. Rogers latest ISP to "help" customers with DNS redirects. arstechnica.com. July 2008 - Accessed March 15, 2011link</ref><ref name="DNS3">Bell Starts Hijacking NX Domain Queries. Slashdot.org. August 2009 - Accessed March 12, 2011link</ref>
Alternative/Public
More knowledgeable users can configure a setup where their DNS requests are processed via any number of alternative options such as Google's public DNS project<ref name="GDNS">Google Public DNS link</ref> or OpenDNS<ref name="openDNS">OpenDNS link</ref>. This can be a healthy approach to avoid the ISP issues, but still imparts significant trust on another corporation or "good Samaritans" in a public community.
Issues arise when considering user privacy though. In the case of Google, there is reason to consider how Google will end up treating and using the information it gains access to, even given a clean track record, when it comes to providing free applications and services to users.<ref name ="DNS5">JR Raphael. Google Public DNS: Good for privacy? PCWorld.com. December 2009 - Accessed March 2011link</ref> Google would now have deep access to user behaviour in being able to determine every single thing that is being sought out.<ref name="DNS6">David Coursey. Google Public DNS: Wonderful Freebie or Big New Menace? PCWorld.com. December 2009. - Accessed March 2011link</ref>. Resource and maintenance issues need to be considered as well for any "community-based" project. As strong as user generated communities can be at providing and generating ample content, it is difficult to imagine this large responsibility lying on the back of these "good Samaritans." The configuration may also demand a fair bit of the end user as local DNS settings may have to be changed frequently to keep up with changes as they occur.<ref name="DNS7">Free Fast Public DNS Servers List - Accessed March 2011link</ref>
Implementation Issues
While the system is functional for what the majority of users and applications require, there are some problems that arise with the current implementations. These issues arise around bottlenecks, update propagation, attack resiliency and general performance. Before any replacement system is to be considered, these issues need to be improved upon.
- Bottlenecks
The current system is susceptible to bottleneck effects due to a low number of servers to be accessed by many users. For example, Bell Canada customers are served by two servers for the entire country for this service. Just as web caching has been shown in a previous section to improve general browsing and decrease latency, the same concept can be used for DNS lookups. The small number of servers results in affecting the attack resiliency as well, since these servers represent single points of failure.
- Update Propagation
Any change to a domain’s nameserver can take up to 48 hours to propagate across the Internet. DNS servers around the world have a static schedule for updating their records and, when considering caching, this period is required to get the changes across.
- Attack Resiliency
The single points of failure, indicated by the bottleneck issue, make the entire system highly susceptible to Denial of Service (DoS) attacks. Malicious users can target the limited servers to severely cramp Internet traffic at any time. Measures are in place to prevent this kind of attack, however, like anything security based, it requires constant monitoring and changes in approach as malicious users evolve their techniques.
- Performance
Processing power will always improve, but the combination of the all the factors mentioned above leaves much improvement in regards to performance and robustness.
DNS Evolution
Caching is a major aspect in the improvements that lay ahead of DNS performance. DNS caching has become a major aspect to improving performance by reducing latency much like web caching provides for regular content browsing. DNS caches could be contained within the Web Caching Schemes presented in the previous section. The hierarchical structure described can function equally well for DNS purposes. Ideally, the DNS cache would essentially piggyback at each level of the web cache, thereby locally providing content in a somewhat democratic fashion; users are able to dictate what sites are loaded quickly simply by visiting them.
Research is being done on improving the performance, attack resiliency, bottleneck prevention and update propagation issues that hinder the legacy DNS deployment, even if it is aided by caching. One candidate as a next generation naming system, actively being researched at Cornell University, is entitled Cooperative Domain Name System (CoDoNS).<ref name="CoDoNS">Venugopalan Ramasubramanian and Emin Gün Sirer. 2004. The design and implementation of a next generation name service for the Internet. SIGCOMM Comput. Commun. Rev. 34, 4 (August 2004), 331-342. DOI=10.1145/1030194.1015504 http://doi.acm.org/10.1145/1030194.1015504. Accessed March 2011 link</ref>. Through a structure based on caching and peer to peer distribution, the system boasts an improvement on all the factors indicated above. It also adds the benefit that it is incrementally deployable which is a very important point when it comes to upgrading any part of a complex, distributed system like the Internet. Due to the high-level nature of the discussion of this report, technical specifications will be avoided in favour of looking at the role of DNS as a whole for its use as a public good. In essence, the static DNS tree is decentralized and distributed across the network with this implementation. This removes the issues of bottlenecks and increases resiliency against attack as the single points of failure have been removed.
DNS as a Public Good
The essential nature of DNS makes it a strong candidate to be a public good. The fashion in which traffic is directed on the Internet, whether user-based or application-based, requires the use of a naming service. Without a functional service, the bulk of Internet traffic would falter as it would not know where to go. ISPs and alternative services have provided a strong framework thus far, however the interference issues imposed by the ISPs and the privacy concerns brought up by some of the alternative services indicate the ideal scenario lies within public hands. Regardless of its implementation, it is a service that is required to be both reliable and trusted. A user base is dependent on some form of trusted source, whether it is a governed initiative, a corporately controlled process, or user contributed service. Having the DNS in public hands will ensure this reliable service. If the public is also in control of web caching as well, it can be incrementally deployed and rolled out as a piggyback to that scenario.
Advantages of DNS as a Public Good
- Reliability/Trust Solved
With this public’s best interest in maintaining this service, the reliability and trust issue is satisfied. Users must trust some entity for the service, so it is essential that this entity have the public’s best intentions in mind. Misinformation and misdirection will be averted by assuming trust in whatever public authority applies.
- Next Generation Uptake
When it comes to implementing any sort of next generation service or upgrade, it will be done when deemed most ideal for the public. The incremental deployment of the CoDoNS service
- Improved Robustness
A DNS cache can be implemented hierarchically in an effort to reduce latency, wasted bandwidth and enhanced reliability for DNS lookups. The cache ends up being democratized as users only need to use the sites as they do resulting in them appearing higher in the cache for rapid lookup.
- Universal basic level of service
When combined with caching and a physical network infrastructure, localized systems could function as pockets of the Internet in the event of a network partition.
Disadvantages of DNS as a Public Good
As with the other potential public good, transitioning DNS into the public hands also has it's disadvantages. They are briefly described below.
- Privacy
The DNS governing authority will have the capability to observe and even log user behaviour. This is a major issue if the authority is not trustworthy, so it is required that any such orientation work in concert with some form of privacy commission.
- Cost
Maintaining and acquiring or mandating the current system will impose a financial burden on the public, as any good will that is brought to the hands of the public.
- Next Generation Implementations
It is possible that private corporations or independent organizations would implement newer schemas sooner than some form of public authority, given less overhead or caution when it comes to decision making. Users may miss out on the newest services available as the authority evaluates any upgrade options.
General Public Goods and the Internet
After analyzing the proposed candidates for public goods with respect to the Internet, we identified many qualities that these entities had in common. Building from these qualities, we believe that the following list can be used as a set of basic criteria that a given aspect of the Internet should meet before being nominated as a candidate for becoming a public good.
- Essential Component of the Internet
For an aspect of the Internet to become a public good, it should be an aspect that is fundamental to the overall functionality of the Internet as a whole. If this is not the case, then the public could start owning aspects that are not permanent and will become obsolete quickly. This will then mean that aspects of the Internet will cycle through the public's hands very quickly, which would end up being very expensive. In general, novel aspects of the Internet should be left in private hands and only after these aspects have proven themselves to be vital should they be looked as a potential public good.
- Adds Robustness and Reliability
Since the Internet itself is a huge, distributed system, robustness and reliability are key. If transitioning an aspect of the internet into the public's hands can improve this, it will improve the overall effectiveness of the Internet as a whole.
- Ensure a Basic Level of Service
Since public goods are defined to be something that everyone should have access to and something that is deemed essential, ensuring a basic level of service for users for a given Internet public good is mandatory. If an aspect of the Internet cannot be given guaranteed access to all of the users in its reach, then it should not be considered a public good, by definition.
- Improve Performance
Performance is always a key metric when discussing any distributed system and it is a key concern here as well. Any potential public good should provide some kind of performance improvement, or there may be no real point in making it a public good.
- Makes the User Experience a Priority
With all things considered, the end user's experience is one of the most important factors when thinking about public goods on the Internet. Currently many of the aspects of the Internet that would make good candidates for public goods have a large impact on the end user's experience. The parties that control these resources have their own priorities and sometimes are at odds with what would be best for the user.
- Incrementally Deployable
As in any distributed system, any changes or improvements must be incrementally deployable. Generally speaking, these public goods should be able to be trialed in certain locations before they are widely introduced. This allows for these new systems to grow dynamically, starting in areas that need them the most and ending up in more remote regions.
Conclusion
As we know, the Internet is becoming a ubiquitous entity in modern day society and access to it is becoming more and more essential as time goes by. It is due to this necessity that people will have a much greater incentive in owning and controlling how the Internet works, basically transitioning the Internet into a public good. However, there are significant portions of the Internet that would be undesirable or unlikely to be held by the public. Many modern businesses rely on the Internet today for a significant portion of their revenue and are actually responsible for a lot of innovation and evolution within the Internet itself. For these reasons it makes most sense to bring portions of the Internet under the public's control.
We first focused on which aspects of the Internet to convert into public goods by examining three ideal candidates: physical infrastructure, web caching and DNS. From examining these entities, a list of common criteria that could be used to identify future public goods on the Internet were exposed. By using this set of criteria one would be able to successfully identify future public goods candidates. Additional benefits of bringing aspects of the Internet under the public's control is the cumulatively beneficial effects that would occur. Although proposed public goods would have to adhere to the criteria listed above, they would often do so in different ways. For instance, the basic level of service provided by the physical infrastructure as a public good is significantly different than the basic level of service provided by the proposed web caching scheme. On top of this, the performance improvements provided by one public good would most most likely increase due to the performance gains introduced by other, new public goods. Generally speaking, the more aspects of the Internet that fulfill the above criteria that are converted into public goods will only increase the more we will notice each individual advantage. On top of the cumulative benefits that public goods on the Internet provide, they would also allow for new technologies to emerge. Putting these resources into the public's hands would allow everyday people to have easier access to them then ever before. One example given was with the full web application caching discussed earlier. This type of open access to computing resources would allow people with great ideas to implement, test and deploy them to the world wide web in a way that was never possible before. Another opportunity lies in a simultaneous deployment of DNS and web caching. The hierarchical nature of DNS caching coincides ideally with that of web caching, thus providing a combined benefit for the public good.
Moving into the future, the Internet is going to play a larger and larger role in our day-to-day lives. For this reason alone it will be vital to ensure that the Internet itself will evolve with its changing demands and for the fundamental aspects of the Internet to be secured. The best and only true way of doing this will be to give the users the overall control.
References
<references/>
Miscellaneous
Members
- Lester Mundt
- Fahim Rahman
- Andrew Schoenrock