【正文】
message to the upstream neighbor with respect to a given root (see Figure 2), to the downstream neighbors, to all neighbors, or to a particular node with a given logical address. Overlay Network Properties Management As seen, the properties of an overlay socket are configured by setting attributes in a configuration file. The overlay manager in an application process uses the attributes to create a new overlay socket. By modifying the attributes in the configuration file, an application programmer can configure the overlay protocol or transport protocol that is used by the overlay socket. Changes to the file must be done before the socket is created. Figure 5 shows a (simplified) example of a configuration file. Each line of the configuration file assigns a value to an attribute. The plete list of attributes and the range of values is documented in [12]. Without explaining all entries in Figure 5, the file sets, among others, the overlay ID to ?1234 ?, selects version of the DT protocol as overlay protocol (?Node= DT20 ?), and it sets the transport protocol of the socket adaptor to TCP(?SocketAdapter=TCP ?). Each overlay work is associated with a set of attributes that characterize the properties of the over lay sockets that participate in the overlay work. As mentioned earlier, the most important attribute is the overlay ID, which is used to identify an work, and 專業(yè)外文翻譯 11 which can be used as a key to access all other attributes of an overlay work. The overlay ID should be a globally unique identifier. A new overlay work is created by generating a new overlay ID and associating a set of attributes that specify the properties of the overlay sockets in the overlay work. To join an overlay work, an overlay socket must know the overlay ID and the set of attributes for this overlay ID. This information can be obtained from a configuration file, as shown in Figure 5. All attributes have a name and a value, both of which are strings. For example, the overlay protocol of an overlay socket can be determined by an attribute with name NODE. If the attribute is set to NOD E=DT2 0, then the overlay node in the overlay socket runs the DT (version 2) overlay protocol. The overlay socket distinguishes between two types of attributes: key attributes and configurable attributes. Key attributes are specific to an overlay work with a given overlay ID. Key attributes are selected when the overlay ID is created for an overlay work, and cannot be modified afterwards. Overlay sockets that participate in an overlay work must have identical key attributes, but can have different configurable attributes. The attributes OverlayID and KeyAttributes are key attributes by default in all overlay works. Configurable attributes specify parameters of an overlay socket, which are not considered essential for establishing munication between overlay sockets in the same overlay work, and which are considered ?tunable?. 5 Conclusions We discussed the design of an overlay socket which attempts to simplify the task of overlay work programming. The overlay socket serves as an end point of munication in the overlay work. The overlay socket can be used for various overlay topologies and support different transport protoc ols. The overlay socket supports a simple API for joining and leaving an overlay 專業(yè)外文翻譯 12 work, and for sending and receiving data to and from other sockets in the overlay work. The main advantage of the overlay socket is that it is relatively easy to change the configuration of the overlay work. An implementation of the overlay socket is distributed with the software. The software has been extensively tested. A variety of different applications, such as distributed whiteboard and a video streaming application, have been developed with the overlay sockets. Acknowledgement. In addition to the authors of this article the contributors include Bhupinder Sethi, Tyler Beam, Burton Filstrup, Mike Nahas, Dongwen Wang, Konrad Lorincz, Jean Ablutz, Haiyong Wang, Weisheng Si, Huafeng Lu, and Guangyu Dong. 專業(yè)外文翻譯 13 基于 Socket 的網(wǎng)絡(luò)編程 應(yīng)用層覆蓋網(wǎng)絡(luò)的出現(xiàn) 促進(jìn)了 新網(wǎng)絡(luò)服務(wù)和應(yīng)用的發(fā)展。對面向 網(wǎng)絡(luò) 的研究集中于協(xié)議的設(shè)計,并且在網(wǎng)絡(luò) 中傳輸 數(shù)據(jù),無論怎樣, 在 應(yīng)用程序軟件 的 開發(fā)過程中已對這個問題引起了一定的注意 。 顯然 ,面向網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)議的復(fù)雜性要求合適應(yīng)用程序設(shè)計接口 (API)和抽象觀念,不需 要 面向網(wǎng)絡(luò)協(xié)議的詳細(xì)知識,因此,簡化了 應(yīng)用程序員的任務(wù)。在這篇文章里,我們提出作為聯(lián)系在一個覆蓋網(wǎng)絡(luò)內(nèi)的終點的新程序設(shè)計抽象觀念的一個面向網(wǎng)絡(luò)上的 Socket 的概念。面向網(wǎng)絡(luò)上的 Socket預(yù)防不依賴選擇的一基于 Socket 的 API 涂上拓?fù)鋵W(xué),并且可能成形為不同的面向網(wǎng)絡(luò)工作上的拓?fù)鋵W(xué)。 面向網(wǎng)絡(luò)上的 Socket 能在 TCP, UDP 或者其他傳送協(xié)議上方支持應(yīng)用數(shù)據(jù)傳輸。 這篇文章描述面向網(wǎng)絡(luò)上的 Socket 設(shè)計并且討論 API 和配置選擇。 介紹應(yīng)用層覆蓋網(wǎng)絡(luò)為發(fā)展新網(wǎng)絡(luò)服務(wù)提供靈活的平臺 , 沒有要求轉(zhuǎn)換成網(wǎng)絡(luò)層基礎(chǔ)設(shè)施。一個覆蓋網(wǎng)絡(luò)的成員,可能是主機(jī),路由器,服務(wù)器或者應(yīng)用,組織自己形成合乎邏輯的網(wǎng)絡(luò)拓?fù)?,并且只與在面向網(wǎng)絡(luò)上拓?fù)鋵W(xué)方面的各自的鄰居 通信。 一個覆蓋網(wǎng)絡(luò)的成員并且得到申請數(shù)據(jù),以及準(zhǔn)備給其他成員 傳輸?shù)?數(shù)據(jù)。我們使用網(wǎng)絡(luò)程序設(shè)計指的是 在應(yīng)用層上與另一個應(yīng)用程序通信的 應(yīng)用程序軟件開發(fā)過程。大樓的差異和復(fù)雜性和保養(yǎng)的覆蓋網(wǎng)絡(luò)使它不實用 對 以程序開發(fā)員可能關(guān)心管理應(yīng)用 程序 在 網(wǎng)絡(luò)技術(shù) 的 一些 細(xì)節(jié)內(nèi)的復(fù)雜性 。 我們提出一個軟件模塊 , 叫 Ovlay Socket,打算簡化面向網(wǎng)絡(luò)上的網(wǎng)絡(luò)程序設(shè)計的任務(wù)。面向網(wǎng)絡(luò)上的 Socket 的設(shè)計追隨這套以下的目標(biāo):首先,面向網(wǎng)絡(luò)上的Socket 的設(shè)計追隨這套以下的目標(biāo):首先,面向網(wǎng)絡(luò)上的 Socket 的應(yīng)用程序設(shè)計接口 (API)不要求一個應(yīng)用程序員有面向網(wǎng)絡(luò)上的網(wǎng)絡(luò)拓?fù)涞闹R。其次,面向網(wǎng)絡(luò)網(wǎng)絡(luò) 拓?fù)渖?,面向網(wǎng)絡(luò)上的 Socket 被用于適應(yīng)。轉(zhuǎn)向不同的面向網(wǎng)絡(luò)通過在一件配置文件里修改參數(shù)被做上的網(wǎng)絡(luò)拓?fù)?。第三,面向網(wǎng)絡(luò)上的 Socket,在應(yīng)用層操作,能適應(yīng)不同的類型傳送層協(xié)議。這通過使用聯(lián)接于非 derlying 的運輸層網(wǎng)絡(luò)并且通過面向網(wǎng)絡(luò)執(zhí)行信息交換的封裝和解封裝上的 Socket 的網(wǎng)絡(luò)轉(zhuǎn)接器被完成。目前可得到的網(wǎng)絡(luò)轉(zhuǎn)接器是 TCP, UDP 和 UDP 多路傳送。第四,面向網(wǎng)絡(luò)上的 Socket 為bootstrapping新覆蓋網(wǎng)絡(luò)提供機(jī)制 。 專業(yè)外文翻譯 14 在這文章內(nèi),我們提供一面向網(wǎng)絡(luò)上的 Socket 設(shè)計的概述并且討論過于 放網(wǎng)絡(luò)程序設(shè)計與涂上的 Socket 一起。面向網(wǎng)絡(luò)上的 Socket 作為 HyperCast 的部分 種軟件配給在 java 是 implemented[12].軟件已經(jīng)用于各種各樣的面向網(wǎng)絡(luò)上的應(yīng)用,并且已經(jīng)被在兩個局部地區(qū)以及廣闊地區(qū)測試確定。 軟件實現(xiàn)描述在里的面向網(wǎng)絡(luò)上的 topologies[15]并且 [16].這文章最精彩場面面向網(wǎng)絡(luò)上的 Socket,另外信息的重要期刊可能被在可以從設(shè)計文獻(xiàn)編制中獲得內(nèi)發(fā)現(xiàn) [12].幾項研究在我們面前已經(jīng)提出面向網(wǎng)絡(luò)上的網(wǎng)絡(luò)程序設(shè)計問題。即使早期的 覆蓋網(wǎng)絡(luò)提議,例如Yoid[9],劃線于 [4],并且 Scattercast[6],已經(jīng)提出立志爭取從使用的面向網(wǎng)絡(luò)取得 API的獨立上的網(wǎng)絡(luò)拓?fù)涞?APIs。 尤其 , Yoid 和 Scattercast 使用 Socket 一樣的 API,到底怎樣 , 當(dāng)相同的 API