Häufige Fragen im Vorstellungsgespräch zu Computernetzwerken (1)
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Häufige Fragen in Computernetzwerk-Interviews umfassen viele Ebenen, einschließlich Netzwerkprotokolle, Netzwerkarchitektur, Netzwerksicherheit, Datenübertragung usw. Hier finden Sie detaillierte Erläuterungen zu einigen häufig gestellten Fragen:
1. Was ist das siebenschichtige OSI-Modell? Welche Funktion hat jede Schicht?
OSI-SiebenschichtmodellEs handelt sich um ein Standardsystem für die Verbindung zwischen Computern oder Kommunikationssystemen, das von der Internationalen Organisation für Normung (ISO) formuliert wurde. Von oben nach unten lautet es:
- Anwendungsschicht: Bereitstellung interaktiver Dienste für Anwendungen wie HTTP, FTP, SMTP und andere Protokolle.
- Präsentationsfolie: Datendarstellung, Sicherheit und Komprimierung, Konvertierung von Daten auf Anwendungsebene in ein für die Netzwerkübertragung geeignetes Format.
- Sitzungsschicht: Sitzungen einrichten, verwalten, beenden, Kommunikation zwischen zwei Sitzungsprozessen organisieren und koordinieren.
- Transportschicht: Verantwortlich für die Bereitstellung von Datenübertragungsdiensten für die Kommunikation zwischen zwei Hostprozessen, einschließlich TCP- und UDP-Protokollen, um eine zuverlässige Datenübertragung zu erreichen.
- Netzwerkschicht: Wählen Sie geeignete Routing- und Switching-Knoten aus, um eine zeitnahe Datenübertragung sicherzustellen. Das Hauptprotokoll ist IP.
- Datenübertragungsebene: Beim Übertragen von Daten zwischen zwei benachbarten Knoten werden die von der Netzwerkschicht übergebenen IP-Datagramme in Frames zusammengestellt und die erforderlichen Steuerinformationen hinzugefügt.
- physikalische Schicht: Realisieren Sie die transparente Übertragung von Bitströmen zwischen benachbarten Computerknoten und schirmen Sie Unterschiede bei Übertragungsmedien und physischen Geräten so weit wie möglich ab.
2. Was ist der Unterschied zwischen TCP und UDP?
TCP (Transmission Control Protocol) und UDP (User Datagram Protocol) sind beide Transportschichtprotokolle. Zu ihren Hauptunterschieden gehören:
- Konnektivität: TCP ist ein verbindungsorientiertes Protokoll und es muss eine Verbindung hergestellt werden, bevor Daten übertragen werden. UDP ist ein verbindungsloses Protokoll und es muss keine Verbindung hergestellt werden, bevor Daten gesendet werden.
- Zuverlässigkeit: TCP bietet eine zuverlässige Übertragung und gewährleistet die korrekte Datenübertragung durch Mechanismen wie Sequenznummern, Bestätigungsantworten und Timeout-Neuübertragungen. UDP bietet keine Zuverlässigkeitsgarantien und Daten können verloren gehen oder in der falschen Reihenfolge ankommen.
- Übertragungseffizienz: Da TCP eine Verbindung herstellen und Zuverlässigkeitsprüfungen durchführen muss, ist seine Übertragungseffizienz relativ gering, während UDP diesen Overhead nicht aufweist und eine höhere Übertragungseffizienz aufweist.
- Anwendungsszenarien: TCP eignet sich für Anwendungsszenarien, die eine zuverlässige Übertragung erfordern, z. B. Dateiübertragung, Surfen im Internet usw.; UDP eignet sich für Anwendungsszenarien, die eine hohe Echtzeitleistung erfordern und einen gewissen Datenverlust tolerieren können, z. B. Live-Videos Übertragungen, Online-Spiele usw.
3. Was ist der Unterschied zwischen HTTP und HTTPS?
Der Hauptunterschied zwischen HTTP (Hypertext Transfer Protocol) und HTTPS (Hypertext Transfer Protocol Secure) ist die Sicherheit:
- Sicherheit: HTTP überträgt Klartext und Daten können leicht abgefangen und manipuliert werden, während HTTPS eine SSL/TLS-Protokollschicht zu HTTP hinzufügt, um Daten zu verschlüsseln und zu übertragen, um die Sicherheit der Datenübertragung zu gewährleisten.
- Die Portnummer: HTTP verwendet standardmäßig Port 80; HTTPS verwendet standardmäßig Port 443.
- Leistung: Da HTTPS Verschlüsselungs- und Entschlüsselungsvorgänge erfordert, wird seine Leistung im Vergleich zu HTTP verringert.
4. Wie läuft der TCP-Drei-Wege-Handshake und die Vier-Wege-Welle ab?
TCP-Drei-Wege-HandshakeDer Prozess ist wie folgt:
- Der Client sendet ein SYN-Paket (Synchronisationssequenznummer) an den Server, wechselt in den Status SYN_SENT und wartet auf die Bestätigung durch den Server.
- Nach dem Empfang des SYN-Pakets bestätigt der Server das SYN des Clients (ack=j+1) und sendet auch ein SYN-Paket (dh ein SYN+ACK-Paket). Zu diesem Zeitpunkt wechselt der Server in den SYN_RCVD-Status.
- Nach dem Empfang des SYN+ACK-Pakets vom Server sendet der Client ein Bestätigungspaket ACK (ack=k+1) an den Server. Nach dem Senden des Pakets treten der Client und der Server in den ESTABLISHED-Status ein und schließen den Drei-Wege-Prozess ab Händedruck.
TCP winkt viermalDer Prozess ist wie folgt:
- Der Client sendet eine FIN, um die Datenübertragung vom Client zum Server zu schließen, und der Client wechselt in den Status FIN_WAIT_1.
- Nachdem der Server die FIN empfangen hat, sendet er eine Bestätigung an den Client. Die Bestätigungssequenznummer ist die empfangene Sequenznummer + 1 (dasselbe wie bei SYN, eine FIN belegt eine Sequenznummer), und der Server wechselt in den Status CLOSE_WAIT.
- Der Server schließt die Verbindung mit dem Client, sendet eine FIN an den Client und der Server wechselt in den Status LAST_ACK.
- Nach Erhalt der FIN sendet der Client eine Bestätigung an den Server, in der bestätigt wird, dass die Sequenznummer die empfangene Sequenznummer + 1 ist, und der Client wechselt in den Status TIME_WAIT. Der Server schließt die Verbindung nach Erhalt der Bestätigung. Wenn der Client nach dem Warten auf 2MSL immer noch keine Antwort erhält, wechselt er in den Status CLOSED.
5. Warum erfordert TCP drei statt zwei Handshakes?
Der Hauptgrund, warum TCP einen Drei-Wege-Handshake anstelle eines Zwei-Wege-Handshakes erfordert, besteht darin, sicherzustellen, dass beide Parteien in der Lage sind, Daten zu empfangen und zu senden und so eine zuverlässige Verbindung herzustellen. Speziell:
- Der erste Handshake: Der Client sendet ein SYN-Paket und der Server bestätigt die Sendefähigkeit des Clients.
- Zweiter Handshake: Der Server sendet ein SYN+ACK-Paket und der Client bestätigt die Empfangs- und Sendefunktionen des Servers.
- Der dritte Handshake: Der Client sendet ein ACK-Paket und der Server bestätigt die Empfangsfähigkeit des Clients.
Wenn nur zwei Handshakes stattfinden, kann die folgende Situation auftreten: Der Client sendet eine Verbindungsanforderung, erhält jedoch keine Bestätigung, da die Verbindungsanforderungsnachricht verloren geht, sodass der Client die Verbindungsanforderung erneut überträgt. Später kam eine Bestätigung und die Verbindung wurde hergestellt. Nach Abschluss der Datenübertragung wird die Verbindung freigegeben und der Client sendet insgesamt zwei Verbindungsanforderungssegmente, von denen das erste verloren geht und das zweite den Server erreicht. Das erste verlorene Segment verblieb jedoch nur für längere Zeit in einigen Netzwerkknoten und erreichte erst eine bestimmte Zeit nach der Freigabe der Verbindung den Server. Zu diesem Zeitpunkt ging der Server fälschlicherweise davon aus, dass der Client ein neues ausgegeben hatte Verbindungsanfrage, dann wird ein Bestätigungsnachrichtensegment an den Client gesendet, in dem er dem Verbindungsaufbau zustimmt. Da der Client zu diesem Zeitpunkt keine Datenanforderung gesendet hat, wartet der Server darauf, dass der Client Daten sendet, was zu einer Ressourcenverschwendung führt.
6. Was sind die am häufigsten verwendeten HTTP-Anfragemethoden? Was sind die Unterschiede und Verwendungsmöglichkeiten zwischen ihnen?
Zu den häufig verwendeten HTTP-Anforderungsmethoden gehören GET, POST, PUT, DELETE, CONNECT, OPTIONS und TRACE, wobei GET und POST die beiden am häufigsten verwendeten sind.
- ERHALTEN : Wird zum Senden einer Anfrage zum Abrufen von Daten auf dem Server verwendet. Parameter sind in der URL enthalten und eignen sich für Szenarien, in denen die angeforderte Datenmenge nicht groß und die Sicherheitsanforderungen nicht hoch sind.
- POST : Wird zum Senden von Daten an die durch die URL angegebene Ressource verwendet. Parameter werden über den Anforderungstext übergeben, was für Szenarien geeignet ist, in denen große Datenmengen übermittelt werden oder hohe Sicherheitsanforderungen bestehen.
Andere Anforderungsmethoden wie PUT und DELETE werden verwendet, um Daten auf dem Server zu ändern, Ressourcen auf dem Server zu löschen usw. Jede dieser Anforderungsmethoden hat ihre eigenen spezifischen Verwendungszwecke und anwendbaren Szenarien.
Das Obige ist eine detaillierte Erklärung häufiger Fragen in Interviews über Computernetzwerke. Diese Fragen decken viele Aspekte wie Netzwerkprotokolle, Netzwerkarchitektur und Datenübertragung ab und sind ein wichtiger Teil der Prüfung der Computernetzwerkkenntnisse der Kandidaten.