This repository has been archived on 2020-12-30. You can view files and clone it, but cannot push or open issues or pull requests.
NetworkProtocolDictionary/README.md

28 lines
1.4 KiB
Markdown
Raw Normal View History

2015-01-04 12:21:42 +01:00
Network Protocol Dictionary
===
This is a YAML network protocol dictionary for all (binary based) OSI-Layer 1-4 protocols, eg. Ethernet, IP, TCP, UDP, etc.
2015-01-04 16:30:26 +01:00
- What this dictionary should be:
2015-01-04 16:31:12 +01:00
- A complete **machine readable** *structure definition* dictionary for all binary based network protocols
2015-01-04 16:30:26 +01:00
- Addon: some protocol documentation from wikipedia or RFCs for display use.
- A reference for building a network packet from scratch in an application, mostly for applications dealing with network packets.
- What it is clearly **NOT**:
- Currently: complete.
- A replacement for reading RFCs
2015-01-04 16:34:15 +01:00
- Dependencies and constraints are **NOT** defined in this dictionary
2015-01-04 16:30:26 +01:00
- A source for implementing network stacks
2015-01-04 12:21:42 +01:00
How to add a new protocol
----
2015-01-04 12:25:05 +01:00
Clone. Check structure-schema.yml. Install kwalify (has ruby as dependency!). Write protocol file in ./protocols/osi[layer]/[protocolname].yml. Validate structure with 'kwalify -lf structure-schema.yml [path/to/protocolname].yml' or validate all at once with 'kwalify -lf structure-schema.yml ./protocols/osi*/*.yml'. Be happy.
2015-01-04 12:21:42 +01:00
How to use this dictionary
----
Clone. Get a YAML library for your program language. Load desired protocol files, or all of them. Use resulting data structures to build protocol packet structures.
This repository will provide examples or useable code snippets for specific programming languages in the future...