Abstract
The emergence of application-layer overlay networks has inspired the development of new network services and applications. Research on overlay networks has focused on the design of protocols to maintain and forward data in an overlay network, however, less attention has been given to the software development process of building application programs in such an environment. Clearly, the complexity of overlay network protocols calls for suitable application programming interfaces (APIs) and abstractions that do not require detailed knowledge of the overlay protocol, and, thereby, simplify the task of the application programmer. In this paper, we present the concept of an overlay socket as a new programming abstraction that serves as the end point of communication in an overlay network. The overlay socket provides a socket-based API that is independent of the chosen overlay topology, and can be configured to work for different overlay topologies. The overlay socket can support application data transfer over TCP, UDP, or other transport protocols. This paper describes the design of the overlay socket and discusses API and configuration options. The overlay socket has been used to develop a variety of applications, from multicast-file transfer programs, to multicast video streaming systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Andersen, D.G., Balakrishnan, H., Kaashoek, M.F., Morris, R.T.: Resilient overlay networks. In: Proceedings of the 18th ACM Symposium on Operating Systems Principles, Lake Luise, Canada, October 2001, pp. 131–145 (2001)
Banerjee, S., Bhattacharjee, B., Kommareddy, C.: Scalable Application Layer Multicast. In: Proceedings of ACM SIGCOMM, Pittsburgh, PA, August 2002, pp. 205–220 (2002)
Calvert, K.L., Donhahoo, M.J.: TCP/IP Sockets in Java: Practical Guide for Programmers. Morgan Kaufman, San Francisco (October 2001)
Castro, M., Druschel, P., Kermarrec, A.-M., Rowstron, A.: SCRIBE: A largescale and decentralized application-level multicast infrastructure. IEEE Journal on Selected Areas in Communications (JSAC) 20(8) (October 2002)
Chu, Y., Rao, S.G., Zhang, H.: A case for end system multicast. In: Proceedings of ACM SIGMETRICS, Santa Clara, CA, June 2000, pp. 1–12 (2000)
Chawathe, Y. D.: Scattercast: An Architecture for Internet Broadcast Distribution as an Infrastructure Service. Ph.D. Thesis, University of California, Berkeley (December 2000)
Chu, Y., Rao, S.G., Seshan, S., Zhang, H.: Enabling Conferencing Applications on the Internet using an Overlay Multicast Architecture. In: Proceedings of ACM SIGCOMM, San Diego, CA, August 2001, pp. 55–67 (2001)
Dabek, F., Zhao, B., Druschel, P., Kubiatowicz, J., Stoica, I.: Towards a Common API for Structured Peer-to-Peer Overlays. In: Kaashoek, M.F., Stoica, I. (eds.) IPTPS 2003. LNCS, vol. 2735. Springer, Heidelberg (2003)
Deshpande, H., Bawa, M., Garcia-Molina, H.: Streaming live media over a peer-to-peer network. Technical Report 2001-30, Stanford University, Computer Science Dept. (August 2001)
Francis, P.: Yoid: Extending the Internet multicast architecture. Unpublished paper (April 2000), Available at http://www.aciri.org/yoid/docs/index.html
The FreeNet Project, http://freenetproject.org
The Gnutella Project, http://www.gnutella.com
The HyperCast project, http://www.cs.virginia.edu/hypercast
Jannotti, J., Gifford, D.K., Johnson, K.L., Kaashoek, M.F., OToole, J.: Overcast: Reliable multicasting with an overlay network. In: Proceedings of the Fourth Symposium on Operating Systems Design and Implementation, San Diego, CA, October 2000, pp. 197–212 (2000)
The JXTA Project, http://www.jxta.org
Liebeherr, J., Beam, T.K.: HyperCast: A protocol for maintaining multicast group members in a logical hypercube topology. In: Rizzo, L., Fdida, S. (eds.) NGC 1999. LNCS, vol. 1736, pp. 72–89. Springer, Heidelberg (1999)
Liebeherr, J., Nahas, M., Si, W.: Application-layer multicasting with Delaunay triangulation overlays. IEEE Journal on Selected Areas in Communications 20(8) (October 2002)
Pendarakis, D., Shi, S., Verma, D., Waldvogel, M.: ALMI: An application level multicast infrastructure. In: Proceedings of 3rd Usenix Symposium on Internet Technologies and Systems, San Francisco, CA, pp. 49–60 (March 2001)
Ratnasamy, S., Francis, P., Handley, M., Karp, R., Shenker, S.: A Scalable Content-Addressable Network. In: Proceedings of ACM SIGCOMM, San Diego, CA, pp. 161–172 (August 2001)
Rowstron, A., Druschel, P.: Pastry: Scalable,distributed object location and routing for large-scale peer-to-peer system. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 329–350. Springer, Heidelberg (2001)
Stoica, I., Morris, R., Karger, D., Kaashoek, F., Balakrishnan, H.: Chord: A Scalable Peer-To-Peer Lookup Service for Internet Applications. In: Proceedings of ACM SIGCOMM, San Diego, CA, pp. 149–160 (August 2001)
Zhuang, S.Q., Zhao, B.Y., Joseph, A.D., Katz, R.H., Kubiatowicz, J.: Bayeux: An Architecture for Scalable and Fault-tolerant Wide-Area Data Dissemination. In: Proceedings of the Eleventh International Workshop on Network and Operating System Support for Digital Audio and Video (NOSSDAV 2001), Port Jefferson, NY, January 2001, pp. 11–20 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Liebeherr, J., Wang, J., Zhang, G. (2003). Programming Overlay Networks with Overlay Sockets. In: Stiller, B., Carle, G., Karsten, M., Reichl, P. (eds) Group Communications and Charges. Technology and Business Models. NGC ICQT 2003 2003. Lecture Notes in Computer Science, vol 2816. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39405-1_22
Download citation
DOI: https://doi.org/10.1007/978-3-540-39405-1_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20051-2
Online ISBN: 978-3-540-39405-1
eBook Packages: Springer Book Archive