指定交接集
交接集會指定遵循通訊協定的通訊協定。 剖析器只有在剖析器可以從通訊協定實例中的資料識別下一個通訊協定時,才會使用交接集。
例如,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參數中控制碼的指標。