Mam kilka podstawowych pytań dotyczących portów i sesji. Ponieważ wszystkie są powiązane i proste pytania, zadałem je razem:
Rozumiem, że do utworzenia połączenia potrzebujemy gniazda (ip + port) na kliencie i serwerze. Więc jeśli ustanowione zostanie jedno połączenie, te porty nie będą wykorzystywane do innych połączeń, prawda? Ale HTTP (80) lub SSH (22) pozwala wielu klientom na dostęp do tego portu. W jaki sposób?
Przeczytałem, że istnieje ograniczenie liczby portów (~ 65536) dostępnych w maszynie. Co więc powinien zrobić serwer, jeśli potrzebujemy więcej niż to (na przykład Facebook lub Gmail, którzy mają wielu klientów)?
Mogę przeczytać, jak się dzieje uścisk dłoni przed utworzeniem sesji TCP, ale nie jestem pewien, jak zachowuje połączenia. Na przykład, jeśli odłączę kabel Ethernet, skąd mój serwer wie, że klient utracił to połączenie? Czy jakiś mechanizm pulowania jest wykonywany między klientem a serwerem z pewnym odstępem czasu w połączeniu TCP?