Protocol Inspection Toolkit Design for Serial Communication Protocols
Poutiainen, Pietari (2020)
Poutiainen, Pietari
2020
Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-11-25
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202010287601
https://urn.fi/URN:NBN:fi:tuni-202010287601
Tiivistelmä
Protocol inspection, sometimes also referred to as packet analysis, plays an essential role in understanding serial network traffic. In essence, protocol inspection is the task of parsing and decoding a communication data stream into a more structured human-readable format. Even though widely used standardized communication protocols exist and should always be preferred over new ones, new protocols are still being developed on top of these standards due to differences in the case-specific communication requirements. As these new protocols are created, new dissectors are needed to understand the protocol and verify its correctness.
This thesis focuses on creating a tool that could enable a more efficient flow for developing dissectors for the serial communication medium. The solution tries a unique approach in which a PC-based logic analyzer is used to capture the protocol data. This approach is expected to improve the control that the dissector has over the physical communication layer. The presented PC-based logic analyzer comes with a graphical user interface that supports creating protocol analyzers plugins written in the C++ language. Many existing protocol analyzers have already been created for the platform, proving that the tool can generate useful data about the protocol packet layer. An added design is presented, which provides a way to combine protocol dissectors into a layered structure. This group of dissectors would then help provide information over multiple protocol layers simultaneously.
The target system presented in this thesis shows an example of a communication protocol for which a dissector is created. The communication protocol in the target system is analyzed with the help of the OSI reference model to find out the concepts and standards that are relevant for the communication in question. The dissector for the target protocol utilizes the layered dissector design and the PC-based logic analyzer. The dissection plugin design is presented using the unified modeling language and with the help of the OSI reference model of the studied protocol. A fully functional dissection solution for this target system is presented by the end of the thesis.
The research within this thesis concludes that the novel idea of using a PC-based logic analyzer is a viable option for analyzing serial communication protocols. The research is presented using the three-cycle view of Design Science research. The analyzer toolkit solution is also compared against other alternatives to find the benefits and drawbacks present in the chosen solution. Tietoliikenneprotokollan tutkimisella, eli pakettianalyysillä, on tärkeä rooli sarjallisen verkkoliikenteen ymmärryksen parantamisessa. Yksinkertaisimmillaan tietoliikenneprotokollan analysointi on tehtävä, jossa binäärinen kommunikaatiodata muokataan ihmiselle luettavampaan muotoon. Vaikkakin yleisesti tunnettuja kommunikaatiostandardeja on olemassa ja näiden käyttö on suotavaa, niin uusia tietoliikenneprotokollia luodaan näiden olemassa olevien standardien päälle täyttämään tapauskohtaisia kommunikaatioväylän vaatimuksia. Aina kun uusia tietoliikenneprotokollia luodaan, niin uusia protokolla-analysaattoreita tarvitaan kyseisten protokollien ymmärtämiseksi ja niiden oikeellisuuden varmistamiseksi.
Tämän diplomityön tavoitteena on kehittää sarjaliikennepohjaisille kommunikaatioratkaisuille tarkoitettu työkalu, jonka avulla olisi helppo luoda uusia protokolla-analysaattoreita uusille protokollille. Ratkaisussa esitetään omalaatuinen lähestymistapa, jossa tietoliikenneprotokollan datan tallentamisessa käytetään hyväksi PC logiikka-analysaattoria. Tämän lähestymistavan oletetaan parantavan protokolla-analysaattorin kykyä mukautua kommunikaatioprotokollan fyysisen tason vaatimuksiin. Työssä esitetty PC logiikka-analysaattori sisältää käyttöliittymä-ohjelman, jonka avulla on mahdollista luoda ohjelmaan lisättäviä tietoliikenneprotokolla-analysaattoriliitännäisiä C++ ohjelmistokielellä. Useat laitteelle jo olemassa olevat protokolla-analysaattoritoteutukset vahvistavat käsitystä siitä, että työkalun avulla on mahdollista luoda laadukasta tietoa sarjallisesta kommunikaatiosta pakettitasolla. Työssä esitetään lisäksi ohjelmistomalli, jonka avulla protokolla-analysaattoreita voidaa rakentaa kerroksittaisesti. Tämä kerroksittainen \\ protokolla-analysaattorijoukko mahdollistaa kokonaisuuden, joka voi tuottaa dataa useasta tietoliikenneprotokollapinosta samanaikaisesti.
Tässä diplomityössä esitetyssä käyttökohteessa on esimerkki tietoliikenneprotokollasta, jolle protokolla-analysaattori tehdään. Käyttökohteessa esiintyvää tietoliikenneprotokollaa tarkastellaan käyttäen hyväksi OSI-viitemallia, jonka tarkoituksena on löytää tietoliikenneprotokollalle olennaisia käsitteitä ja standardeja. Työn aikana esitetään kokonainen käyttökohteelle sopiva ratkaisu protkollan analysointiin.
Työssä tehty tutkimus osoittaa, että valittu omalaatuinen idea käyttää PC-pohjaista logiikka-analysaattoria on sopiva vaihtoehto sarjallisten tietoliikenneprotokollien analysointiin. Tutkimus esitetään käyttäen hyväksi kolmisyklistä Design Science -tutkimusmallia. Esitetyn protokollan analysointimenetelmän vahvuuksia ja heikkouksia tarkastellaan lopuksi vertaamalla ratkaisua jo olemassa oleviin vaihtoehtoisiin ratkaisuihin.
This thesis focuses on creating a tool that could enable a more efficient flow for developing dissectors for the serial communication medium. The solution tries a unique approach in which a PC-based logic analyzer is used to capture the protocol data. This approach is expected to improve the control that the dissector has over the physical communication layer. The presented PC-based logic analyzer comes with a graphical user interface that supports creating protocol analyzers plugins written in the C++ language. Many existing protocol analyzers have already been created for the platform, proving that the tool can generate useful data about the protocol packet layer. An added design is presented, which provides a way to combine protocol dissectors into a layered structure. This group of dissectors would then help provide information over multiple protocol layers simultaneously.
The target system presented in this thesis shows an example of a communication protocol for which a dissector is created. The communication protocol in the target system is analyzed with the help of the OSI reference model to find out the concepts and standards that are relevant for the communication in question. The dissector for the target protocol utilizes the layered dissector design and the PC-based logic analyzer. The dissection plugin design is presented using the unified modeling language and with the help of the OSI reference model of the studied protocol. A fully functional dissection solution for this target system is presented by the end of the thesis.
The research within this thesis concludes that the novel idea of using a PC-based logic analyzer is a viable option for analyzing serial communication protocols. The research is presented using the three-cycle view of Design Science research. The analyzer toolkit solution is also compared against other alternatives to find the benefits and drawbacks present in the chosen solution.
Tämän diplomityön tavoitteena on kehittää sarjaliikennepohjaisille kommunikaatioratkaisuille tarkoitettu työkalu, jonka avulla olisi helppo luoda uusia protokolla-analysaattoreita uusille protokollille. Ratkaisussa esitetään omalaatuinen lähestymistapa, jossa tietoliikenneprotokollan datan tallentamisessa käytetään hyväksi PC logiikka-analysaattoria. Tämän lähestymistavan oletetaan parantavan protokolla-analysaattorin kykyä mukautua kommunikaatioprotokollan fyysisen tason vaatimuksiin. Työssä esitetty PC logiikka-analysaattori sisältää käyttöliittymä-ohjelman, jonka avulla on mahdollista luoda ohjelmaan lisättäviä tietoliikenneprotokolla-analysaattoriliitännäisiä C++ ohjelmistokielellä. Useat laitteelle jo olemassa olevat protokolla-analysaattoritoteutukset vahvistavat käsitystä siitä, että työkalun avulla on mahdollista luoda laadukasta tietoa sarjallisesta kommunikaatiosta pakettitasolla. Työssä esitetään lisäksi ohjelmistomalli, jonka avulla protokolla-analysaattoreita voidaa rakentaa kerroksittaisesti. Tämä kerroksittainen \\ protokolla-analysaattorijoukko mahdollistaa kokonaisuuden, joka voi tuottaa dataa useasta tietoliikenneprotokollapinosta samanaikaisesti.
Tässä diplomityössä esitetyssä käyttökohteessa on esimerkki tietoliikenneprotokollasta, jolle protokolla-analysaattori tehdään. Käyttökohteessa esiintyvää tietoliikenneprotokollaa tarkastellaan käyttäen hyväksi OSI-viitemallia, jonka tarkoituksena on löytää tietoliikenneprotokollalle olennaisia käsitteitä ja standardeja. Työn aikana esitetään kokonainen käyttökohteelle sopiva ratkaisu protkollan analysointiin.
Työssä tehty tutkimus osoittaa, että valittu omalaatuinen idea käyttää PC-pohjaista logiikka-analysaattoria on sopiva vaihtoehto sarjallisten tietoliikenneprotokollien analysointiin. Tutkimus esitetään käyttäen hyväksi kolmisyklistä Design Science -tutkimusmallia. Esitetyn protokollan analysointimenetelmän vahvuuksia ja heikkouksia tarkastellaan lopuksi vertaamalla ratkaisua jo olemassa oleviin vaihtoehtoisiin ratkaisuihin.