• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Dict.CN 在線詞典, 英語學習, 在線翻譯

            學海苦作舟,書山勤為徑

            留下點回憶

            常用鏈接

            統(tǒng)計

            積分與排名

            Denoise

            English study

            Web技術

            數(shù)據(jù)壓縮

            一些連接

            最新評論

            電騾協(xié)議規(guī)范-第二章-客戶端和服務器TCP通訊

            每個客戶端用 TCP 連接到具體的服務器。服務器給客戶端分配一個 ID ,這個 ID 用來標示其后與服務器的會話中該客戶端(高 ID 客戶端總是按照它的 IP 地址來分配)。電騾 GUI 客戶端為了運行而請求建立服務器連接。客戶端不能同時連接幾個服務器并且不能在沒有用戶的干預下動態(tài)改變服務器。

            1.1 ?????????????????????? 連接建立

            當建立一個到服務器的連接時,客戶端可能嘗試同時連接幾個服務器,拋棄其他的連接嘗試不談,這里僅僅描述成功登錄的序列:

            eMuleHIDConnection.jpg
            2.1 :高 ID 客戶端連接序列圖

            有幾種可能連接建立的用例:

            1.? ID 連接 - 服務器分配一個高 ID 給正在連接的客戶端

            2.? ID 連接 - 服務器分配一個低 ID 給正在連接的客戶端

            3.? 拒絕會話 - 服務器拒絕客戶端

            當然,有些小的用例,服務器 DOWN 了或不可達。

            2.1 描述了建立一個高 ID 連接的報文序列圖。這個例子中,客戶端建立一個到服務器的 TCP 連接,然后發(fā)送登錄消息給服務器;服務器連接使用另一個 TCP 連接到客戶端來指定一個客戶端到客戶端的握手,來確保正在連接的客戶端可以接受其他電騾客戶端的連接。在完成客戶端握手后,服務器關閉第二個連接,完成客戶端 - 服務器握手并且發(fā)送一個 ID 改變消息。你可能注意到電騾信息報文是灰色的。這是因為這些信息是電騾協(xié)議擴展( 1.6 節(jié))。

            eMuleLIDConnection.jpg

            2.2 :低 ID 客戶端連接序列圖

            2.2 描述建立低 ID 連接的消息序列圖。這種情況下,服務器發(fā)出到客戶端的連接超時而失敗,因此客戶端被分配一個低 ID 。服務器消息通常包含一個警告,例如:“ Warning[ 服務器細節(jié) ]-You have a lowed. Please review your network configure and/or your setting.

            2.3 描述拒絕會話的序列。服務器可能拒絕會話的原由有:客戶端有一個低的 ID 或當連接達到服務器的容量極限時。服務器消息包含一個描述拒絕原因的短字符串。

            eMuleSReject.jpg
            2.3 :服務器拒絕會話序列

            1.2 ?????????????????????? 連接開始報文交互

            在連接成功建立之后,客戶端和服務器交換幾個安裝信息。這些消息的目的是更新雙方知道的其他端的狀態(tài)。客戶端以提交服務器共享文件( 6.2.4 節(jié))列開始,然后請求更新它的服務器列表。服務器發(fā)送它的狀態(tài)和版本( 6.2.6 6.2.2 節(jié)),然后發(fā)送它知道的電騾服務器并提供其他一些自標示信息。最終,客戶端請求源(其他的可以提供下載文件的客戶端),服務器以一系列報文來響應,一個是客戶端下載列表中的每個文件,直到所有的源列表都被下載到客戶端為止。圖 2.4 描述這個序列。

            eMuleConnectionStartup.jpg
            2.4 :連接開始序列圖

            1.3 ?????????????????????? 文件搜索

            文件收縮由用戶來初始化;操作簡單,一個搜索請求(見 6.2.9 節(jié))發(fā)送到服務器,服務器以一個搜索結(jié)果來響應( 6.2.10 節(jié))。當有多個結(jié)果的時候,搜索結(jié)果信息是壓縮的。下面,用戶選擇來下載一個或多個文件,客戶端然后請求源來下載選中的文件,服務器返回每個請求文件的源的列表(見 6.2.12 )。一個可選的服務器狀態(tài)信息可能在服務器找到源響應之前發(fā)送給客戶端。狀態(tài)信息(見 6.2.6 節(jié))包含當前用戶數(shù)和服務器支持的文件信息。重要的點是有一個后備 UDP 消息隊列,它是用來增強客戶端從它搜索列表中查詢源的能力,更多的信息節(jié) 3 節(jié)。在驗證了源是新的之后,電騾客戶端初始化一個連接嘗試和添加這些到源列表中。源聯(lián)系的順序和電騾客戶端接收他們的順序是相同的。圖 2.5 描述文件搜索時序。

            電騾客戶端連接源的順序與這些源在連表中的順序是一樣。沒有優(yōu)先級機制來決定先連接誰。有個復雜的算法來解決在客戶端下載隊列中從同一個源請求下載幾個文件的情況(注意,電騾客戶端僅僅允許在客戶端之間有一個上傳連接)。選擇算法是基于用戶優(yōu)先級規(guī)范,在沒有優(yōu)先級指定的情況下,按照字母表的順序。網(wǎng)站上有處理源上傳多于一個文件的詳細描述。

            eMuleFileSearch.jpg
            2.5 :文件搜索序列

            1.4 ?????????????????????? 回調(diào)機制

            回調(diào)機制設計用來克服低 ID 客戶端不能接受輸入的連接而因此不能共享文件給其他客戶端的。這個機智很簡單:假設客戶端 A B 連接到同一個電騾服務器, A 請求一個在 B 上的文件,但 B 是低 ID A 發(fā)送一個回調(diào)請求給服務器(見 6.2.13 節(jié)),請求服務器告訴 B 來主動連接它(回調(diào))。服務器已經(jīng)有一個打開的 TCP 連接到 B ,它發(fā)送回調(diào)請求給 B 6.2.14 節(jié)),將 A IP 地址和端口提供給 B B 然后連接到 A ,將其上的一些文件(沒有更多頭)發(fā)送給 A 。顯然,只有高 ID 客戶端才能請求低 ID 客戶端回調(diào)(低 ID 的客戶端不能接收輸入連接)。圖 2.6 描述了回調(diào)信息的交換。

            同樣有一個特性就是允許兩個低 ID 客戶端通過他們的服務器連接來交換文件;服務器作為一個中繼。大多數(shù)的服務器都不再支持這個功能了,因為服務器消耗增加。

            posted on 2006-07-24 09:36 笨笨 閱讀(1608) 評論(0)  編輯 收藏 引用 所屬分類: P2P技術

            国产精品美女久久久| 久久综合给合综合久久| 亚洲国产综合久久天堂| 婷婷综合久久狠狠色99h| 日本欧美久久久久免费播放网| 亚洲а∨天堂久久精品9966| 久久人人爽人人澡人人高潮AV | 久久精品国产第一区二区三区| 亚洲精品无码专区久久同性男| 久久国产精品免费一区二区三区| 亚洲国产天堂久久综合网站| 国产精品久久久久影院色| 91精品国产综合久久婷婷| 99久久国产热无码精品免费| 精品999久久久久久中文字幕| 久久综合欧美成人| 久久久99精品成人片中文字幕 | 思思久久精品在热线热| 久久99这里只有精品国产| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲人成无码久久电影网站| 一级做a爰片久久毛片看看| 久久精品视频一| 国产亚洲美女精品久久久2020| 久久亚洲精品无码AV红樱桃| 久久国产精品-久久精品| 国产精品一区二区久久精品无码| 国产精品99久久久久久宅男| 伊人久久一区二区三区无码| 久久亚洲日韩精品一区二区三区 | 久久国产一区二区| 久久www免费人成看国产片| 欧美亚洲国产精品久久高清| 99久久精品午夜一区二区| 女同久久| 精品久久香蕉国产线看观看亚洲| 久久www免费人成精品香蕉| 99精品久久精品一区二区| 亚洲国产天堂久久综合网站| 久久亚洲中文字幕精品一区| 国内精品伊人久久久久|