• <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 在線詞典, 英語學習, 在線翻譯

            學海苦作舟,書山勤為徑

            留下點回憶

            常用鏈接

            統計

            積分與排名

            Denoise

            English study

            Web技術

            數據壓縮

            一些連接

            最新評論

            電騾協議規范-第二章-客戶端和服務器TCP通訊

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

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

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

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

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

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

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

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

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

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

            eMuleLIDConnection.jpg

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

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

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

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

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

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

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

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

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

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

            eMuleFileSearch.jpg
            2.5 :文件搜索序列

            1.4 ?????????????????????? 回調機制

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

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

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

            91久久精一区二区三区大全| 久久久久国产| 国产精品一久久香蕉国产线看| 久久99国产精品久久久| 国产精品一区二区久久精品无码 | 久久九九免费高清视频| 国产呻吟久久久久久久92| 亚洲伊人久久成综合人影院 | 91精品国产91热久久久久福利| 久久99精品国产99久久6男男| 亚洲国产精品婷婷久久| 人妻无码精品久久亚瑟影视| 久久免费高清视频| 久久人妻无码中文字幕| 精品一久久香蕉国产线看播放| 亚洲AV无码久久精品狠狠爱浪潮| 99久久精品国产综合一区| 亚洲精品乱码久久久久久蜜桃不卡 | 久久精品国产亚洲7777| 久久精品国产亚洲77777| 噜噜噜色噜噜噜久久| 久久综合丝袜日本网| 久久精品www人人爽人人| 亚洲AV伊人久久青青草原| 国产A级毛片久久久精品毛片| 亚洲国产精品成人久久| 久久这里只有精品视频99| 色综合合久久天天综合绕视看| 亚洲AV日韩AV永久无码久久| 亚洲欧美精品一区久久中文字幕| 久久久久久综合一区中文字幕 | 国产成人精品白浆久久69| 精品久久久久久国产| 亚洲欧美国产精品专区久久| 久久久精品人妻无码专区不卡 | 欧美日韩精品久久久免费观看| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 欧美精品丝袜久久久中文字幕 | 日韩人妻无码一区二区三区久久99 | yy6080久久| 无码人妻少妇久久中文字幕蜜桃|