Layers can be stacked on top of each other. It establishes a TCP connection without IP, but all of it runs on TCP/IP eventually.
That makes sense, being able to do socks5 and websockets without IP would be impressive.