I am having a hard time understanding what a SOCKS proxy really is. I have been searching on Google, but so far, most websites compare SOCKS with an HTTP proxy, but they do not explain in detail what a SOCKS proxy is, and why it can be used to bypass firewalls.
From what I have read, I know that SOCKS proxies forward packets as they are (raw) and they don't actually interpret the data that they send, they simply forward. I understand, for example, that an HTTP proxy understands the HTTP protocol, and with that, they can record these packets if they want, but in SOCKS?
I only know that it is a protocol and it is used to proxy connections but nothing else.
Can you please explain what a SOCKS proxy is, and how it allows connections to bypass a firewall?