---
# System prepended metadata

title: Protocol Structure

---

# Protocol Structure

Network protocols are just a sequence of bytes that ordered in a specific way to give them the meaning we want. 

**lets talk about http protocol as an** **example**: 
The HTTP protocol is a text-based protocol which means that this protocol sends all its data in a formatted text (It is just bytes in order way again, but this these bytes are characters).

we can take *Counter Strike server* from [[here](https://www.gametracker.com/search/cs/?sort=0&order=DESC)] as an example of, one of the available ports right now is => ip:port : 193.37.215.10:27015.

To decode this server, plz take a look to **Part 1** in the following code and notice the output results
https://colab.research.google.com/drive/1EcwXcf-O9dh63JKkzss_jN21Pm0pCnEz?usp=sharing


*take this site as a reference for **protocol structure*** https://developer.valvesoftware.com/wiki/Server_queries

Now:: to create your own protocol you just need to put your data in a specific way that should be known to the decoder& encoder

![](https://i.imgur.com/a6Hpqzs.png)

this simple protocol could be codded in 5 lines as written in **Part 2**:
[https://colab.research.google.com/drive/1EcwXcf-O9dh63JKkzss_jN21Pm0pCnEz?usp=sharing]



