У меня есть несколько основных вопросов о портах и сессиях. Поскольку все это простые и простые вопросы, я задал их вместе:

  1. Я понимаю, что для создания соединения нам нужен сокет (ip+ порт) как на клиенте, так и на сервере. Итак, если установлено одно соединение, то эти порты не будут использоваться для других соединений, верно? Но HTTP (80) или SSH (22) позволяет нескольким клиентам получать доступ к этому порту. Как?

  2. Я прочитал, что есть ограничение на количество портов (~ 65536), доступных в машине. Так что же нужно делать серверу, если нам требуется нечто большее (например, Facebook или Gmail, у которых много клиентов)?

  3. Я могу прочитать, как происходит рукопожатие перед созданием сеанса TCP, но я не уверен, как он поддерживает соединения. Например, если я отсоединяю свой кабель Ethernet, как мой сервер узнает, что клиент потерял это соединение? Используется ли какой-либо механизм объединения между клиентом и сервером с некоторым интервалом в соединении TCP?

1 ответ1

3
  1. Сервер не отслеживает "соединения", просто используя свой собственный порт и ip, но и клиент. Таким образом, хотя два клиента могут подключаться к одному и тому же IP-адресу назначения и порту на сервере, клиенты используют разные комбинации IP-адресов и портов источника, и сервер разделяет их, используя это.

  2. Как я уже упоминал в первом ответе, нескольким соединениям не нужно использовать несколько портов на стороне сервера для создания "соединения" (см. Ответ 1), поэтому единственный способ избежать нехватки места - это если хостинг 65536 отличается Программы 1 на сервере в то же время, что все необходимые подключения к Интернету в то же время.

  3. Программное обеспечение, которое установило соединение, может установить «тайм-аут», так что, если соединение было разорвано (как в вашем примере с отключением), по истечении заданного промежутка времени, если программное обеспечение не получает новых пакетов с другого конца, программа принимает другой конец потерял соединение и закрывает свою сторону соединения.

Чтобы узнать больше о том, как работает TCP, я действительно рекомендую Security Now! эпизоды о том, как работает интернет

Возможно, вы также захотите послушать эпизоды обратной связи с слушателем, поскольку они проясняют вещи, в которых люди пишут, и говорят, что им нужно больше объяснений.


1: несколько соединений из одной и той же программы могут использовать один и тот же порт, если другой конец соединения имеет другую комбинацию ip/port

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .