Я делаю SSL-сервер, и я не использую библиотеку python, так как хочу внести некоторые неортодоксальные изменения в процесс. Из-за этого я не могу просто запустить TCP-соединение, так как мне нужно передать данные шифрования с помощью рукопожатия, которое я не могу выполнить над сокетами. Поэтому я использую scapy для создания рукопожатия, но после этого я хотел бы продолжить работу с TCP-сокетом, не переходя снова в процесс рукопожатия. Это возможно?Возможно ли запустить соединение сокетов TCP без установления связи?
ответ
Если я правильно понял ваш вопрос, вы обменялись несколькими сегментами, используя scapy, и теперь хотите изготовить из них полноценный полноразмерный разъем.
Это нелегко: для всех практических целей ваш TCP не обращает внимания на то, что вы отправили в своих пакетах, и он не поддерживает какое-либо состояние для этого TCP-соединения: все состояние находится в вашем приложении.
Сказанное: в Linux есть вещь, называемая TCP_REPAIR
, которая позволяет помещать сокет в заданное состояние.
Когда эта опция используется, сокет переключается в специальный режим, в которой любое действие, выполненное на нем не приводит к чему определенной с помощью соответствующих действий протокола, а скорее непосредственно ставит гнездо в состояние, в котором ожидается, что гнездо находится в конце успешно завершенной операции.
Если вы установили порядковые номера правильно, розетка должна «просто работать».,
Кроме того, нужно восстановить последовательность TCP номеров. Для этого были введены параметры TCP_REPAIR_QUEUE и TCP_QUEUE_SEQ.
Конечно, все это относится к современной Linux; другие операционные системы могут иметь или не иметь аналогичных механизмов.
- 1. TCP-соединение 4-стороннего установления связи
- 2. проблема установления соединения сокетов TCP
- 3. Обход TCP трехстороннего установления связи?
- 4. Задержка установления связи TCP
- 5. Надежность установления связи TCP
- 6. Соединение сокетов TCP
- 7. C# отправить TCP-пакет без установления связи TCP
- 8. Корректировка связи сокетов TCP
- 9. Возможно ли «que» fsockopen? Несколько TCP-сокетов
- 10. Можно ли отправить параметры установления связи через разъем tcp?
- 11. Необходимость трехстороннего установления связи
- 12. Соединение TCP сокетов Java Отказано
- 13. TCP-сервер: передать соединение сокетов
- 14. Соединение сокетов TCP как услуга
- 15. Тайм-аут установления связи SSL
- 16. Ошибка связи сокетов TCP после первого испытания
- 17. filezilla Время установления связи
- 18. Как отключить соединение сокетов TCP/IP программно?
- 19. Соединение сокетов TCP с Node.JS и AWS
- 20. получить точное соединение - TCP сокетов - канал - goroutine
- 21. Соединение сокетов TCP с lokal broker
- 22. Можно ли отправлять строки через соединение с портом Ethernet без установления соединения между сервером и клиентом?
- 23. Возможно ли мультиплексирование соединений сокетов?
- 24. Время установления связи
- 25. Повышение эффективности установления связи SSL
- 26. Фазы установления связи TCP, соответствующие точкам возврата select() и accept()
- 27. Ошибка установления связи TLS
- 28. Ошибка установления связи SSL
- 29. javax.net.ssl.SSLHandshakeException: Удаленное соединение с закрытым хостом во время установления связи
- 30. Соединение сокетов PostgreSQL
спасибо. Я не запускаю Linux, есть ли возможность запускать сокет из UDP в TCP после выполнения рукопожатия? Кроме того, я слышал о «Raw Sockets». Можно ли использовать все это вместо этого? Я еще не читал о сырых сокетах, но если вам удалось узнать, что это возможно с этим методом, я буду изучать их. –
@jep_macca "есть возможность отличать сокет от UDP до TCP" абсолютно нет. Необработанные сокеты вам не помогут: по определению сырые сокеты не имеют семантики уровня транспорта. – cnicutar
Хорошо, спасибо вам за помощь. Я буду искать TCP_REPAIR для Windows, надеюсь, что есть такая вещь. Создание TCP-соединения было бы очень утомительным при подключении UDP и таймаутах. –