《毕业设计 计算机专业外文翻译基于Socket的网络编程.docx》由会员分享,可在线阅读,更多相关《毕业设计 计算机专业外文翻译基于Socket的网络编程.docx(27页珍藏版)》请在三一办公上搜索。
1、毕业设计 计算机专业外文翻译基于Socket的网络编程专业外文翻译 题 目 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 focuse
2、d 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 prog
3、ramming 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 commun
4、ication 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
5、 paper describes the design 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 infrastruct
6、ure. Members of an overlay 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 al
7、so forwards data intended 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 1 专业外文翻译 application-layer
8、overlay_This work is supported 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
9、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
10、 the overlay socket does 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 confi
11、guration file. Third, the 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 me
12、ssages 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 over-lay network program
13、ming with the overlay socket. 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 implemen
14、ts the overlay topolo-gies 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 p
15、roposals, 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 socket-like API, how-ever, these APIs do not address issues that arise when the same API is used
16、by different overlay 2 专业外文翻译 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
17、, and NICE 2. A recent study 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
18、where an application programmer 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
19、 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.
20、 The rest of the paper is 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
21、 the overlay socket. We present 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
22、offers to an application 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 logic
23、al 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 3 专业外文翻译 implemented in HyperCast 2.0, the logical addresses are 32- bit integers or _ x _ y _ coordinates, where x and y are positive 3
24、2-bit 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 addres
25、ses, and do not see physical addresses of overlay nodes. When an overlay socket is created, the socket is configured with a set of configu-ration parameters, called attributes. The application program can obtain the attributes from a configuration file or it downloads the attributes from a server. T
26、he 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 protocol-specific timers. The most important attribute is the overlay identifier (overlay ID) which is
27、 used as a global identifier for an overlay network and which can be used as a key to access the other attributes of the overlay network. Each new overlay ID corresponds to the creation of a new overlay network. Overlay sockets exchange two types of messages, protocol messages and application messag
28、es. Protocol messages are the messages of the overlay protocol that main-tain the overlay topology. Application messages contain applicationdata that is encap-sulatedn an overlay message header. An application message uses logical addresses in the header to identify source and, for unicast, the dest
29、ination of the message. If an overlay socket receives an application message from one of its neighbors in the over-lay network, 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 su
30、pported by the overlay sockets are unicast, and multicast. In multicast, all members in the overlay network are receivers.In both unicast and multicast,the com-mon abstraction 4 专业外文翻译 for data forwarding is that of passing data in spanning trees that are embedded in the overlay topology. For exampl
31、e, 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 mes-sage
32、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.
33、 An overlay socket makes forwarding decisions locally using only the logical ad-dresses of its neighbors and the logical address of the root of the tree. Hence, there is a requirement that each overlay socket can locally compute its parent and its children in a tree with respect to a root node. This
34、 requirement is satisfied by many overlay network topologies, including 15, 16, 1820. 3 The Components of an Overlay Socket An overlay socket consists of a collection of components that are configured when the overlay socketis created, using the supplied set of attributes. These components include t
35、he overlay protocol, which helps to build and maintain the overlay network topology, a component that processes application data, and interfaces to a transport-layer network. The main components of an overlay socket, as illustrated in Figure 3, are as follows: The overlay node implements an overlay
36、protocol that establishes and maintains the overlay network topology. The overlay node sends and receives overlay protocol messages, and maintains a set of timers. The overlay node is the only component of an overlay socket that is aware of the overlay topology. In the HyperCast 2.0. Overlay socket
37、Forwarding Engine Application Programming Interface Statistics Interface Protocol Messages Application 5 专业外文翻译 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 T
38、ransport-layer 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 application-layer router, that sends, receives, and
39、forwards formatted application-layer messages in the overlay network. The forwarding engine communicates 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 net
40、work adapters that each provides an interface to transport-layer protocols, such as TCP or UDP. The node adapter serves as the in-terface for sending and receiving overlay protocol messages, and the socket adapter serves as the interface for application messages. Each adapter has a transport level a
41、ddress, which, in the case of the Internet, consists of an IP address and a UDP or TCP port number. Currently, there are three different types of adapters, for TCP, 6 专业外文翻译 UDP, and UDP multicast. Using two adapters completely separates the handling of messages for maintaining the overlay protocol
42、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 deliv-ered to theapplication, or that have been released by the application program, but n
43、ot 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 con-straints. The application transmit buffer is not implemented in the HyperCast 2.0 software.Each overlay socket has two external interfa
44、ces. The application programming in-terface (API) of the socket offers application programs the ability to join and leave existing overlays, to send data to other members of the overlay network, and receive data from the overlay network. The statistics interface of the overlay socket provides access
45、 to status information of components of the overlay socket, and is used for monitoring and management of an overlay socket. Note in Figure 3 that some components of the overlay socket also have interfaces, which are accessed by other components of the overlay socket. The overlay manager is a compone
46、nt 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
47、 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 components of an overlay socket as described in the previous section. The developer is exposed only to
48、the API of the overlay socket and to a file with configuration parameters. 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
49、other parameters of the overlay socket. In the following, we summarize only the main features of the API, and we refer to 12 for 7 专业外文翻译 detailed information on the overlay socket API. 4.1 Overlay Socket API Since the overlay topology and the forwarding of application-layer data is transparent to the application program, the API for overlay network programming can be made simple. A