国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

如何和Whois++網(wǎng)連接查詢

2019-09-06 23:33:15
字體:
供稿:網(wǎng)友

                    在Whois++結(jié)構(gòu)中,由客戶負責進行網(wǎng)狀漫游,因為每個主機僅通知客戶與它相鄰的主機是什么,這個協(xié)議倒不是復(fù)雜,客戶打開到一臺服務(wù)器的連接,發(fā)送查詢請求,接收應(yīng)答,關(guān)閉連接。客戶在接收到應(yīng)答后進行分析,然后決定下一個聯(lián)系哪一臺主機。這樣使得客戶必須有一種算法使得客戶查詢的主機沒有重復(fù)的,而且能夠盡快找到要找的主機。

每個Whois++客戶應(yīng)該被配置為自動和一個特定的Whois++服務(wù)器聯(lián)系。這個默認的服務(wù)器可能有這樣那樣的要求,但是最基本的要求就是最好是本地服務(wù)器。

在接收到服務(wù)器的應(yīng)答后,如果命中數(shù)大于0,則把結(jié)果返回用戶。如果客戶被要求和一個或多個服務(wù)器進行通信,客戶要能夠知道這些服務(wù)器指針是什么。

查詢的方法有兩種一種是擴充查詢,一種是使用服務(wù)器目錄。如果命中數(shù)為0,或用戶希望擴展查詢,客戶機應(yīng)該進行擴展查詢,它只需要向服務(wù)器發(fā)送下面兩種消息即可:'polled-by'或'polled-for',客戶可以向新指定的主機進行擴充查詢。

客戶必須保留查詢過的服務(wù)器,不要查詢過的服務(wù)器再查詢一次。

3.1.1. 優(yōu)化網(wǎng)絡(luò)

如果A希望經(jīng)常使用B的WHOIS++服務(wù)器,A會希望通過創(chuàng)建一個本地索引服務(wù)器將B的服務(wù)器成為本地可用的。當A的客戶通過擴充查詢希望查詢B時,解析的速度就會快得多。

Whois++網(wǎng)絡(luò)已經(jīng)不是一個樹了,B和F之間已經(jīng)建立了直接通道。這樣查詢的速度就快得多了,不用在查詢完B后查詢A,再查詢C,最后再查詢F。因為B和F已經(jīng)建立了聯(lián)結(jié),所以,當客戶只需要查詢其中之一的數(shù)據(jù)時需要指時要的是哪一個,不然會返回B和F結(jié)點的內(nèi)容。在客戶方還可以使用黑名單方法將查詢中的一些服務(wù)器屏蔽掉,因為訪問這些服務(wù)器代價太大或其它原因不愿意讓用戶訪問這些服務(wù)器。

3.1.2. 客戶使用的算法

Query := 需要查詢的數(shù)據(jù);
QueriedServers := {};
AnswerList := {};
OriginalServers := { 客戶所知的服務(wù)器 };
while OriginalServers非空 do:
 ServerList = OriginalServers;
 while ServerList非空 do:
   Server := ServerList[1];
   if Server未包括在QueriedServers中 then do:
    send Query to Server;
    Answer := 從Server返回的響應(yīng);
    將ServersToAsk附加到ServerList;
    將Server從ServerList刪除;
    將Answers附加到AnswerList;
   end;
 done;
 if 應(yīng)該擴充查詢 then do:
   ServerList := OriginalServers;
   OriginalServers := {};
   while ServerList非空 do:
     Server := ServerList[1];
     發(fā)送Polled-For-Query到Server;
     Answer := 從Server返回的響應(yīng);
     將Answer附加到OriginalServers;
     將Server從ServerList刪除;
   end;
 done;
done;
顯示AnswerList;

3.2. 服務(wù)器目錄

第二個尋找正確服務(wù)器的方法是使用一個單獨的服務(wù),我們稱為服務(wù)器目錄。服務(wù)器目錄實際上是一個特殊的Whois++服務(wù)器。這個服務(wù)器內(nèi)包括了所有服務(wù)器上信息,用戶在查詢前先查詢些服務(wù)器,由此服務(wù)器指出應(yīng)該查詢哪一個服務(wù)器,未來的技術(shù)可能允許客戶選擇服務(wù)器,而不是由服務(wù)器。

3.2.3. 例子

下面是一個客戶與服務(wù)器聯(lián)系的例子。

> % 220-This is services.bunyip.com running Bunyip-Whois++: DIGGER 1.0.5
> % 220 Ready to go!
< template=serverhandle and bunyip
> % 200 Search is executing
> # FULL SERVERHANDLE BUNYIPCOM01 BUNYIPCOM01
> SERVER-HANDLE: BUNYIPCOM01
> HOST-NAME: services.bunyip.com
> HOST-PORT: 63
> ADMIN-NAME: Patrik Faltstrom
> ADMIN-EMAIL: paf@bunyip.com
> ORGANIZATION-NAME: Bunyip Information Systems Inc.
> DESCRIPTION: USER information
> DESCRIPTION: Directory of Servers
> DESCRIPTION: Toplevel Index server in the world
> MENU-ITEM: World (Bunyip Information Systems inc)
> CITY: Montreal
> COUNTRY: Canada
> # END
>
> # FULL SERVERHANDLE BUNYIPCOM01 BUNYIPCOM02
> SERVER-HANDLE: BUNYIPCOM02
> HOST-NAME: services.bunyip.com
> HOST-PORT: 7778
> ADMIN-NAME: Patrik Faltstrom
> ADMIN-EMAIL: paf@bunyip.com
> ORGANIZATION-NAME: Bunyip Information Systems Inc.
> DESCRIPTION: USER information
> MENU-ITEM: Bunyip Information Systems
> CITY: Montreal
> COUNTRY: Canada
> # END
>
> % 226 Transaction complete
> % 203 Bye, bye

4. 緩沖

客戶可以緩沖它從服務(wù)器取得的信息。客戶自行選擇緩沖多長時間更新。

4.1. 緩沖Whois++服務(wù)器主機名

下面是一個緩沖算法:

response := 從服務(wù)器A獲得的servers-to-ask響應(yīng)
IP-address := 尋找DNS中response.hostname的IP地址
連接IP地址上的端口
if 連結(jié)失敗 {
 連結(jié)服務(wù)器目錄服務(wù)器
 查詢主機
 response := 由服務(wù)器目錄服務(wù)器獲得的響應(yīng)
 IP-address := 尋找DNS中response.hostname的IP地址
 connect to ip-address at port response.portnumber
 if 連結(jié)失敗 {
   以錯誤消息返回
 }
}
查詢這個新服務(wù)器

5. 安全問題

客戶應(yīng)該維護一個黑名單,因為在網(wǎng)絡(luò)上可能有假的Whois++服務(wù)器,一旦發(fā)現(xiàn)這樣的服務(wù)器,應(yīng)該把它加入黑名單,以后不再查詢。因為在擴充查詢時比較費時,應(yīng)該允許用戶在操作進行中退出。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 沂水县| 上林县| 东海县| 夹江县| 张北县| 塔城市| 犍为县| 前郭尔| 射阳县| 静安区| 亳州市| 铜鼓县| 鹤壁市| 秭归县| 汝阳县| 景泰县| 商水县| 平南县| 宁强县| 湟中县| 岑巩县| 邓州市| 昭觉县| 南川市| 方山县| 屏南县| 天柱县| 曲靖市| 尉犁县| 临猗县| 阳朔县| 潢川县| 岳西县| 灌云县| 邻水| 民县| 东乌珠穆沁旗| 禄丰县| 岑巩县| 五寨县| 都江堰市|