Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как устанавливается tcp соединение?  (Прочитано 1614 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Здравствуйте.

Как происходит установка tcp соединения?

прочел что так, верно?

клиент--->SYN--->сервер
клиент<---SYN,ACK<---сервер
клиент--->ACK--->сервер

тогда где же NEW?

Как это работает?
Спасибо.

Оффлайн kosteek

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 885
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #2 : 27 Июля 2018, 14:35:50 »
клиент--->SYN--->сервер клиент<---SYN,ACK<---сервер клиент--->ACK--->сервер тогда где же NEW?
это все и есть NEW

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #3 : 27 Июля 2018, 16:30:31 »
snowin, если позволите, продолжение вопроса.
Верно я понимаю, клиент отправляет SYN, и если не получает ответа то соединение остается полуоткрытым, верно?
До тех пор пока сервер не ответит и соединение установлено не будет передача данных не возможна, всё так?
Т.е. нужен или новый SYN от клиента для установки нового соединения, или ответ от сервера?

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 885
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #4 : 27 Июля 2018, 16:56:14 »
Ввысь, и да и нет
соединение считается установленным при наличии всех трех шагов
прерывание на любом этапе будет считаться полуоткрытым соединением
в случае с iptables достаточно двух шагов, чтобы соединение считалось established
если ответа не пришло через какое-то время, соединение будет сброшено,
и тогда необходимо заново инициализировать подключение к серверу

Оффлайн kosteek

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #5 : 27 Июля 2018, 17:00:50 »
1. Нет. Вы не правильно понимаете.

клиент--->SYN--->сервер
клиент<---SYN,ACK<---сервер
клиент--->ACK--->сервер

Это тройное рукопожатие, после их удачного выполнения и будет считаться открытым соединением - т.е. это то, что вы называете NEW

2. Да.

3. Зависит от сервера, может он с Вами и не хочет общаться (правила firewall срабатывают на сервере), или порт не прослушивает сервер.

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 885
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #6 : 27 Июля 2018, 17:05:33 »
да, сам запутался
для установленного соединения необходимо тройное рукопожатие
а вот для NEW достаточно двойного

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #7 : 27 Июля 2018, 17:21:51 »
kosteek, snowin, возможна ли отправка клиентом еще одного SYN в рамках уже полуоткрытого соединения?
Или клиенту необходимо устанавливать новое соединение?


Оффлайн snowin

  • Активист
  • *
  • Сообщений: 885
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #8 : 27 Июля 2018, 17:28:44 »
Ввысь, не только возможна, но и необходима в случае, если если от сервера не пришел вовремя ответ


Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #9 : 27 Июля 2018, 18:33:19 »
snowin, получается, если отправлять новые SYN соединение никогда не закроется?

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 885
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #10 : 27 Июля 2018, 20:43:40 »
Ввысь, закроется, по таймауту

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Re: Как устанавливается tcp соединение?
« Ответ #11 : 27 Июля 2018, 20:45:53 »
snowin, понял, спасибо.

 

Страница сгенерирована за 0.051 секунд. Запросов: 23.