Bir İletim Kümesi Belirtme
Bir iletim kümesi, bir protokolü izleyen protokolleri belirtir. Ayrıştırıcı, yalnızca bir protokol örneğindeki verilerden sonraki protokolü tanımlayabildiğinde bir devretme kümesi kullanır.
Örneğin TCP protokolü, TCP protokolünü izleyen protokolü tanımlayan bir bağlantı noktası özelliğine sahiptir. 20 özellik değeri, sonraki protokolün FTP olduğunu gösterir. 53 özellik değeri, sonraki protokolün DNS olduğunu gösterir. Bağlantı noktası özelliği aşağıdaki protokolü tanımladığından, TCP ayrıştırıcısı bağlantı noktası özelliğinin belirttiği protokol için bir tanıtıcı almak üzere aşağıdaki iletim kümesini kullanabilir.
[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
İletim kümeleri ayrıştırıcı INI dosyasında depolanır. Örneğin, önceki TCP iletim kümesi tcpip.ini dosyasında bulunur. Ayrıştırıcı DLL birden çok protokolü destekliyorsa, bir iletim kümesi kullanan her ayrıştırıcının INI dosyasında kendi konumu vardır.
İletim kümesi bilgileri, ParserAutoInstallInfo işlevinin uygulanması sırasında belirtilir. Ayrıştırıcı ayrıştırıcı protokolünden önce gelen protokolleri ve ayrıştırıcı protokollerini izleyen protokolleri belirtebilir. Ağ İzleyicisi, önceki tüm protokolleri alır ve bu protokoller için, ayrıştırıcı INI dosyasının "follow set" bölümlerine ayrıştırıcı protokolünü ekler. Ağ İzleyicisi, ayrıştırıcı INI dosyasının iletim kümesi bölümünde yer alan protokollerin listesini depolar.
Ağ İzleyicisi, iletim kümesi bilgilerini ayrıştırıcı INI dosyasında depolar, ancak ayrıştırıcı INI dosyalarına doğrudan erişmez. İletim kümesindeki bilgileri kullanmak için ayrıştırıcı, CreateHandoffTable işlevini çağırarak bir iletim tablosu oluşturur. Genellikle, protokol ayrıştırıcı tarafından kaydedildiğinde devretme tablosu oluşturulur. Protokol kaydedildikten sonra Ağ İzleyicisi ayrıştırıcının kullanabileceği bir iletim kümesi tablosu oluşturur.
Ayrıştırıcı, verileri tanırken iletim kümesini kullanır. Önce ayrıştırıcı, özelliğin bir sonraki protokolü tanımlayan değerini okur. Ardından ayrıştırıcı, bir sonraki protokol için bir tanıtıcı almak üzere GetProtocolFromTable'ü çağırır. Son olarak, ayrıştırıcı phNextProtocolRecognizeFrameparametresindeki tanıtıcıya bir işaretçi döndürür.