Интерфейс TUN отправляет и получает IP-пакеты. Это означает, что данные, которые вы передаете iface.send
, должны быть IP-пакетами для доставки. Вы можете видеть в своем коде, что вы не указываете, к какому серверу вы подключаетесь, потому что на этом уровне соединения «даже не существуют». IP-адрес в HTTP-запросе указан там, потому что HTTP-протокол говорит об этом, но вы уже должны быть подключены к серверу, когда отправляете эту информацию.
Для отправки и получения данных из интерфейса Tun вы Вам нужно будет создать IP-пакет.
После того, как вы сможете отправлять и получать IP-пакеты, вам нужно будет реализовать протокол TCP поверх этого, чтобы иметь возможность открыть соединение с HTTP-сервером. На этом уровне (TCP) появляется понятие «соединение».
После того, как вы сможете открывать и отправлять / получать данные по TCP-соединению, вам потребуется реализовать протокол HTTP, чтобы иметь возможность общаться с HTTP-сервером, т.е. "GET http://192.168.0.53:8000/foo?bar=898 HTTP/1.1"
.