指定交接集
一個轉移集指定遵循某個通訊協議的一組協議。 只有在剖析器可以從通訊協議實例中的數據識別下一個通訊協定時,剖析器才會使用交接集。
例如,TCP 通訊協定具有埠屬性,可識別 TCP 通訊協定後面的通訊協定。 屬性值 20 表示下一個通訊協定為 FTP。 屬性值 53 表示下一個通訊協定是 DNS。 因為埠屬性會識別後續的通訊協定,因此 TCP 剖析器可以使用下列交接集來取得埠屬性所指定通訊協定的句柄。
[TCP_HandoffSet]
20 = FTP
21 = FTP
23 = TELNET
25 = SMTP
53 = DNS
79 = FINGER
80 = HTTP
102 = ISO
111 = RPC
119 = NNTP
137 = NBT, 1000
138 = NBT, 1002
139 = NBT, 1001
389 = LDAP
445 = NBT, 1001
515 = LPR
612 = HMMP
613 = HMMP
1024 = NBT, 1001
1047 = NBT, 1001
1362 = TDS
1433 = TDS
1723 = PPTP
3020 = NBT, 1001
3268 = LDAP
5678 = PPTP
移交集合會儲存在剖析器的 INI 檔案中。 例如,上述 TCP 交接集位於 tcpip.ini 檔案中。 請注意,如果剖析器 DLL 支援多個通訊協定,則每個使用交接集的剖析器在 INI 檔案中都有自己的位置。
在執行 ParserAutoInstallInfo 函式的過程中,會設定交接集資訊。 剖析器可以指定剖析器通訊協定前面的通訊協定,以及遵循剖析器通訊協定的通訊協定。 網路監視器會採用之前的所有通訊協定,並將剖析器通訊協定新增至剖析器 INI 檔案的下列設定區段,針對每個先前的通訊協定。 網路監視器會將後續通訊協定清單儲存在剖析器 INI 檔案的交接集區段中。
網路監視器會將交接集資訊儲存在剖析器 INI 檔案中,但剖析器無法直接存取 INI 檔案。 若要使用交接集中的資訊,剖析器會呼叫 CreateHandoffTable 函式來建立交接數據表。 一般而言,剖析器註冊通訊協定時會建立交接數據表。 註冊通訊協議之後,網路監視器會建立剖析器可以使用的交接集數據表。
解析器會在辨識數據時使用其切換集合。 首先,剖析器會讀取識別下一個通訊協定的 屬性值。 然後,剖析器會呼叫 GetProtocolFromTable,以取得下一個協定的控制代碼。 最後,解析器會傳回指向 RecognizeFrame之 phNextProtocol 參數中的句柄的指標。