外文翻译基于socket的网络编程内容摘要:

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 municate with one another in an applicationlayer overlay_This work is supported in part by the National Science Foundation through grant ANI0085955..network. The diversity and plexity of building and maintaining overlay networks make it impractical to assume that application developers can be concerned with the plexity of managing the participation of an application in a specific 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 not require that an application programmer has knowledge of the overlay network topology. Second, the overlay socket is designed to acmodate different overlay network topologies. Switching to different overlay network topologies is done by modifying parameters in a configuration file. Third, the overlay socket, which operates at the applicationlayer,can acmodate different types of transport layer protocols. This is acplished by using network adapters that interface to the underlying transport layer network and perform encapsulation and deencapsulation of messages exchanged by the overlay 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 overlay network programming with the overlay socket. The overlay socket has been implemented in Java as part of the HyperCast software distribution [12]. The software has been used for various overlay applications, and has been tested in both localarea as well as widearea settings. The HyperCast software implements the overlay topologies described in [15] and [16]. This paper highlights important issues of the overlay socket, additional information can be found in the design documentation available from[12]. Several studies before us have addressed overlay network programming issues. Even early overlay network proposals, such as Yoid [9], 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 socketlike API, however, these APIs do not address issues that arise when the same API is used by different overlay network topologies. Several works on applicationlayer multicast overlays integrate the application program with the software responsible for maintaining the overlay network, without explicitly providing generalpurpose include Narada [5], Overcast [13], ALMI [17], and NICE [2]. A recent study [8] has proposed a mon API for the class of socalled 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 programmer must work with several, possibly fundamentally different, overlay network topologies and different transmission modes (UDP, TCP), and, therefore, needs mechanisms that make it easy to change the configuration of the underlying overlay network..Internet Overlay socket Application Overlay socket 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 organized as following. In Section 2 we introduce concepts, 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 ponents. In Section 4 we show how to write programs using the overlay socket. We present brief conclusions in Section 5. 2 Basic Concepts An overlay socket is an endpoint for munication in an overlay network, and an overlay network is seen as a collection of overlay sockets that selforganize using an overlay protocol (see Figure 1). An overlay socket offers to an application programmer a Berkeley socketstyle 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 implemented in HyperCast , the logical addresses are 32 bit integers or _ x _ y _ coordinates, where x and y are positive 32bit positive integers. The physical address is a transport layer address where overlay sockets receive messages from the overlay network. On the Internet, the physical address is an IP address and a TCP or UDP port number. Application programs that use overlay sockets only work with logical addresses, and do not see physical addresses of overlay nodes. When an overlay socket is created, the socket is configured with a set of configuration parameters, called attributes. The application program can obtain the attributes from a configuration file or it downloads the attributes from a server. The configuration file specifies the type of overlay protocol and the type of transport protocol to be used,.but also more detailed information such as the size of internal buffers, and the value of protocolspecific timers. The most important attribute is the overlay identifier (overlay ID) which is used as a global identi。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。