【正文】
ng. 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 work, and an overlay work is seen as a collection of overlay sockets that selfanize 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 work. 專業(yè)外文翻譯 4 Each overlay socket executes an overlay protocol that is responsible for maintaining the membership of the socket in the overlay work topology. Each overlay socket has a logical address and a physical address in the overlay work. 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 work. On the Inter, 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 identifier for an overlay work and which can be used as a key to access the other attributes o f the overlay work. Each new overlay ID corresponds to the creation of a new overlay work. Overlay sockets exchange two types of messages, protocol messages and application messages. Protocol messages are the messages of the overlay protocol that maintain the overlay topology. Application messages contain applicationdata that is encapsulatedn an overlay message header. An application message uses logical addresses in the header to identify source and, for unicast, the destination of the message. If an overlay socket receives an application message from one of its neighbors in the overlay 專業(yè)外文翻譯 5 work, it determines if the message must be forwarded to other overlay sockets, and if the message needs to be passed to the local application. The transmission modes currently supported by the overlay sockets are unicast, and multicast. In multicast, all members in the overlay work are both unicast and multicast,the mon abstraction for data forwarding is that of passing data in spanning trees that are embedded in the overlay topology. For example, a multicast message is transmitted downstream a spanning tree that has the sender of the multicast message as the root (see Figure 2(a)). When an overlay socket receives a multicast message, it forwards the message to all of its downstream neighbors (children) in the tree, and passes the message to the local application program. A unicast message is transmitted upstream a tree with the receiver of the message as the root (see Figure 2(b)). An overlay socket that receives a unicast message forwards the message to the upstream neighbor (parent) in the tree that has the destination as the root. An overlay socket makes forwarding decisions locally using only the logical addresses of its neighbors and the logical address of the root of the tree. Hence, there is a requirement that each overlay socket can locally pute its parent and its children in a tree with respect to a root node. This requirement is satisfied by many overlay work topologies, including [15, 16, 18–20]. 3 The Components of an Overlay Socket An overlay socket consists of a collection of ponents that are configured when the overlay socketis created, using the supplied set of attributes. These ponents include the overlay protocol, which helps to build and maintain the overlay work topology, a ponent that processes application data, and interfaces to a transportlayer work. The main ponents of an overlay socket, as illustrated in Figure 3, are as follows: The overlay node implements an overlay protocol that establishes and maintains the overlay work topology. The overlay node sends and receives overlay protocol messages, and maintains a set of timers. The overlay node is the only ponent of an overlay socket that is aware of the overlay topology. In the HyperCast . Overlay socket Forwarding Engine 專業(yè)外文翻譯 6 Application Programming Interface Statistics Interface Protocol Messages Application Receive Buffer Application Transmit Buffer Overlay Node O verlay Node Interfac e Node Adapter Adapter Interface Socket Adapter A dapter Interface Application Messages Application Program Transportlayer Network Application Messages Fig. 3. Components of an overlay socket. software, there are overlay nodes that build a logical hypercube [15] and a logical Delaunay triangu lartion [16]. The forwarding engine performs the functions of an applicationlayer router, that sends, receives, and for