Клиент который желает установить соединение посылает SYN
пакет, ядро его обрабатывает и ставит в очередь,
либо посылает пакет RST если она заполнена...
затем мы выполняем сискол accept в результате которого
клиенту отправляется SYN+ACK после чего ждем пакета ACK
от клиента после чего соединение считается установленым
Меня интерисует ряд вопросов:
1) Клиент если не получает ответа посылает SYN пакеты
еще несколько раз, что ядро делает со старыми SYN пакетами
которые уже стоят в очереди но на которые accept сделан небыл
вернее не успели мы его сделать...
пакеты просто добавляються в очередь либо таки есть
какой-то механизм удаления старых пакетов ?
2) После того как мы сделали accept пакет SYN+ACK
отправляется, но если удаленная сторона прождала
довольно много то как я понимаю она уже либо прекратила
попытки установки соединения и этот пакет будет проигнорирован
либо послала другой SYN пакет с другим номером последовательности
и тут поможет ответ на первый вопрос, либо всеже повторные SYN
пакеты имеют тот же номер и клиент примет пакет ?
3) Как я понимаю, клиент на устаревший пакет SYN+ACK должен
ответить RST и соответственно наш сискол accept должен
завершиться с ошибкой при получении этого пакета, в виндовой
реализации TCP (Win XP) RST посылается как положено или как ?
4) Мы сделали accept пакет SYN+ACK отослался, какое время
Linux система будет ждать ACK пакета от клиента ?
И что произойдет если мы прервем сискол ? Что происходит
с незавершенным соединением оно удаляется либо как-то по другому ?
Сорри за вопросы, я конечно мог бы расковырять ядро
но к сожалению времени мало и возможно кто-то знает уже
ответы на эти вопросы....
Мне интересна именно практическая сторона, а не как все
должно быть в теории, конкретно соединение виндового
клиента с линукс сервером....
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как узнать MSS установленного tcp-соединения? (2011)
- Форум tcp соединение (2011)
- Форум Ожидание установления соединения (2003)
- Форум После установления соединения... (2000)
- Форум TCP, Разрыв соединения (2011)
- Форум Закрытие TCP соединения. (2010)
- Форум Qt: TCP соединение (2010)
- Форум Перехват TCP-соединения (2006)
- Форум соединение по TCP (2006)
- Форум «Снифер» tcp-соединений (2007)