1、专业外文翻译 1 题 目 Programming Overlay Networks with Overlay Sockets Programming Overlay Networks with Overlay Sockets The emergence of application-layer overlay networks has inspired the development of new network services and applications. Research on overlay net-workshas focused on the design of protoc
2、ols 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)
3、 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 net
4、work. 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 desi
5、gn of the overlay socket and discusses API and configuration options. 1 Introduction Application-layer overlay networks 5, 9, 13, 17 provide flexible platforms for develop-ing new network services 1, 10, 11, 14, 1820 without requiring changes to the network-layer infrastructure. Members of an overla
6、y network, which can be hosts, routers, servers, or applications, organize themselves to form a logical network topology, and commu-nicate only with their respective neighbors in the overlay topology. A member of an overlay network sends and receives application data, and also forwards data intended
7、 for other members. This paper addresses application development in overlay networks. We use the term overlay network programming to refer to the software development process of building application programs that communicate with one another in an 专业外文翻译 2 application-layer overlay_This work is supp
8、orted in part by the National Science Foundation through grant ANI-work. The diversity and complexity of building and maintaining overlay networks make it impractical to assume that application developers can be concerned with the complexity of managing the participation of an application in a speci
9、fic overlay networktopology. We present a software module, called overlay socket, that intends to simplify the task of overlay network programming. The design of the overlay socket pursues the following set of objectives: First, the application programming interface (API) of the overlay socket does
10、not require that an application programmer has knowledge of the overlay network topology. Second, the overlay socket is designed to accommodate dif-ferent overlay network topologies. Switching to different overlay network topologies is done by modifying parameters in a configuration file. Third, the
11、 overlay socket, which operates at the applicationlayer,can accommodate different types of transport layer protocols. This is accomplished by using network adapters that interface to the un-derlying transport layer network and perform encapsulation and de-encapsulation of messages exchanged by the o
12、verlay socket. Currently available network adapters are TCP, UDP, and UDP multicast. Fourth, the overlay socket provides mechanisms for bootstrapping new overlay networks. In this paper, we provide an overview of the overlay socket design and discuss over-lay network programming with the overlay soc
13、ket. The overlay socket has been imple-mented in Java as part of the HyperCast 2.0 software distribution 12. The software has been used for various overlay applications, and has been tested in both local-area as well as wide-area settings. The HyperCast 2.0 software implements the overlay topolo-gie
14、s described in 15 and 16. This paper highlights important issues of the overlay socket, additional information can be found in the design documentation available from12. Several studies before us have addressed overlay network programming issues. Even early overlay network proposals, such as Yoid 9,
15、 Scribe 4, and Scattercast 6, have presented APIs that aspire to achieve independence of the API from the overlay network topology used. Particularly, Yoid and Scattercast use a socket-like API, how-ever, these APIs do not address issues that arise when the same API is used by different overlay 专业外文
16、翻译 3 network topologies. Several works on application-layer multicast overlays inte-grate the application program with the software responsible for maintaining the overlay network, without explicitly providing general-purpose APIs.These include Narada 5, Overcast 13, ALMI 17, and NICE 2. A recent st
17、udy 8 has proposed a common API for the class of so-called structured overlays, which includes Chord 19, CAN 18, and Bayeux 20, and other overlays that were originally motivated by distributed hash tables. Our work has a different emphasis than 8, since we assume a scenario where an application prog
18、rammer must work with several, possibly fundamentally dif-ferent, overlay network topologies and different transmission modes (UDP, TCP), and, therefore, needs mechanisms that make it easy to change the configuration of the un-derlying overlay network.Internet Overlay socket Application Overlay sock
19、et Application Application Overlay socket Application Application Overlay socket Application Overlay Network. Fig. 1. The overlay network is a collection of overlay sockets. Root (sender) Root (receiver) (a) Multicast (b) Unicast. Fig. 2. Data forwarding in overlay networks. The rest of the paper is
20、 organized as following. In Section 2 we introduce con-cepts, abstractions, and terminology needed for the discussion of the overlay socket. In Section 3 we present the design of the overlay socket, and discuss its components. In Section 4 we show how to write programs using the overlay socket. We p
21、resent brief conclusions in Section 5. 2 Basic Concepts An overlay socket is an endpoint for communication in an overlay network, and an overlay network is seen as a collection of overlay sockets that self-organize using an overlay protocol (see Figure 1). An overlay socket offers to an application
22、programmer a Berkeley socket-style API 3 for sending and receiving data over an overlay network. Each overlay socket executes an overlay protocol that is responsible for maintaining the membership of the socket in the overlay network topology. Each overlay socket has a logical address and a physical address in the overlay network. The logical address is dependent on the type of overlay protocol used. In the overlay protocols currently