Wireshark is an open-source packet analyzer. It is widely used for network troubleshooting, software and communication protocol development, etc.
Wireshark understands the structure of different networking protocols.
It can parse and display the fields, along with their meanings as specified by different networking protocols.
The parser of each protocol is called a dissector.
Wireshark is equipped with thousands of dissectors on different levels, including Ethernet, IPv4, UDP, SNMP, HTTP, and many more.
One can either write a dissector in C programming language and compile it into Wireshark binary, or write a dissector in Lua scripting language and load it when Wireshark starts.