Właściwie uczę się sieci komputerowych i jestem przy tym zdezorientowany, w jaki sposób serwer WWW utrzymuje wiele połączeń?
Mówiąc krótko, nauczyłem się przez Google, że gniazda obsługują każde żądanie klienta.
Powiedzmy, że istnieje serwer WWW, i powiedzmy 2 klientów z adresami IP
Client A: 5.5.5.5
Client B: 10.10.10.10
Oboje próbują połączyć się z serwerem na porcie 80.
Teraz, od googlingu, co mam, serwer nasłuchuje na porcie 80 dla przychodzących żądań. Powiedzmy, że klient A próbuje połączyć się z serwerem (nawiązać połączenie TCP / IP). Podczas którego między nimi powstaje gniazdo. Następnie jest wykonywany jako osobny wątek dla dalszej komunikacji, dzięki czemu serwer ponownie nasłuchuje innych żądań klienta na tym konkretnym porcie. A klient B łączy się w ten sam sposób.
Teraz moje pierwsze pytanie brzmi:
1. How does server communicate with these two clients simultaneously
after the connection has been established?
Teraz praktycznie nie tylko 2 klienci, ale tysiące użytkowników mogą połączyć się z serwerem.
Moje następne pytanie brzmi:
2. Now, how do those thousands of clients get connected to a single server?
If we assume every client is connected to the server through wire, it is not
practically possible to maintain that many sockets on a hardware for
connection. How those thousands connections are made and handled?
Wreszcie moje trzecie pytanie brzmi:
3. Above I said (actually heard) how **client A** connected to the the server
and similarly the client B.
But I didn't get the part stating "after a TCP/IP connection is made they
continue separately in a separate socket and making server to listen for
other client requests." What does that mean? If one client is communicating
to the server, how come other can communicate at the same time to same server.
Isn't it like while a student is asking question to a teacher, other can't
ask at the same time since that particular student is busy or occupying the
teacher at the moment so others should wait, which we compare than client B
should wait when client A is communicating.
To są moje podstawowe pytania, których nie dostaję. Proszę mnie poprawić, jeśli wszystko popełniam źle. Możesz zasugerować mi kilka książek / pdf do przeczytania, jeśli odpowiedzi są szczegółowe lub nie są szczególnie skoncentrowane na konkretnej części. Dzięki