Я немного смущен вашим вопросом. Конечно, вы можете установить параметры сокета для сокета, используя функцию setsockopt , но, судя по всему остальному вопросу, это не совсем то, что вы имеете в виду. Я никогда не слышал ни о каком транспортном протоколе под названием Аутентифицированный TCP , и Google не выдает ничего полезного. Это стандарт; есть ли RFC?
Если вы просто хотите получить защищенный аутентифицированный транспортный уровень TCP, то вам следует обратиться к Secure Sockets Layer, или SSL для краткости, или заменить его, Transport Layer Security или TLS для краткости. Почти наверняка будет реализация для любого языка, который вы используете (вы не указали).
Кроме того, что вы подразумеваете под MD5 для аутентификации? MD5 - это алгоритм хеширования, однако он недостаточно устойчив к коллизиям для использования в обмене данными, где требуются безопасные подписи.
Редактировать ага! Вы говорите о параметрах TCP, теперь я понимаю. Я не видел никаких реализаций этой конкретной опции TCP, встроенной в какой-либо из API сокетов, поэтому вам может не повезти здесь. Это зависит от используемой вами реализации, но это может быть особенно редко, учитывая, что это довольно непонятный вариант TCP, предназначенный для улучшения протокола пограничного шлюза, а не тот, который вы обычно используете для внешнего программного обеспечения маршрутизации. В случае, если это поддерживается, вы должны установить что-то вроде этого:
BOOL optVal = TRUE;
int optLen = sizeof(BOOL);
if (setsockopt(
socket,
IPPROTO_TCP,
TCP_WHATEVER,
optVal,
optLen) != SOCKET_ERROR) {
printf("Success\n");
}