Heim / Arbeiten Sie im Internet / Der grundlegende Protokollstapel des Internets ist. Der grundlegende Protokollstapel des Internets. Stack (Netzwerk-Switches). Netzwerkgeräte einrichten. Erforderliche Datenstrukturen

Der grundlegende Protokollstapel des Internets ist. Der grundlegende Protokollstapel des Internets. Stack (Netzwerk-Switches). Netzwerkgeräte einrichten. Erforderliche Datenstrukturen

Netzwerkprotokollstapel und TCP-Hacking

Alexander Antipow

Der Netzwerkprotokollstapel, der das Pipelining und die Kommunikation zwischen Hosts bildet, ist auf die beste Interoperabilität zwischen verschiedenen Netzwerkschichten ausgelegt. In diesem Artikel werden wir versuchen, die Bewegung von Daten durch die im Stack befindlichen Schichten zu beschreiben und versuchen, ein Linux-Kernelmodul zu implementieren, das uns hilft, Daten zu erfassen und anzuzeigen, die die TCP-Schicht passieren. Unten ist ein Programm, das die Installation zeigt neues Element in Dateisystem proz. Und am wichtigsten ist, dass dieses Programm das TCP-Protokoll bricht, alle Daten verfolgt, die die TCP-Schicht passieren, und sie in /proc/TCPdata anzeigt.


Shamitkh, übersetzt von Alexey Antipov

Der Netzwerkprotokollstapel, der das Pipelining und die Kommunikation zwischen Hosts bildet, ist auf die beste Interoperabilität zwischen verschiedenen Netzwerkschichten ausgelegt. In diesem Artikel werden wir versuchen, die Bewegung von Daten durch die im Stack befindlichen Schichten zu beschreiben und versuchen, ein Linux-Kernelmodul zu implementieren, das uns hilft, Daten zu erfassen und anzuzeigen, die die TCP-Schicht passieren. Da eine Diskussion aller Arten von Netzwerkverbindungen den Rahmen dieses Artikels sprengen würde, konzentrieren wir uns auf TCP/IP-Verbindungen.

Netzwerkprotokollstapel

Netzwerkgeräte bilden die Basisschicht des Protokollstapels. Um mit anderen Geräten zu kommunizieren und Datenverkehr zu empfangen und zu übertragen, verwenden sie ein Datenverbindungsprotokoll (normalerweise Ethernet). Die von den Netzwerkgerätetreibern bereitgestellte Schnittstelle kopiert Pakete vom physischen Medium, führt eine Fehlerprüfung durch und legt die Pakete dann in der Netzwerkschicht ab. Die Ausgangsschnittstellen empfangen Pakete von der Vermittlungsschicht, führen eine Fehlerprüfung durch und leiten sie an das physische Medium weiter. Wir werden IP (Internet Protocol) diskutieren, das das Standardprotokoll der Vermittlungsschicht ist. Die Hauptfunktionen von IP sind das Routing, das Überprüfen eingehender Pakete, um festzustellen, ob diese Pakete an einen bestimmten Host gerichtet sind oder weiter weitergeleitet werden müssen. Dabei werden die Pakete ggf. defragmentiert und Transportprotokollen zugestellt. Solche Protokolle sind dynamische Basis routen Daten für ausgehende Pakete, adressieren und fragmentieren sie, bevor sie sie an die Verbindungsschicht senden.

TCP und UDP sind die am häufigsten verwendeten Protokolle der Transportschicht. UDP bietet einen Rahmen für die Adressierung von Paketen innerhalb eines Hosts, während TCP komplexere Verbindungsoperationen wie die Wiederherstellung verlorener Pakete und die Verkehrssteuerung unterstützt.

Wenn wir uns durch die Transportschicht bewegen, finden wir die INET-Schicht, die eine Zwischenschicht zwischen der Transportschicht und Anwendungs-Sockets bildet. Anwendungseigene Sockets werden unter Verwendung der INET-Schicht unterstützt. Alle spezifischen Socket-Operationen werden in dieser Schicht implementiert.

BSD ist eine abstrakte Datenstruktur, die INET-Sockets enthält. Die Anforderung einer Anwendung, sich mit einem Socket zu verbinden, zu lesen oder zu schreiben, wird von BSD in eine INET-Operation übersetzt.

Allgemeine Paketstruktur. Die Daten werden in eine gemeinsame Datenstruktur namens sk_buff verpackt. Alle Ebenen verwenden diese Datenstruktur. Sobald Daten vom Benutzerbereich in den Kernelbereich kopiert wurden, werden sie in sk_buff platziert und auf verschiedene Ebenen verschoben. Die Ebene fügt ihrerseits ihre Kopfzeilen zu dieser Struktur hinzu. Sk_buff enthält Links zu allen Informationen über das Paket, seinen Socket, sein Gerät, seine Route, seinen Datenspeicherort usw.

Linux-Netzwerkfunktionen

Für einen normalen Netzwerkprogrammierer ist der Front-End-Teil der Netzwerkdienste unter Verwendung der folgenden C-Bibliotheksroutinen verfügbar.

socket(), bind(), listen(), connect(), accept(), send(), sendto(), recv(), recvfrom(), getsockopt() und setsockopt().

Die Funktion socket() wird verwendet, um einen neuen Socket zu erstellen. Alle Operationen mit verschiedenen Protokollen erfolgen über Sockets. Da die Funktion socket() den Wert eines Dateideskriptors zurückgibt, kann auf sie durch Standarddateioperationen wie read(), write() zugegriffen werden.

Die Funktion bind() wird verwendet, um den erstellten Socket an einen Port zu binden. Port zusammen mit IP-Adresse Netzwerkschnittstelle, wird verwendet, um einen Socket eindeutig zu identifizieren.

Die Funktion listen() dient zum Programmieren des Servers. Nachdem ein Socket erstellt und an einen Port gebunden wurde, versetzt die Funktion listen() den Socket in den Listening-Zustand. Das bedeutet, dass der Socket auf Verbindungen von anderen Hosts wartet.

Wenn die Funktion accept() auf dem Server aufgerufen wird, wird der Socket kontinuierlich abgefragt, bis eine Verbindungsanforderung von einem anderen Host empfangen wird. Sobald die Verbindung hergestellt ist, wacht das Serverprogramm auf und erlaubt dem Prozess, eine Anfrage von dem fremden Host zu verarbeiten. Die Clientseite verwendet die connect()-Funktion, um dem Server anzuzeigen, dass der Client eine Socket-Verbindung öffnen und eine Anfrage senden möchte.

Erforderliche Datenstrukturen

Diese Struktur ist die Grundlage für die Implementierung der BSD-Socket-Schnittstelle. Diese Struktur wird mit dem Systemaufruf socket() eingerichtet und initialisiert.

sk_buff:

Diese Struktur verwaltet einzelne Verbindungspakete, die zum und vom Host gesendet werden. Dies verursacht eine E/A-Pufferung.

Diese Struktur verwaltet die verschiedenen Teile von Sockets, die netzwerkspezifisch sind. Es wird für TCP-, UDP- und RAW-Sockets benötigt.

Diese Struktur enthält eine Reihe von Operationen, die für alle Protokolle gleich sind.

sockaddr(sockaddr_in):

Diese Struktur ist notwendig, um zu unterstützen verschiedene Formate Adressen.

Linux-Kernel-Module

Kerne Linux Kernel bestehen aus Modulen. Einige Teile des Kernels befinden sich dauerhaft im Speicher (wie der Scheduler), und andere werden bei Bedarf geladen. Beispielsweise wird das VFAT-Dateisystem zum Lesen von Datenträgern nur bei Bedarf geladen. Diese Funktion des Linux-Kernels ermöglicht es dem Kernel-Speicherplatz, wenig Platz zu beanspruchen.

Daher ist es wichtig, Ihr Protokoll, Ihre Treiber und jede Art von Kernel-Software als Kernel-Module zu entwerfen und sie aus dem Benutzerbereich in den Kernel einzufügen. Nach dem Einfügen wird das Modul unauffindbar, bis es aus dem Kernel-Space entfernt wird. Sie müssen nur Root-Benutzer sein, um Module einzufügen oder zu entfernen. Dies ist die allgemeine Notation für ein Kernelmodul.

#define MODULE #include /* ... andere erforderliche Header-Dateien ... */ /* * ... Moduldeklarationen und -funktionen ... */ int init_module() ( /* Code-Kernel wird beim Installieren des Moduls aufgerufen */ ) void cleanup_module() ( /* Code-Kernel wird beim Entfernen des Moduls aufgerufen */)

Ein Hacker-Modul-Projekt für das TCP-Protokoll.

Unser Kernel-Modul ist sehr einfach, es wird virtuell zwischen der Socket-Operations-Schnittstelle zum Weiterleiten von TCP-Paketen und der TCP-Schicht platziert. Nun werden alle Datenpakete, die einen beim TCP-Protokoll registrierten Socket passieren, von unserem Kernel-Modul abgefangen. Diese Daten werden nach /proc/TCPdata übertragen.

Verwendete Datenstrukturen

tcp_prot -> Enthält Zeiger auf alle ausgeführten TCP-Operationen

struct msghdr -> Enthält die von der Anwendung gesendeten Daten sowie andere Felder zur Identifizierung der Socket-Adresse.

Struktur msg_iov -> befindet sich in msghdr und enthält Zeiger auf Daten

Bevor wir mit dem Codieren beginnen, wollen wir die Bedeutung des /proc-Dateisystems verstehen. Das proc-Dateisystem heißt so, weil es sich auf den meisten Linux-Rechnern im /proc-Verzeichnis befindet. Das System ist ein leistungsstarkes Werkzeug, das häufig von Anwendungen verwendet wird. Dies ist Teil des Mechanismus, durch den der Kernel mit dem Benutzerbereich kommuniziert und umgekehrt. Obwohl es als Dateisystem mit Verzeichnisstruktur und Inodes konzipiert ist, ist es gleichzeitig eigentlich Bestandteil von registrierten Funktionen, die wichtige Variablen mit Informationen versorgen.

Wenn eine Datei in /proc erstellt wird, wird sie sofort bei einer Reihe von Funktionen registriert, die dem Kernel mitteilen, was zu tun ist, wenn die Datei geöffnet oder in sie geschrieben wird. Die meisten Dateien sind schreibgeschützt, und nur wenige sind schreibgeschützt.

Jetzt beginnen wir mit dem Codieren

/* tcpdata.c. Unten ist ein Programm, das zeigt, wie man ein neues Element im proc-Dateisystem installiert. Und am wichtigsten ist, dass dieses Programm das TCP-Protokoll bricht, alle Daten verfolgt, die die TCP-Schicht passieren, und sie in /proc/TCPdata anzeigt. */ #define MODULE #define __KERNEL__ /*wir machen Kernel-Arbeit*/ #include #include #include /*zum Registrieren des Proc-Eintrags*/ #include #include #include #include #include #include #include statische Struktur proc_dir_entry *test_entry ; struct msghdr *msg_moniter; struct iovec *iovec_monitor; static char *tcp="TCP überwachte Daten"; int (*originalSend)(struct sock *, struct msghdr *,int); /* show_tcp_stats Diese Funktion wird vom /proc FS aufgerufen, wenn irgendetwas versucht, /proc/TCPstat zu lesen, die letzten 200 Bytes konnten über TCP-Verbindungen aus den Sockets verschoben werden */ static int show_tcp_stats(char *buf,char **start ,off_t offset,int len,int used) ( len += sprintf(buf+len,"%s\n",tcp); return len; ) /* Dies ist eine Handler-Funktion, die TCP-Sendmsg-Anfragen erfasst */ int moniter_tcp (struct sock *sk, struct msghdr *msg,int len) ( int size; char *temp; printk("Ich überwache gefährlich Ihre TCP-Daten \n"); msg_moniter=(struct msghdr *)kmalloc(sizeof(struct msghdr ), GFP_KERNEL); memcpy(msg_moniter,msg,sizeof(struct msghdr)); orginalSend(sk,msg,len); iovec_moniter=msg_moniter->msg_iov; size=sizeof(tcp); printk("sizeof von TCPdat ist %d \n ",size); (sizeiov_base):strcpy(tcp,"TCP überwachte Daten"); kfree(msg_moniter); return len; ) /* init_module Diese Funktion installiert ein Modul; es registriert einfach ein neues Verzeichnis in /proc und erstellt einen Zeiger. */ int init_module() ( test_entry=create_proc_entry("TCPdata",S_IRUGO,NULL); test_entry->read_proc=show_tcp_stats; orginalSend=tcp_prot.sendmsg; /* printk("die Adresse von send send mes ist %x \n" ,tcp_prot.sendmsg); printk("Die Adresse von Hack-Mes ist %x \n",orginalSend); */ tcp_prot.sendmsg=moniter_tcp; /* printk("Die Adresse von send send mes nach dem Hacken von %x \n" ,tcp_prot.sendmsg); printk("die Adresse von send send mes nach dem Hacken von %x \n",moniter_tcp); */ return 0; ) /* init_module */ /* cleanup_module Diese Funktion entfernt das Modul; Es entfernt die Verzeichniseintragsregistrierung aus /proc FS */ void cleanup_module() ( /* setze den Zeiger zurück auf den ursprünglichen Nachrichtensender von tcp */ tcp_prot.sendmsg=orginalSend; /* die Registrierung der Funktion aus dem proc FS aufheben */ remove_proc_entry ( "TCPdata",NULL); ) /* cleanup_module */ MODULE_AUTHOR("shyamjithe.c.s "); /*macros*/ MODULE_DESCRIPTION("TCP-Daten überwachen"); MODULE_LICENSE("GPL");

Dieses Programm wurde auf dem 2.4-Kernel getestet, sodass Sie es kompilieren können mit:

Gcc -O6 -Wall -c tcpdata.c -I /usr/src/linux-2.4.20-8/include/ dies erzeugt tcpdata.o jetzt insmod tcpdata.o öffne einige TCP-Anwendungen cat /proc/TCPdata um die zu entfernen module use rmmod tcpdata Nun, um diesen Code zu verstehen, werde ich einige Erklärungen geben. Das ganze Programm ist nur eine knifflige Art, Funktionszeiger zu verwenden. Aber Sie müssen vorsichtig sein, wenn Sie Ihre eigenen Handler verwenden, weil Fehlplatzierung Funktionszeiger kann dazu führen, dass das System hängen bleibt. Wie bereits erwähnt, ist dies der minimale Weg, um TCP zu brechen. Sie können sich bilden Neues levelüber der TCP-Schicht, was alle Arten von Jobs stört, die von TCP ausgeführt werden. Das gleiche kann mit UDP gemacht werden.

Fazit

Die wichtigste Erkenntnis aus dem obigen Programm ist, dass es nicht immer notwendig ist, den Kernel-Quellcode zu ändern, wenn wir protokollbezogene Änderungen vornehmen. Es ist eine objektorientierte Implementierung des Linux-Kernels, die es uns ermöglicht, Datenobjekte innerhalb des Kernels zu manipulieren.

Protokollstapel

Ein Protokollstapel ist ein hierarchisch organisierter Satz von Netzwerkprotokollen verschiedener Ebenen, die ausreichen, um die Interaktion von Knoten in einem Netzwerk zu organisieren und sicherzustellen. Gegenwärtig verwenden Netzwerke eine große Anzahl von Kommunikationsprotokollstapeln. Die beliebtesten Stacks sind: TCP/IP, IPX/SPX, NetBIOS/SMB, Novell NetWare, DECnet, XNS, SNA und OSI. Alle diese Stacks, mit Ausnahme von SNA, verwenden auf den unteren Ebenen – physisch und Kanal – die gleichen gut standardisierten Protokolle Ethernet, Token Ring, FDDI und einige andere, die die Verwendung der gleichen Ausrüstung in allen Netzwerken ermöglichen. Aber auf den oberen Ebenen arbeiten alle Stacks nach ihren eigenen Protokollen. Diese Protokolle entsprechen oft nicht der vom OSI-Modell empfohlenen Schichtung. Insbesondere die Funktionen der Sitzungs- und Präsentationsschicht werden üblicherweise mit der Anwendungsschicht kombiniert. Diese Diskrepanz ist darauf zurückzuführen, dass das OSI-Modell als Ergebnis einer Verallgemeinerung bereits vorhandener und tatsächlich verwendeter Stacks entstanden ist und nicht umgekehrt.

Alle im Stack enthaltenen Protokolle werden von einem Hersteller entwickelt, das heißt, sie sind in der Lage, so schnell und effizient wie möglich zu arbeiten.

Ein wichtiger Punkt bei der Funktionsweise von Netzwerkgeräten, insbesondere eines Netzwerkadapters, ist die Protokollbindung. Es ermöglicht Ihnen, verschiedene Protokollstapel zu verwenden, wenn Sie einen Netzwerkadapter bedienen. Beispielsweise können Sie die TCP/IP- und IPX/SPX-Stacks gleichzeitig verwenden. Kommt es beim Verbindungsaufbau zum Adressaten über den ersten Stack plötzlich zu einem Fehler, wird automatisch auf das Protokoll des nächsten Stacks umgeschaltet. Ein wichtiger Punkt in diesem Fall ist die Bindungsreihenfolge, da sie eindeutig die Verwendung des einen oder anderen Protokolls aus verschiedenen Stacks beeinflusst.

Egal wie viele Netzwerkadapter auf dem Rechner installiert ist, kann das Binding sowohl "one-to-many" als auch "several-to-one" erfolgen, dh ein Protokollstack kann an mehrere Adapter gleichzeitig gebunden werden oder mehrere Stacks an einen Adapter.

NetWare ist ein Netzwerkbetriebssystem und eine Reihe von Netzwerkprotokollen, die in diesem System verwendet werden, um mit Client-Computern zu interagieren, die mit einem Netzwerk verbunden sind. Die Netzwerkprotokolle des Systems basieren auf dem XNS-Protokollstack. NetWare unterstützt derzeit die Protokolle TCP/IP und IPX/SPX. Novell NetWare war in den 80er und 90er Jahren beliebt, weil es effizienter als Betriebssysteme war. allgemeiner Zweck. Das ist mittlerweile veraltete Technik.

Der Xerox Network Services Internet Transport Protocol (XNS)-Protokollstapel wurde von Xerox für die Datenübertragung über Ethernet-Netzwerke entwickelt. Enthält 5 Ebenen.

Schicht 1 - Übertragungsmedium - implementiert die Funktionen der physikalischen und Verbindungsschicht im OSI-Modell:

* verwaltet den Datenaustausch zwischen dem Gerät und dem Netzwerk;

* routet Daten zwischen Geräten im selben Netzwerk.

Schicht 2 – Internetwork – entspricht der Vermittlungsschicht im OSI-Modell:

* verwaltet den Datenaustausch zwischen Geräten, die sich in verschiedenen Netzwerken befinden (bietet einen Datagrammdienst im Sinne des IEEE-Modells);

* beschreibt die Art und Weise, wie Daten durch das Netzwerk geleitet werden.

Schicht 3 – Transport – entspricht der Transportschicht im OSI-Modell:

* Bietet End-to-End-Kommunikation zwischen Datenquelle und Ziel.

Ebene 4 – Steuerung – entspricht der Sitzungs- und Präsentationsebene im OSI-Modell:

* verwaltet die Präsentation von Daten;

* verwaltet die Kontrolle über Geräteressourcen.

Schicht 5 – angewandt – entspricht den höchsten Ebenen im OSI-Modell:

* bietet Datenverarbeitungsfunktionen für angewandte Aufgaben.

Stapel TCP-Protokolle/IP (Transmission Control Protocol/Internet Protocol) ist bei weitem das gebräuchlichste und funktionellste. Es funktioniert in lokalen Netzwerken jeder Größenordnung. Dieser Stapel ist der Hauptstapel in globales Netzwerk Internet. Stapelunterstützung wurde in Computern mit dem Betriebssystem UNIX implementiert. Infolgedessen hat die Popularität des TCP/IP-Protokolls zugenommen. Der TCP / IP-Protokollstapel enthält viele Protokolle, die auf verschiedenen Ebenen arbeiten, aber er erhielt seinen Namen dank zweier Protokolle - TCP und IP.

TCP (Transmission Control Protocol) ist ein Transportprotokoll zur Steuerung der Datenübertragung in Netzwerken unter Verwendung des TCP/IP-Protokollstapels. IP (Internet Protocol) ist ein Protokoll der Vermittlungsschicht, das entwickelt wurde, um Daten über ein zusammengesetztes Netzwerk unter Verwendung eines der Transportprotokolle wie TCP oder UDP zu liefern.

Die untere Ebene des TCP / IP-Stacks verwendet Standard-Datenübertragungsprotokolle, was den Einsatz in Netzwerken mit jeder Netzwerktechnologie und auf Computern mit jedem Betriebssystem ermöglicht.

Ursprünglich wurde das TCP/IP-Protokoll für den Einsatz in globalen Netzwerken entwickelt, weshalb es so flexibel wie möglich ist. Insbesondere aufgrund der Fähigkeit zur Paketfragmentierung erreichen Daten trotz der Qualität des Kommunikationskanals auf jeden Fall das Ziel. Darüber hinaus wird es durch das Vorhandensein des IP-Protokolls möglich, Daten zwischen heterogenen Netzwerksegmenten zu übertragen.

Der Nachteil des TCP/IP-Protokolls ist die Komplexität der Netzwerkadministration. Für das normale Funktionieren des Netzwerks sind also zusätzliche Server wie DNS, DHCP usw. erforderlich, deren Wartung den größten Teil der Zeit des Systemadministrators in Anspruch nimmt. Limoncelli T., Hogan K., Cheylap S. - System- und Netzwerkadministration. 2. Aufl. Jahr 2009. 944er

Der Protokollstapel IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange) wurde von Novell entwickelt und ist urheberrechtlich geschützt. Es wurde für die Bedürfnisse entwickelt Betriebssystem Novell NetWare, das bis vor kurzem eine der führenden Positionen unter den Server-Betriebssystemen innehatte.

Die IPX- und SPX-Protokolle arbeiten auf der Netzwerk- bzw. Transportschicht des ISO/OSI-Modells, sodass sie sich perfekt ergänzen.

Das IPX-Protokoll kann Daten unter Verwendung von Datagrammen übertragen, wobei dazu Netzwerk-Routing-Informationen verwendet werden. Um Daten entlang der gefundenen Route zu übertragen, müssen Sie jedoch zunächst eine Verbindung zwischen Absender und Empfänger herstellen. Das macht das SPX-Protokoll oder jedes andere Transportprotokoll, das mit IPX zusammenarbeitet.

Leider war der IPX/SPX-Protokollstapel ursprünglich darauf ausgerichtet, kleine Netzwerke zu bedienen, daher ist seine Verwendung in großen Netzwerken ineffektiv: Eine übermäßige Verwendung von Broadcasting auf langsamen Kommunikationsleitungen ist nicht akzeptabel.

auf dem körperlichen u Verbindungsschichten Der OSI-Stack unterstützt Ethernet-, Token Ring-, FDDI- sowie LLC-, X.25- und ISDN-Protokolle, dh er verwendet alle gängigen Protokolle niedrigerer Ebene, die außerhalb des Stacks entwickelt wurden, wie die meisten anderen Stacks. Die Vermittlungsschicht umfasst das relativ selten verwendete Connection-Oriented Network Protocol (CONP) und das Connectionless Network Protocol (CLNP). Die Routing-Protokolle des OSI-Stapels sind ES-IS (Endsystem – Zwischensystem) zwischen End- und Zwischensystemen und IS-IS (Zwischensystem – Zwischensystem) zwischen Zwischensystemen. Die Transportschicht des OSI-Stacks verbirgt die Unterscheidung zwischen verbindungslosen und verbindungslosen Netzwerkdiensten, sodass Benutzer unabhängig von der zugrunde liegenden Netzwerkschicht die erforderliche Servicequalität erhalten. Um dies zu gewährleisten, verlangt die Transportschicht vom Benutzer die Angabe der gewünschten Dienstgüte. Dienste der Anwendungsschicht bieten Dateiübertragung, Terminalemulation, Verzeichnisdienste und E-Mail. Die beliebtesten davon sind der Verzeichnisdienst (X.500-Standard), E-Mail(X.400), Virtual Terminal Protocol (VTP), File Transfer, Access and Control Protocol (FTAM), Transfer and Job Control Protocol (JTM).

Ein ziemlich beliebter Protokollstapel, der von IBM bzw. Microsoft entwickelt wurde und sich auf die Verwendung in den Produkten dieser Unternehmen konzentriert. Wie TCP / IP arbeiten Standardprotokolle wie Ethernet, Token Ring und andere auf den physischen und Datenverbindungsschichten des NetBIOS / SMB-Stacks, wodurch es möglich ist, ihn zusammen mit jedem aktiven zu verwenden Netzwerkausrüstung. Auf den oberen Ebenen arbeiten die Protokolle NetBIOS (Network Basic Input / Output System) und SMB (Server Message Block).

Das NetBIOS-Protokoll wurde Mitte der 80er Jahre des letzten Jahrhunderts entwickelt, aber bald durch das funktionalere Protokoll NetBEUI (NetBIOS Extended User Interface) ersetzt, das es ermöglicht, einen sehr effizienten Informationsaustausch in Netzwerken mit nicht mehr als 200 Computern zu organisieren .

Die Kommunikation zwischen Computern verwendet logische Namen, die Computern dynamisch zugewiesen werden, wenn sie sich mit dem Netzwerk verbinden. In diesem Fall wird die Namenstabelle an jeden Computer im Netzwerk verteilt. Das Arbeiten mit Gruppennamen wird ebenfalls unterstützt, wodurch Sie Daten an mehrere Empfänger gleichzeitig übertragen können.

Die Hauptvorteile des NetBEUI-Protokolls sind Geschwindigkeit und sehr geringe Ressourcenanforderungen. Wenn Sie in einem kleinen Netzwerk, das aus einem einzigen Segment besteht, einen schnellen Datenaustausch organisieren möchten, gibt es dafür kein besseres Protokoll. Darüber hinaus für die Nachrichtenübermittlung hergestellte Verbindung ist keine zwingende Voraussetzung: Wenn keine Verbindung besteht, verwendet das Protokoll das Datagramm-Verfahren, wenn die Nachricht mit der Adresse des Empfängers und des Absenders versehen wird und "abhebt", indem sie von einem Computer zum anderen geht.

Allerdings hat NetBEUI auch einen entscheidenden Nachteil: Es ist völlig frei vom Konzept des Paket-Routings, sodass seine Verwendung in komplexen zusammengesetzten Netzwerken nicht sinnvoll ist. Pyatibratov A.P., Gudyno L.P., Kirichenko A.A. Computer, Netzwerke und Telekommunikationssysteme Moskau 2009. 292s

Das SMB-Protokoll (Server Message Block) organisiert den Netzwerkbetrieb auf den drei höchsten Ebenen – Sitzungs-, Präsentations- und Anwendungsebene. Wenn Sie es verwenden, wird es möglich, auf Dateien, Drucker und andere Netzwerkressourcen zuzugreifen. Dieses Protokoll wurde mehrfach verbessert (es wurden drei Versionen veröffentlicht), wodurch es möglich wurde, es auch in modernen Betriebssystemen wie Microsoft Vista und Windows 7 zu verwenden. Das SMB-Protokoll ist universell und kann mit fast jedem Transportprotokoll gekoppelt werden. wie TCP/IP und SPX.

Der Protokollstapel von DECnet (Digital Equipment Corporation net) enthält 7 Schichten. Trotz der unterschiedlichen Terminologie sind die DECnet-Schichten den Schichten des OSI-Modells sehr ähnlich. DECnet implementiert das von DEC entwickelte Konzept der DNA-Netzwerkarchitektur (Digital Network Architecture), nach der heterogene Computersysteme (Computer verschiedener Klassen), die unter verschiedenen Betriebssystemen arbeiten, zu geografisch verteilten Informations- und Computernetzwerken kombiniert werden können.

Das SNA-Protokoll (System Network Architecture) von IBM ist für die Fernkommunikation mit großen Computern konzipiert und enthält 7 Schichten. SNA basiert auf dem Konzept einer Host-Maschine und bietet Remote-Terminal-Zugriff auf IBM-Mainframes. Basic Kennzeichen SNA ist die Fähigkeit jedes Terminals, auf jedes Host-Anwendungsprogramm zuzugreifen. Die Systemnetzwerkarchitektur ist auf Basis eines virtuellen Tel(Virtual Telecommunication Access Method - VTAM) im Hauptrechner implementiert. VTAM verwaltet alle Verbindungen und Terminals, wobei jedes Terminal Zugriff auf alle Anwendungen hat.

Mittels Sitzungsschicht (Sitzungsschicht) ein Dialog zwischen den Parteien organisiert wird, festgelegt wird, welche der Parteien der Initiator ist, welche der Parteien aktiv ist und wie der Dialog endet.

Präsentationsfolie befasst sich mit der Form der Bereitstellung von Informationen an untergeordnete Ebenen, beispielsweise das Umkodieren oder Verschlüsseln von Informationen.

Anwendungsschicht Dies ist ein Satz von Protokollen, die zwischen entfernten Knoten ausgetauscht werden, die dieselbe Aufgabe (Programm) implementieren.

Es sollte beachtet werden, dass einige Netzwerke viel früher erschienen, als das OSI-Modell entwickelt wurde, daher ist die Übereinstimmung der Ebenen des OSI-Modells für viele Systeme sehr willkürlich.

1.3. Internet-Protokoll-Stack

Das Internet dient dazu, jede Art von Information von einer Quelle zu einem Empfänger zu transportieren. Am Transport von Informationen sind verschiedene Elemente des Netzes beteiligt (Abb. 1.1) – Endgeräte, Vermittlungsgeräte und Server. Gruppen von Knoten werden mit Hilfe von Schaltgeräten zu einem lokalen Netzwerk zusammengefasst, lokale Netzwerke werden durch Gateways (Router) miteinander verbunden. Vermittlungsgeräte verwenden verschiedene Technologien: Ethernet, Token Ring, FDDI und andere.

Jedes Endgerät (Host) kann gleichzeitig mehrere informationsverarbeitende Prozesse (Sprache, Daten, Text ...) bedienen, die in Form von Netzwerkanwendungen (Fachprogrammen) vorhanden sind höchstes Level; aus der Anwendung treten Informationen in die Informationsverarbeitungsmittel in den unteren Ebenen ein.

Der Transport der Anwendung in jedem Knoten wird nacheinander von verschiedenen Schichten entschieden. Jede Schicht verwendet ihre eigenen Protokolle, um ihren Teil des Problems zu lösen, und stellt eine Duplexübertragung von Informationen bereit. Die Abfolge der übergebenen Aufgaben bildet einen Stapel von Protokollen. Beim Transportieren von Informationen verwendet jeder Knoten den Protokollstapel, den er benötigt. Auf Abb. 1.3 zeigt den vollständigen Stack der zugrunde liegenden Protokolle Netzwerkverbindung im Internet.

Knoten sind aus Sicht des Netzwerks Quellen und Empfänger von Informationen. Die vier unteren Ebenen sind insgesamt unabhängig von der Art der zu übertragenden Informationen. Jede Netzwerkanwendung, die mit der vierten Schicht kommuniziert, wird durch ihre identifiziert einzigartige Nummer Hafen . Die Portwerte reichen von 0 bis 65535. In diesem Bereich werden die Portnummern 0-1023 für bekannte Ports zugewiesen, die Portnummern 1024-49151 werden von spezialisierten Softwareentwicklern verwendet, die Portnummern 49152-65535 werden Netzwerkanwendungen dynamisch zugewiesen Benutzer während der Sitzung. Die Zahlenwerte der Stackportnummern sind in angegeben.

Die (vierte) Transportschicht unterstützt zwei Kommunikationsmodi

– mit und ohne Verbindungsaufbau. Jeder der Modi wird durch seine Protokollnummer (Protocol) identifiziert. In Internetstandards wird die Kodierung im Hexadezimalcode akzeptiert. Der erste Modus wird vom TCP-Modul verwendet, das den Protokollcode 6 (im Hexadezimalcode - 0x06) hat und für den garantierten Informationstransport verwendet wird. Dazu wird jedes übertragene Paket mit einer Sequenznummer versehen und muss quittiert werden.

______________________________________________________________________________

durch die empfangende Partei über ihren korrekten Empfang. Der zweite Modus wird vom UDP-Modul ohne Garantie der Informationszustellung an den Empfänger verwendet (Zustellungsgarantie wird von der Anwendung bereitgestellt). Das UDP-Protokoll hat den Code 17 (im Hexadezimalcode - 0x11).

Angewandt

Vertreter

Sitzung

DHCP (Port=67/68)

Transport

Protokoll=0x0059

Protokoll=0x0002

Protokoll=0x0001

Protokolltyp = 0x0806

Protokolltyp = 0x0800

geleitet

geleitet

geleitet

Physisch

geleitet

Kabel, Ethernet Twisted Pair, Glasfaser

Physikalisches Kabel, verdrilltes Paar, Glasfaser

Physisch

Kabel, Twisted-Pair, Glasfaser

Physisch

Kabel, Funk, Glasfaser

Reis. 1.3. Internet Basic Protocol Stack

______________________________________________________________________________

Die Netzwerkschicht (dritte Schicht) stellt die Bewegung von Informationen in Form von Paketen zwischen Netzwerken (Link-Layer-Schnittstellen) unter Verwendung einer Netzwerkadresse sicher. Die Schicht-3-Protokollfamilie wird durch den Protokolltyp (ARP – Typ 0x0806 oder IP – Typ 0x0800) durch die darunter liegenden Schichten identifiziert. Die Paarung aus Protokoll, Netzwerkadresse und Portnummer wird als Socket bezeichnet. Ein Socket-Paar – sendend und empfangend – identifiziert eindeutig eine hergestellte Verbindung. Die Zieladresse jedes Pakets, das von der Verbindungsschicht in das IP-Modul eintritt, wird analysiert, um zu bestimmen, ob das Paket an seine eigene Anwendung weitergeleitet oder für den weiteren Transport über das Netzwerk zu einer anderen Schnittstelle verschoben werden soll.

Die zweite (Kanal-)Schicht verarbeitet Pakete im lokalen Netzwerk unter Verwendung verschiedener Technologien: Ethernet, Token Ring, FDDI und andere. Die erste Ebene sieht die Umwandlung von Binärcodes in lineare Codes vor, die für das verwendete Transportmedium (Metallkabel, Glasfaserleitung Kommunikation, Funk).

FRAGEN ZU ABSCHNITT 1.3

1. Was bestimmt die Mittel der Vermittlungsschicht zur Verarbeitung von Paketen, die von der Verbindungsschicht kommen?

Antworten. Protokolltyp: 0x0806 für ARP und 0x0800 für IP.

2. Was bestimmt die Mittel Transportschicht Pakete verarbeiten, die von der Vermittlungsschicht kommen?

Antworten. Protokollnummer: 0x0006 für TCP und 0x0011 für UDP.

3. Was bestimmt die Art der Netzwerkanwendung zur Verarbeitung von Datagrammen?

Antworten. Port-Nummer.

4. Nennen Sie Beispiele für Portnummern für netzwerkweite Anwendungen.

Antwort: Port 80 ist HTTP, Port 23 ist TELNET, Port 53 ist DNS.

1.4. Internetzugangsprotokolle

Für den Zugriff auf das Internet wird eine Familie von Protokollen unter dem allgemeinen Namen PPP (Point-to-Point Protocol) verwendet, zu denen gehören:

1. Link Control Protocol (LCP) zum Aushandeln von Paketaustauschparametern auf der Sicherungsschicht im Abschnitt des Host-Netzwerkzugriffsservers (insbesondere zum Aushandeln der Paketgröße und des Typs des Authentifizierungsprotokolls).

2. Authentifizierungsprotokoll, um die Legitimität des Benutzers festzustellen (insbesondere unter Verwendung des Challenge Handshake Authentication Protocol - CHAP).

3. Network Control Protocol (IP Control Protocol - IPCP) zum Konfigurieren von Netzwerkkommunikationsparametern (insbesondere Zuweisen IP-Adressen).

Danach beginnt der Informationsaustausch über das IP-Protokoll.

Jedes dieser Protokolle kann jedes Transportmedium verwenden, daher gibt es viele Möglichkeiten, PPP auf der physikalischen Schicht einzukapseln. Um PPP in Punkt-zu-Punkt-Verbindungen zu kapseln, ist ein ähnliches Verfahren wie

HDLC.

Der Frame-Austausch unter Verwendung eines HDLC-ähnlichen Verfahrens (High-Level Data Link Control Procedure) beinhaltet einen Duplex-Frame-Austausch. Jeder gesendete Frame muss bestätigt werden, wenn innerhalb des Timeouts keine Bestätigung empfangen wird, sendet der Sender erneut. Die Rahmenstruktur ist in Abb. 1 gezeigt. 1.4. Die Reihenfolge der Übertragung von Rahmenfeldern ist von links nach rechts. Der Zweck der Rahmenfelder ist wie folgt.

Yu.F.Kozhanov, Kolbanev M.O. SCHNITTSTELLEN UND PROTOKOLLE VON NETZWERKEN DER NÄCHSTEN GENERATION

______________________________________________________________________________

Reis. 1.4. HDLC-Rahmenfeldstruktur

Jeder übertragene Rahmen muss mit einer "Flag"-Kombination (Flag) beginnen und enden, die eine Bitstruktur der Form 01111110 (0x7e) hat. Dieselbe "Flag"-Kombination kann als Schließen für einen Rahmen und Öffnen für den nächsten Rahmen verwendet werden. Flag-Kombinationen müssen von der Empfangsseite erkannt werden, um Rahmengrenzen zu bestimmen. Um eine codeunabhängige Informationsübertragung zu gewährleisten, müssen alle Kombinationen, die mit Dienstzeichen übereinstimmen (z. B. die Kombination "Flag"), aus nachfolgenden Feldern des Rahmens ausgeschlossen werden.

BEI Im asynchronen Modus werden alle Felder des Frames Byte für Byte gebildet, jedem Byte geht ein „Start“-Bit voraus und endet mit einem „Stop“-Bit.

BEI Es wird auch der synchrone Modus verwendet Byte-Einfügung oder Bit-Einfügung. Im ersten Fall werden in den Frame-Feldern die Bytefolgen 0x7e („Flag“) durch 2-Byte 0x7d und 0x5e, 0x7d durch 0x7d und 0x5d, 0x03 durch 0x7d und 0x23 ersetzt. Im zweiten Fall wird nach der Bildung aller Felder des Rahmens der Inhalt jedes Rahmens Bit für Bit zwischen den "Flag"-Kombinationen abgetastet und ein "Null"-Bit wird nach jeweils fünf benachbarten "Eins"-Bits eingefügt. Beim Decodieren eines Rahmens beim Empfang wird eine bitweise Abtastung des Inhalts des Rahmens zwischen den "Flag"-Kombinationen und dem Entfernen des "Null"-Bits nach jeweils fünf benachbarten "Eins"-Bits durchgeführt.

Das Adressfeld (Address) hat einen konstanten Wert von 11111111 (0xff), und das Steuerfeld (Control) hat einen Wert von 00000011 (0x03).

Das Protokollfeld nimmt den Wert 0xc021 für das LCP-Protokoll, 0xc223 für das CHAP-Protokoll, 0x8021 für IPCP und 0x0021 für das IP-Protokoll an.

Das Ausfüllen des Informationsfeldes hängt vom Protokolltyp ab, sollte aber nicht weniger als 4 Bytes lang sein.

Die Prüfsequenz (Frame Check Sequence, FCS) bei der Übertragung ist so gebildet, dass a) bei Multiplikation der Information zwischen den Flags mit X16 und b) dann Division modulo 2 durch das erzeugende Polynom X16 + X12 + X5 + 1 das Ergebnis wäre gleich einer konstanten Zahl 0xf0b8 sein.

Das Verfahren zum Zugreifen des PSTN-Teilnehmers auf das Internet besteht aus mehreren Stufen. Der erste Schritt verwendet das LCP-Protokoll (Protokoll = 0xc021), das

verwendet das folgende Format (Abbildung 1.5).

Reis. 1.5. LCP-Rahmenformat

Das Protokollfeld nimmt den Wert 0xc021 an. Jede Nachricht ist durch ihren Code (Code), Seriennummer (ID), Länge (Length) gekennzeichnet. Die Nachrichtenlänge umfasst alle Felder von Code bis FCS. Eine Nachricht kann mehrere Parameter enthalten, die jeweils durch den Parametertyp (Typ) gekennzeichnet sind,

Länge (Länge) und Daten (Datum).

(Configure-Nak), 04 – Konfigurationsablehnung (Configure-Reject), 05 – Beendigungsanforderung (Terminate-Request), 06 – Beendigungsbestätigung (Terminate-Ack).

Ein vollständiges Diagramm der Interaktion zwischen dem Endgerät (Host), dem Netzwerkzugangsserver (NAS) und dem Server für Authentifizierung, Autorisierung und Abrechnung (AAA) bei der Organisation des Zugangs des PSTN-Teilnehmers zum Internet ist in Abb. 1.6.

______________________________________________________________________________

Abbildung 1.6 zeigt, dass der Host zunächst eine Verbindung über das LCP-Protokoll (Protokoll = 0xc021) mit den Parametern MTU=300, PFC=7 angefordert hat, aber als Ergebnis ihrer Aushandlung mit dem NAS-Zugriffsserver (Code=02) die Parameter MTU=200 (MTU - maximale Paketgröße in Bytes), Authentifizierungsprotokoll - CHAP (Auth.prot=c223). Komprimierter Header-Austausch (PFC=7) wurde vom NAS-Zugriffsserver zurückgewiesen (Code=04).

Typ = 3, IP-Adresse = a.b.c.d, Maske,

Protokoll=0xc021, Code=04,

Protokoll=0xc021, Code=01,

Typ=1, MTU=300

Protokoll=0xc021, Code=03,

Typ=1, MTU=200

Protokoll=0xc021, Code=01,

Typ=1, MTU=200

Protokoll=0xc021, Code=02,

Typ=1, MTU=200

Protokoll=0xc021, Code=01,

Protokoll=0xc021, Code=02,

Typ = 3, Auth.prot=0xc223, Algorithmus=5

Protokoll=0xc223, Code=01,

Protokoll=0xc223, Code=02,

Schutz=UDP, Code=01,

Name=ABC, Wert=W

Auth=0, Attr=Name, Chall=V

Schutz=UDP, Code=02,

IP-Adresse=a.b.c.d , Maske,

Prot=UDP, Code=05, Daten

Protokoll = 0x0021, ...

Protokoll=0x0021, ...

Protokoll=0xc021, Code=05,

1994, D. S.]. Das Wesen des Authentifizierungsverfahrens besteht darin, dass der NAS eine Zufallszahl V an den Host sendet und der Host eine andere Zahl W zurücksendet, die aus einer zuvor bekannten Funktion unter Verwendung des Namens (Name) und des Passworts (Passwort) berechnet wird, die vom Benutzer eingegeben werden in den Computer von der beim Anbieter erworbenen Internetkarte. Mit anderen Worten, W=f(V, Name, Passwort). Es wird davon ausgegangen, dass ein Angreifer (Hacker) in der Lage ist, die über das Netzwerk gesendeten Werte von V, Name und W abzufangen, und er den Algorithmus zur Berechnung der Funktion f kennt. Das Wesen der Bildung von W besteht darin, dass die Anfangselemente (Bits) der Zufallszahl V auf verschiedene Weise mit den dem Angreifer unbekannten Elementen des Passworts Password „gemischt“ werden. Der resultierende Chiffretext wird dann komprimiert, beispielsweise durch Addieren der Bytes modulo zwei. Eine solche Transformation wird als Digest-Funktion oder Hash-Funktion bezeichnet, und das Ergebnis wird als Digest bezeichnet. Die genaue Vorgehensweise zur Generierung eines Digests ist durch den MD5-Algorithmus definiert und in beschrieben. Das NAS fragt den AAA-Server über das RADIUS-Protokoll nach dem wahren Wert von W ab und sendet ihm die Werte Name und Challenge=V. Basierend auf den vom NAS empfangenen V- und Namenswerten und dem Passwort, das er in der Datenbank hat, berechnet der AAA-Server W mit demselben Algorithmus und sendet es an den NAS. Das NAS vergleicht die beiden vom Host und vom AAA-Server empfangenen W-Werte: Wenn sie übereinstimmen, wird eine erfolgreiche Authentifizierungsnachricht an den Host gesendet - Success (Code=03).

In der dritten Phase werden die Netzwerkparameter mithilfe des IPCP-Protokolls (alias PPP IPC, Protocol=0x8021) konfiguriert. Der Host fordert Netzwerk-IP-Adressen vom NAS an, und das NAS weist dem Host eine IP-Adresse aus dem Pool (Bereich) zu (IP-Adresse=a.b.c.d), und

meldet auch die IP-Adresse des DNS-Servers (IP-Adresse=e.f.g.h). NAS über RADIUS-Protokoll

sendet eine Benachrichtigung (Code=04) über den Beginn der Abrechnung an den AAA-Server und erhält eine Bestätigung (Code=05).

In der vierten Phase startet der Benutzer eine Kommunikationssitzung mit dem Internet unter Verwendung des IP-Protokolls (Protokoll = 0x0021).

Nachdem die Sitzung beendet ist (Schritt 5), sendet der Benutzer eine Verbindungsbeendigungsnachricht (Code = 05) über das LCP-Protokoll an den NAS, der NAS bestätigt diese Nachricht (Code = 06), sendet eine Abrechnungsende-Benachrichtigung an den AAA-Server und erhält von ihm eine Bestätigung. Alle Geräte werden in ihren ursprünglichen Zustand zurückversetzt.

FRAGEN ZU ABSCHNITT 1.4

1. Nennen Sie die Zusammensetzung und den Zweck der PPP-Protokollfamilie.

Antworten. LCP – zum Aushandeln von Paketaustauschparametern, CHAP – zum Feststellen der Legitimität des Benutzers, IPCP – zum Zuweisen einer IP-Adresse.

2. Bietet das PPP-Protokoll eine Fehlererkennung und Paketzustellung in der richtigen Reihenfolge?

Antworten. Fehlererkennung - ja, Lieferung in der Reihenfolge - nein, dies wird vom TCP-Protokoll bereitgestellt.

3. Wo werden Benutzerauthentifizierungsdaten gespeichert?

Antworten. In der Internetkarte und auf dem AAA-Server.

4. Ist es möglich, die IP-Adresse des Benutzers vorab festzulegen, bevor eine Verbindung zum NAS-Server hergestellt wird?

Antwort: Nein. Nach erfolgreicher Authentifizierung vergibt das NAS eine freie IP-Adresse aus dem Bereich der zugewiesenen Adressen.

5. Welche Methoden werden verwendet, um die Kosten für Internetverbindungen zu berücksichtigen? Antwort: Es gibt normalerweise eine Abonnementgebühr oder eine Volumengebühr.

Der Protokollstack, oder umgangssprachlich TCP/IP, ist die Netzwerkarchitektur moderner Geräte, die für die Nutzung des Netzwerks ausgelegt sind. Stack ist eine Mauer, in der jeder Baustein übereinander liegt, hängt von ihm ab. Die Bezeichnung des Protokollstacks als „TCP/IP-Stack“ ist auf die zwei Hauptprotokolle zurückzuführen, die implementiert wurden – IP selbst und TCP, das darauf basiert. Sie sind jedoch nur die wichtigsten und häufigsten. Wenn nicht Hunderte, dann Dutzende andere werden bis heute für verschiedene Zwecke verwendet.

Das uns bekannte Web (World Wide Web) basiert auf dem HTTP (Hyper-Text-Transfer-Protocol), das wiederum auf Basis von TCP arbeitet. Dies ist ein klassisches Beispiel für die Verwendung des Protokollstapels. Es gibt auch IMAP/POP- und SMTP-E-Mail-Protokolle, SSH-Remote-Shell-Protokolle, RDP-Remote-Desktop-Protokolle, MySQL-Daten, SSL/TLS und Tausende anderer Anwendungen mit ihren Protokollen (..)

Was ist der Unterschied zwischen all diesen Protokollen? Alles ist ziemlich einfach. Neben den verschiedenen während der Entwicklung festgelegten Zielen (z. B. Geschwindigkeit, Sicherheit, Stabilität und andere Kriterien) werden Protokolle zur Differenzierung erstellt. Beispielsweise gibt es Protokolle der Anwendungsschicht, die für verschiedene Anwendungen unterschiedlich sind: IRC, Skype, ICQ, Telegram und Jabber sind nicht miteinander kompatibel. Sie sind für eine bestimmte Aufgabe konzipiert, und in diesem Fall ist die Möglichkeit, WhatsApp in ICQ anzurufen, einfach nicht technisch definiert, da die Anwendungen ein anderes Protokoll verwenden. Ihre Protokolle basieren jedoch auf demselben IP-Protokoll.

Ein Protokoll kann als geplante, regelmäßige Abfolge von Aktionen in einem Prozess bezeichnet werden, in dem es mehrere Akteure gibt, im Netzwerk werden sie seltener als Peers (Partner) bezeichnet - ein Client und ein Server, wodurch die Merkmale eines bestimmten Protokolls hervorgehoben werden. Das einfachste Beispiel Protokoll für diejenigen, die es immer noch nicht verstehen, ist ein Händedruck bei einer Besprechung. Beide wissen wie und wann, aber die Frage nach dem Warum ist bereits eine Frage der Entwickler, nicht der Benutzer des Protokolls. Übrigens gibt es in fast allen Protokollen einen Handshake, um zum Beispiel die Protokolldifferenzierung und den Schutz vor „Falschflug“ zu gewährleisten.

Hier ist TCP/IP am Beispiel der gängigsten Protokolle. Die Abhängigkeitshierarchie wird hier angezeigt. Ich muss sagen, dass Anwendungen nur die angegebenen Protokolle verwenden, die im Betriebssystem implementiert sein können oder nicht.

Wenn absolut, absolut einfache Sprache ist die Post.

Jedes Mitglied eines IP-kompatiblen Netzwerks hat eine eigene Adresse, die etwa so aussieht: 162.123.058.209. Insgesamt gibt es 4,22 Milliarden solcher Adressen für das IPv4-Protokoll.

Angenommen, ein Computer möchte mit einem anderen kommunizieren und ihm ein Päckchen schicken - ein "Paket". Er wendet sich an den "Postdienst" TCP / IP und gibt ihr sein Paket unter Angabe der Adresse, an die es geliefert werden muss. Im Gegensatz zu Adressen in der realen Welt werden häufig dieselben IP-Adressen zugewiesen verschiedene Rechner was wiederum bedeutet, dass der "Postbote" nicht weiß, wo er sich physisch befindet gewünschten Rechner, also sendet es das Paket an das nächste "Postamt" - an die Netzwerkkarte des Computers. Vielleicht gibt es Informationen darüber, wo sich der gewünschte Computer befindet, oder vielleicht sind solche Informationen nicht vorhanden. Wenn sie nicht da ist, für alle die kommen " Poststelle" (schaltet) wird eine Anfrage nach einer Adresse gesendet. Dieser Schritt wird von allen "Postämtern" wiederholt, bis sie die gewünschte Adresse gefunden haben, während sie sich merken, wie viele "Postämter" diese Anfrage vor ihnen durchlaufen hat und ob sie durchgegangen ist eine bestimmte (ausreichende) Anzahl davon, dann kommt es zurück mit dem Vermerk „Adresse nicht gefunden.“ Das erste „Postamt“ erhält bald einen Haufen Antworten von anderen „Büros“ mit Möglichkeiten für Wege zum Adressaten Wenn kein einziger Pfad gefunden werden kann, der kurz genug ist (normalerweise 64 Weiterleitungen, aber nicht mehr als 255), wird das Paket an den Absender zurückgeschickt von ihnen, während sich die „Postämter“ diesen Weg für eine Weile merken, sodass Sie nachfolgende Pakete schnell übertragen können, ohne jemanden nach der Adresse zu fragen dass er das Paket erhalten hat und geben Sie diese "Quittung" dem Absender als Beweis dafür, dass das Paket zugestellt wurde gültig - Prüfung der Lieferung in TCP ist obligatorisch. Wenn der Absender nach einer bestimmten Zeit keine solche Quittung erhält oder die Quittung besagt, dass das Paket während des Transports beschädigt wurde oder verloren gegangen ist, wird er versuchen, das Paket erneut zu versenden.

TCP/IP ist eine Reihe von Protokollen.

Das Protokoll ist die Regel. Wenn Sie zum Beispiel begrüßt werden, grüßen Sie als Antwort (und verabschieden sich nicht oder wollen kein Glück). Programmierer werden zum Beispiel sagen, dass wir das Hallo-Protokoll verwenden.

Welche Art von TCP / IP (jetzt wird es ganz einfach, bombardieren Sie Ihre Kollegen nicht):

Informationen vor Ihrer Kompa geht per Kabel (Funk oder was auch immer - egal). Wenn ein Strom durch die Drähte gelassen wurde, bedeutet dies 1. Ausgeschaltet bedeutet es 0. Es ergibt 10101010110000 und so weiter. 8 Nullen und Einsen (Bits) sind ein Byte. Zum Beispiel 00001111. Dies kann als Zahl in dargestellt werden binäre Form. In Dezimalform ist ein Byte eine Zahl zwischen 0 und 255. Diese Zahlen werden Buchstaben zugeordnet. Zum Beispiel ist 0 A, 1 B. (Dies wird Codierung genannt).

So. Damit zwei Computer effektiv Informationen über Kabel übertragen können, müssen sie nach einigen Regeln – Protokollen – Strom liefern. Sie müssen sich zum Beispiel darauf einigen, wie oft der Strom geändert werden darf, damit eine 0 von einer zweiten 0 unterschieden werden kann.

Dies ist das erste Protokoll.

Computer verstehen irgendwie, dass einer von ihnen aufgehört hat, Informationen zu geben (wie "Ich habe alles gesagt"). Dazu können Computer am Anfang der Datensequenz 010100101 einige Bits senden, die Länge der Nachricht, die sie senden möchten. Beispielsweise könnten die ersten 8 Bits die Länge der Nachricht angeben. Das heißt, zuerst wird in den ersten 8 Bits die verschlüsselte Zahl 100 übertragen und dann 100 Bytes. Der empfangende Computer wartet dann auf die nächsten 8 Bits und die nächste Nachricht.

Hier haben wir ein weiteres Protokoll, mit dessen Hilfe man Nachrichten versenden kann (Computer).

Es gibt viele Computer, damit sie verstehen können, wer eine Nachricht senden muss, indem sie eindeutige Computeradressen und ein Protokoll verwenden, mit dem Sie verstehen können, an wen diese Nachricht adressiert ist. Beispielsweise geben die ersten 8 Bits die Adresse des Empfängers an, die nächsten 8 die Länge der Nachricht. Und dann eine Nachricht. Wir haben einfach ein Protokoll in ein anderes gesteckt. Für die Adressierung ist das IP-Protokoll zuständig.

Die Kommunikation ist nicht immer zuverlässig. Verwenden Sie zur zuverlässigen Zustellung von Nachrichten (Computer) TCP. Beim Ausführen des TCP-Protokolls fragen sich Computer erneut, ob sie die richtige Nachricht erhalten haben. Es gibt auch UDP - dann fragen die Computer nicht mehr nach, ob sie es erhalten haben. Warum ist es notwendig? Hier hören Sie Internetradio. Wenn ein paar Bytes fehlerhaft ankommen, hört man zum Beispiel „psh“ und dann wieder Musik. Nicht fatal und nicht besonders wichtig - dafür wird UDP verwendet. Aber wenn beim Laden der Site ein paar Bytes beschädigt werden, wird auf dem Monitor Mist angezeigt und Sie werden nichts verstehen. Die Seite verwendet TCP.

TCP/IP (UDP/IP) sind verschachtelte Protokolle, die das Internet ausführen. Diese Protokolle ermöglichen es letztlich, eine Computernachricht unversehrt und adressgenau zu übermitteln.

Es gibt auch ein http-Protokoll. Die erste Zeile ist die Site-Adresse, die nächsten Zeilen sind der Text, den Sie an die Site senden. Alle http-Zeilen sind Text. Was in TCP eine Nachricht schiebt, die über IP adressiert wird, und so weiter.

Antwort

Protokollstapel ist ein hierarchisch organisierter Satz von Netzwerkprotokollen, der ausreicht, um die Interaktion von Knoten im Netzwerk zu organisieren. Die Protokolle arbeiten gleichzeitig im Netzwerk, was bedeutet, dass die Arbeit der Protokolle so organisiert werden muss, dass es keine Konflikte oder unvollständigen Operationen gibt. Daher ist der Protokollstack in hierarchisch aufgebaute Ebenen unterteilt, die jeweils eine bestimmte Aufgabe erfüllen – Daten aufbereiten, empfangen, übertragen und mit ihnen nachfolgende Aktionen ausführen.

Die Anzahl der Schichten in einem Stapel variiert je nach spezifischem Protokollstapel. Protokolle der unteren Schicht werden häufig in einer Kombination aus Software und Hardware implementiert, während Protokolle der oberen Schicht typischerweise in Software implementiert werden.

Es gibt eine ausreichende Anzahl von Protokollstacks, die in Netzwerken weit verbreitet sind. Die gängigsten Protokollstacks sind: OSI der International Organization for Standardization, TCP/IP, verwendet im Internet und in vielen Netzwerken auf Basis des Betriebssystems UNIX, IPX/SPX von Novell, NetBIOS/SMB, entwickelt von Microsoft und IBM, DECnet von Digital Equipment Corporation, SNA von IBM und einigen anderen.

Enzyklopädisches YouTube

    1 / 3

    Grundlagen von Datennetzen. OSI-Modell und TCP-IP-Protokollstack. Ethernet-Grundlagen.

    Protokollstapel

    Informatik. Netzwerktechnologien: OSI-Protokollstack. Foxford Online-Lernzentrum

    Untertitel

Standard-Kommunikationsprotokoll-Stacks

OSI

Es ist wichtig zu unterscheiden OSI-Modell und OSI-Protokollstack. Während das OSI-Modell ein konzeptionelles Diagramm dafür ist, wie offene Systeme interagieren, ist der OSI-Stack eine Reihe spezifischer Protokollspezifikationen.

Im Gegensatz zu anderen Protokollstacks ist der OSI-Stack vollständig kompatibel mit dem OSI-Modell, einschließlich Protokollspezifikationen für alle sieben in diesem Modell definierten Kommunikationsschichten:

  • Auf der körperlich und Verbindungsschichten Der OSI-Stack unterstützt die Ethernet-, Token Ring-, FDDI-Protokolle sowie die LLC-, X.25- und ISDN-Protokolle, d. h. er verwendet alle gängigen Protokolle niedrigerer Ebene, die außerhalb des Stacks entwickelt wurden, wie die meisten anderen Stacks.
  • Netzwerkschicht umfasst das relativ selten verwendete Connection-Oriented Network Protocol (CONP) und das Connectionless Network Protocol (CLNP). Wie die Namen vermuten lassen, ist ersteres verbindungsorientiert, letzteres nicht (verbindungslos). Bekannter sind die OSI-Stack-Routing-Protokolle: ES-IS (End System – Intermediate System) zwischen End- und Zwischensystem und IS-IS (Intermediate System – Intermediate System) zwischen Zwischensystemen.
  • Transportschicht Der OSI-Stack verbirgt gemäß den für ihn im OSI-Modell definierten Funktionen die Unterschiede zwischen verbindungsorientierten und verbindungslosen Netzwerkdiensten, sodass Benutzer unabhängig von der zugrunde liegenden Netzwerkschicht die erforderliche Servicequalität erhalten. Um dies zu gewährleisten, fordert die Transportschicht den Benutzer auf, den gewünschten Dienstumfang anzugeben.
  • Dienstleistungen Anwendungsschicht Bereitstellung von Dateiübertragung, Terminalemulation, Verzeichnisdiensten und E-Mail. Die beliebtesten davon sind Directory Service (X.500-Standard), E-Mail (X.400-Standard), Virtual Terminal Protocol (VTP), File Transfer, Access and Control Protocol (FTAM), Job Transfer and Management Protocol ( JTM).

TCP/IP

Der TCP/IP-Protokollstack ist der Satz von Netzwerkprotokollen, auf denen das Internet basiert. Typischerweise werden im TCP / IP-Stack die obersten 3 Schichten (Anwendung, Präsentation und Sitzung) des OSI-Modells zu einer Anwendung kombiniert. Da ein solcher Stack kein einheitliches Datenübertragungsprotokoll bereitstellt, werden die Funktionen zur Bestimmung des Datentyps an die Anwendung übertragen.

TCP/IP-Stack-Ebenen:

  1. Verbindungsschicht beschreibt, wie Datenpakete durch die physikalische Schicht übertragen werden, einschließlich der Codierung (dh spezielle Bitfolgen, die den Anfang und das Ende eines Datenpakets bestimmen).
  2. Netzwerkschicht ursprünglich entwickelt, um Daten von einem (Sub-)Netzwerk in ein anderes zu übertragen. Beispiele für ein solches Protokoll sind X.25 und IPC im ARPANET. Mit der Entwicklung des globalen Netzwerkkonzepts wurde die Ebene eingeführt Zusatzfunktionen für die Übertragung von jedem Netzwerk zu jedem Netzwerk, unabhängig von Protokollen der unteren Schicht, sowie die Möglichkeit, Daten von einer entfernten Seite anzufordern.
  3. Protokolle Transportschicht kann das Problem der nicht garantierten Nachrichtenzustellung lösen („hat die Nachricht den Adressaten erreicht?“) und auch die korrekte Reihenfolge des Dateneingangs garantieren.
  4. Auf der Anwendungsschicht Die meisten Netzwerkanwendungen funktionieren. Diese Programme haben ihre eigenen Kommunikationsprotokolle, wie HTTP für WWW, FTP (Dateiübertragung), SMTP (E-Mail), SSH (sichere Verbindung zu einem entfernten Rechner), DNS (Zeichen-zu-IP-Adressübersetzung) und viele andere .

Es besteht Uneinigkeit darüber, wie das TCP/IP-Modell in das OSI-Modell einzupassen ist, da die Schichten in den Modellen nicht identisch sind. Eine vereinfachte Interpretation des TCP/IP-Stacks lässt sich wie folgt darstellen:

OSI TCP/IP
7. Angewendet HTTP, FTP, Telnet, SMTP, DNS (RIP über UDP und BGP über TCP sind Teil der Netzwerkschicht), LDAP Angewandt
6. Einreichungen
5. Sitzung
4. Transport TCP, UDP, RTP, NCP) und das Service Advertising Protocol (SAP).

NetBIOS/SMB

Auf den Physical- und Data-Link-Layern dieses Stacks sind auch schon weit verbreitete Protokolle wie Ethernet, Token Ring, FDDI beteiligt und auf den oberen Ebenen spezifische Protokolle NetBEUI (NetBEUI Extended User Interface Protocol) und SMB. NetBEUI wurde als effizientes, ressourcenarmes Protokoll für Netzwerke mit bis zu 200 Arbeitsstationen entwickelt. Dieses Protokoll enthält viele nützliche Netzwerkfunktionen, die den Transport- und Sitzungsschichten des OSI-Modells zugeschrieben werden können, aber es kann nicht zum Weiterleiten von Paketen verwendet werden. Dadurch wird die Verwendung des NetBEUI-Protokolls eingeschränkt lokale Netzwerke, nicht in Subnetze unterteilt und macht es unmöglich, es in zusammengesetzten Netzwerken zu verwenden.

Das Server Message Block (SMB)-Protokoll unterstützt Sitzungsschicht-, Präsentationsschicht- und Anwendungsschichtfunktionen. Basierend auf SMB ist der Dateidienst implementiert. sowie Druck- und Messaging-Dienste zwischen Anwendungen.