У меня есть несколько основных вопросов о портах и сессиях. Поскольку все это простые и простые вопросы, я задал их вместе:
Я понимаю, что для создания соединения нам нужен сокет (ip+ порт) как на клиенте, так и на сервере. Итак, если установлено одно соединение, то эти порты не будут использоваться для других соединений, верно? Но HTTP (80) или SSH (22) позволяет нескольким клиентам получать доступ к этому порту. Как?
Я прочитал, что есть ограничение на количество портов (~ 65536), доступных в машине. Так что же нужно делать серверу, если нам требуется нечто большее (например, Facebook или Gmail, у которых много клиентов)?
Я могу прочитать, как происходит рукопожатие перед созданием сеанса TCP, но я не уверен, как он поддерживает соединения. Например, если я отсоединяю свой кабель Ethernet, как мой сервер узнает, что клиент потерял это соединение? Используется ли какой-либо механизм объединения между клиентом и сервером с некоторым интервалом в соединении TCP?