【正文】
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 forwards formatted applicationlayer messages in the overlay work. The forwarding engine municates with the overlay node to query next hop routing information for application messages. The forwarding decision is made using logical addresses of the overlay nodes. Each overlay socket has two work adapters that each provides an interface to transportlayer protocols, such as TCP or UDP. The node 專業(yè)外文翻譯 7 adapter serves as the interface for sending and receiving overlay protocol messages, and the socket adapter serves as the interface for application messages. Each adapter has a transport level address, which, in the case of the Inter, consists of an IP address and a UDP or TCP port number. Currently, there are three different types of adapters, for TCP, UDP, and UDP multicast. Using two adapters pletely separates the handling of messages for maintaining the overlay protocol and the messages that transport application data. The application receive buffer and application transmit buffer can temporarily store messages that, respectively, have been received by the socket but not been delivered to theapplication, or that have been released by the application program, but not been transmitted by the socket. The application transmit buffer can play a role when messages cannot be transmitted due to rate control or congestion control constraints. The application transmit buffer is not implemented in the HyperCast overlay socket has two external interfaces. The application programming interface (API) of the socket offers application programs the ability to join and leave existing overlays, to send data to other members of the overlay work, and receive data from the overlay work. The statistics interface of the overlay socket provides access to status information of ponents of the overlay socket, and is used for monitoring and management of an overlay socket. Note in Figure 3 that some ponents of the overlay socket also have interfaces, which are accessed by other ponents of the overlay socket. The overlay manager is a ponent external to the overlay socket (and not shown in Figure 3). It is responsible for configuring an overlay socket when the socket is created. The overlay manager reads a configuration file that stores the attributes of an overlay socket, and, if it is specified in the configuration file, may access attributes from a server, and then initiates the instantiation of a new overlay socket. 4 Overlay Network Programming An application developer does not need to be familiar with the details of the ponents of an overlay socket as described in the previous section. The developer is exposed only to the API of the overlay socket and to a file with configuration parameters. 專業(yè)外文翻譯 8 The configuration file is a text file which stores all attributes needed to configure an overlay socket. The configuration file is modified whenever a change is needed to the transport protocol, the overlay protocol, or some other parameters of the overlay socket. In the following, we summarize only the main features of the API, and we refer to [12] for detailed information on the overlay socket API. Overlay Socket API Since the overlay topology and the forwarding of applicationlayer data is