Określanie zestawu przełączania
Zestaw przekazywania określa protokoły, które są zgodne z protokołem. Analizator używa zestawu przekazywania tylko wtedy, gdy analizator może zidentyfikować następny protokół z danych w wystąpieniu protokołu.
Na przykład protokół TCP ma właściwość portu, która identyfikuje protokół zgodny z protokołem TCP. Wartość właściwości 20 wskazuje, że następnym protokołem jest FTP. Wartość właściwości 53 wskazuje, że następnym protokołem jest DNS. Ponieważ właściwość portu identyfikuje protokół następujący po niej, analizator TCP może użyć poniższego zestawu przekazywania, aby uzyskać uchwyt dla protokołu określonego przez właściwość portu.
[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
Zestawy przekazywania są przechowywane w pliku INI analizatora. Na przykład powyższy zestaw przekazywania TCP znajduje się w pliku tcpip.ini. Należy pamiętać, że jeśli biblioteka DLL analizatora obsługuje wiele protokołów, każdy analizator używający zestawu przekazywania ma własną lokalizację w pliku INI.
Informacje o zestawie przekazywania są określane podczas implementacji funkcji ParserAutoInstallInfo. Analizator może określać protokoły poprzedzające protokół analizatora oraz protokoły, które są zgodne z protokołem analizatora. Usługa Network Monitor przyjmuje wszystkie powyższe protokoły i dodaje protokół analizatora do następujących sekcji pliku INI analizatora — dla każdego poprzedniego protokołu. Usługa Network Monitor przechowuje listę protokołów, które następują w sekcji zestawu przekazywania pliku INI analizatora.
Network Monitor przechowuje informacje o zestawie przekazywania w pliku INI analizatora, ale analizator nie uzyskuje do nich bezpośredniego dostępu. Aby użyć informacji w zestawie przekazań, analizator wywołuje funkcję CreateHandoffTable w celu utworzenia tabeli przekazań. Zazwyczaj tabela przekazywania jest tworzona, gdy analizator rejestruje protokół. Po zarejestrowaniu protokołu, Monitor Sieci tworzy tablicę przekazywania danych, której może używać analizator.
Analizator używa zestawu przekazywania podczas rozpoznawania danych. Najpierw analizator odczytuje wartość właściwości, która identyfikuje następny protokół. Następnie analizator wywołuje GetProtocolFromTable, aby uzyskać dojście do następnego protokołu. Na koniec analizator zwraca wskaźnik do uchwytu w parametrze phNextProtocol funkcji RecognizeFrame.