У меня должна быть возможность проверять отметки TOS / DSCP на данных ответа от набора HTTP-серверов. Возможно ли, учитывая список целевых URL-адресов для проверки, если в go
есть способ сгенерировать HTTP-запрос, а затем иметь возможность проверить данные TCP-пакета ответа для получения значения TOS?
На данный момент я предполагаю, что для этого может потребоваться создать сокет, а затем динамически сгенерировать пакет TCP, содержащий полезную нагрузку HTTP-запроса. Я искал вокруг, чтобы увидеть, есть ли какие-нибудь библиотеки, которые могли бы помочь в этой задаче, но пока не нашел ничего конкретного.
Примечание: простое TCP-соединение не предоставит достаточно данных - рассматриваемые целевые серверы будут динамически изменять метки TOS / DSCP в зависимости от имени HTTP-сервера (поэтому, по сути, один физический сервер будет отвечать разными метками TOS в зависимости от vHost запрашивается), поэтому важно иметь возможность проверять TOS по фактическим ответным пакетам HTTP, а не по чему-то простому, например, по пингу. Значениям TOS в трехстороннем рукопожатии TCP также нельзя доверять - это должен быть пакет, содержащий данные HTTP.