Aracılığıyla paylaş


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.