bij het bespreken van netwerkstacks, inclusief hun relatieve verdiensten, is het noodzakelijk om iets te begrijpen over hoe een netwerkstack is georganiseerd, hoe het werkt en wat het kan bereiken. Alle netwerkstacks zijn vergelijkbaar op een breed niveau van analyse, maar de details van hoe ze werken bepalen een aantal van hun belangrijke verschillen. Het begrijpen van de theorie achter netwerkstacks zal u helpen de functies van elke netwerkstack te begrijpen.
het OSI-Netwerkstackmodel
een gemeenschappelijk model van netwerkstacks is het Open System Interconnection (OSI) – model. Dit model bestaat uit zeven lagen, die elk een specifieke netwerktaak afhandelen. Wanneer een computer gegevens verzendt, is de informatie afkomstig van een programma dat zich op de bovenste laag van het OSI-model bevindt (de toepassingslaag ). Het programma geeft gegevens door naar de volgende laag (de presentatielaag ), en zo verder naar beneden. Elke laag verwerkt de gegevens op een bepaalde manier. Onderaan het OSI-model bevindt zich de fysieke laag, die overeenkomt met de netwerkhardware, zoals kabels en hubs. Gegevens gaan over de fysieke laag van de verzendende computer naar de ontvangende computer. (Deze overdracht kan eenvoudig zijn wanneer beide computers zich op hetzelfde netwerksegment bevinden, maar het kan veel andere systemen omvatten wanneer de twee computers zich op verschillende punten op het Internet bevinden.) Op het doelsysteem, de gegevens passeren de netwerkstack, uiteindelijk het bereiken van de ontvanger programma op de applicatielaag op dat systeem. Dit systeem kan dan een antwoord naar zijn netwerkstack sturen, en dat antwoord gaat door naar de stack van het eerste systeem. Figuur 3.1 illustreert dit proces.
figuur 3.1. Een netwerkstack verwerkt gegevens zodat deze kunnen worden overgedragen naar een andere computer, of “unwraps” gegevens die van een andere computer zijn ontvangen.
NOTE
![]() |
hoewel het OSI-model vaak wordt gebruikt bij het beschrijven van netwerken in het algemeen, is het gebruik van OSI als een volledige protocolstack zeldzaam. Meer algemene netwerkstacks, zoals TCP / IP, AppleTalk, en NetBEUI, kunnen worden beschreven in OSI termen, soms met een paar wijzigingen. TCP / IP, bijvoorbeeld, wordt vaak beschreven met behulp van een vier-laag model, in plaats van de zeven-laag OSI-model. De principes blijven echter hetzelfde. |
elke laag van het OSI-model communiceert direct alleen met de lagen erboven en eronder. (In het geval van de toepassing en fysieke lagen, de keten eindigt. Toepassingen communiceren met gebruikers of voeren geautomatiseerde netwerktaken uit en de fysieke laag verbindt de twee computers.) Op elke computer moeten de lagen van de netwerkstack worden geschreven om deze communicatie te vergemakkelijken, met behulp van duidelijk gedefinieerde interfaces. Soms moeten de componenten op een bepaalde laag onderling verwisselbaar zijn. De applicatielaag bestaat bijvoorbeeld uit netwerktoepassingen, zoals webbrowsers en webservers. Je zou in staat moeten zijn om een webbrowser of webserver om te wisselen voor een andere zonder problemen met de netwerkstack te veroorzaken. (Een bepaalde webbrowser of webserver kan bepaalde belangrijke functies missen, zoals de mogelijkheid om Secure Sockets Layer encryptie af te handelen; Dit is echter niet echt een probleem van netwerkstack-integratie.) Op dezelfde manier moet je netwerkkabels en hubs kunnen verwisselen op de fysieke laag, of zelfs een netwerkkaart en het stuurprogramma kunnen vervangen, zonder dat dit gevolgen heeft voor Hoger gelegen lagen.
elke laag van de netwerkstack komt overeen met zijn tegenhanger op de andere computer. In zekere zin, de ontvanger computer netwerk stack ongedaan maakt wat de zender computer netwerk stack deed. Het uiteindelijke doel is om Applicatielaagprogramma ‘ s te laten communiceren. Daarom moet elke laag van de laag hieronder precies de gegevens ontvangen die door zijn tegenhanger worden verzonden op het verzendsysteem. In zekere zin zou een bepaalde laag moeten werken alsof het met zijn tegenhanger op het andere systeem praat, niet met een andere laag van de lokale protocol stack. Om deze reden moeten netwerkstacks zeer gestandaardiseerd zijn over computers, zelfs als die computers radicaal verschillende OSs draaien. Bijvoorbeeld, de netwerkstacks van zo ‘ n diverse OSs als Linux, Windows XP, MacOS X, en BeOS moeten allemaal werken op bijna precies dezelfde manieren, zelfs als ze volledig onafhankelijke code bases gebruiken.
gegevens inpakken en uitpakken
de netwerkstack is een handige manier om de passage van gegevens door de netwerksoftware van een computer voor te stellen, maar het beschrijft niet duidelijk wat er onderweg met gegevens gebeurt. Dit kan worden gezien als het verpakken en uitpakken van gegevens. Elke laag van de netwerkstack doet iets met de gegevens die het ontvangt. Acties die tijdens het inpakken worden uitgevoerd, kunnen bestaan uit het breken van gegevens in brokken (meestal pakketten of frames genoemd , afhankelijk van het niveau van de stack die wordt besproken), het toevoegen van informatie aan een bestaand deel van gegevens, of het wijzigen van bestaande gegevens (wijziging van gegevens is zeldzaam, hoewel). Uitpakken keert deze acties om.
denk bijvoorbeeld aan gegevensoverdracht via het File Transfer Protocol (FTP), dat de TCP/IP-netwerkstack gebruikt, over een Ethernet-netwerk. De gegevens die worden overgedragen kan een bestand zijn, maar dat ene bestand kan veel groter zijn dan de datapakketten of frames die TCP/IP of Ethernet zijn ontworpen om over te dragen. Daarom zal het bestand worden opgesplitst in vele kleine brokken. Aan elk van deze chunks worden headers toegevoegd door verschillende delen van de netwerkstack. (Sommige lagen kunnen ook voetteksten toevoegen.) Kop-en voetteksten beginnen of eindigen een bepaald stuk gegevens, en bevatten informatie om het systeem te helpen bij het ontleden en leveren van de rest van het datapakket. Het geïdealiseerde resultaat van deze verpakking is weergegeven in Figuur 3.2. In feite kunnen de zaken complexer worden, omdat de pakketten die door één laag van de netwerkstack worden geleverd, nog verder kunnen worden opgesplitst door volgende lagen van de stack. Bijvoorbeeld, de Ethernet drivers kunnen breken een IP-pakket in twee Ethernet frames. Routers kunnen hetzelfde doen. Wanneer dit gebeurt, zijn de IP, TCP en FTP headers van figuur 3.2 allemaal slechts een deel van de data payload; ze worden niet gedupliceerd in beide Ethernet pakketten, en kunnen eindigen in beide Ethernet pakketten. Dit alles is echter transparant, omdat elke laag van de netwerkstack op de ontvangende computer de pakketten of frames die zijn tegenhanger op de verzendende computer heeft gemaakt, opnieuw in elkaar zet, zelfs als die pakketten onderweg zijn opgesplitst.
figuur 3.2. Een netwerkstack splitst een bestand in brokken en wikkelt elk brokje in gegevens die de ontvangende computer helpen het originele bestand opnieuw in elkaar te zetten.
De details van Figuur 3.2 variëren van de ene netwerkstack tot de andere, en zelfs met details van een enkele stack. Bijvoorbeeld, de FTP Header van figuur 3.2 zou een Hypertext Transfer Protocol (HTTP) header voor een webbrowser data transfer. Als de computers andere netwerkhardware dan Ethernet gebruiken, worden de kop-en voettekst van Ethernet vervangen door kop-en voetteksten voor de specifieke gebruikte netwerkhardware. Een router die gegevens over netwerktypen overdraagt, zou in het kader van de verwerking deze kop-en voetteksten verwijderen en vervangen door geschikte vervangers. Deze verwerking kan meerdere malen plaatsvinden tijdens de reis van een pakket over het Internet, maar het doel is om de oorspronkelijke gegevens in zijn oorspronkelijke vorm aan de bestemming te leveren.
de kop-en voetteksten bevatten kritische adresseringsinformatie, zoals de IP-adressen van de afzender en de ontvanger, de poortnummers van de programma ‘ s die het begin en de bestemming aangeven, nummers die de plaats van een pakket in een reeks identificeren, enzovoort. Tussenliggende computers gebruiken deze informatie om individuele pakketten te routeren, en de ontvanger gebruikt deze informatie om het pakket naar het juiste programma te leiden. Dit programma kan dan het adres en poortnummer van de afzender gebruiken om een antwoord op dat systeem en programma te sturen.
de rol van de TCP/IP-Stack
TCP / IP is de meest populaire netwerkstack. Het Internet is gebouwd op TCP / IP, en de stack ondersteunt de meest populaire netwerkprotocollen, waaronder de meeste die in dit boek worden besproken. In de meeste gevallen kun je een netwerkapplicatie niet eenvoudig loskoppelen van de ene stack en koppelen aan een andere stack, hoewel een paar applicaties meerdere netwerkstacks ondersteunen. Een deel van de reden voor de populariteit van TCP/IP is de flexibiliteit. TCP / IP is een routeerbare netwerkstack, wat betekent dat een computer met meerdere netwerkinterfaces gedeeltelijk TCP/IP-pakketten kan verwerken en deze pakketten van het ene netwerk naar het andere kan doorgeven. TCP / IP-routering is flexibel en maakt routering mogelijk op basis van gedecentraliseerde netwerkkaarten; er is geen gecentraliseerde database nodig voor netwerkroutering. Verder ondersteunt TCP / IP een groot netwerkadres (32 bits, met 128-bits adressen geleverd met IPv6, zoals beschreven in hoofdstuk 2) en een hiërarchische naamgevingsstructuur. Al deze functies maken TCP/IP zeer geschikt om te functioneren als een netwerkstack voor een wereldwijd netwerk.
op een individuele Linux computer is TCP/IP een goede keuze vanwege zijn ondersteuning voor zoveel belangrijke netwerkprotocollen. Hoewel veel niet-Unix platforms propriëtaire protocolstacks ontwikkelden in de jaren 80, hielpen Unix-systemen TCP/IP te pionieren, en de meeste Unix-netwerkprotocollen gebruiken TCP / IP. Linux heeft deze protocollen geërfd, en dus werkt een Linux-only of Linux/Unix netwerk vrij goed met alleen TCP / IP; de kans is groot dat je geen andere netwerkstack nodig hebt in zo ‘ n omgeving.
gemeenschappelijke protocollen ondersteund door TCP/IP zijn HTTP, FTP, Het Simple Mail Transfer Protocol (SMTP), het Network File System (NFS), Telnet, Secure Shell (SSH), het Network News Transfer Protocol (NNTP), het X Window System, en vele anderen. Vanwege de populariteit van TCP/IP kunnen gereedschappen die oorspronkelijk voor andere netwerkstacks zijn geschreven ook vaak TCP/IP gebruiken. Met name de server Message Block (SMB)/Common Internet File System (CIFS) file-sharing protocollen die door Windows worden gebruikt, kunnen linken naar TCP/IP via het Network Basic Input/Output System (NetBIOS), in plaats van te koppelen aan de NetBIOS Extended User Interface (NetBEUI), de native DOS en Windows protocol stack. (Alle versies van Windows sinds Windows 95 ondersteunen ook TCP / IP.) Evenzo, Apple ‘ s file-sharing protocollen werken nu over TCP / IP evenals over AppleTalk.
hoewel het erg populair is en veel netwerktaken kan vervullen, is TCP/IP niet volledig geschikt voor alle netwerkrollen. Bijvoorbeeld, uw netwerk kan een aantal systemen bevatten die oude OSs blijven gebruiken die TCP/IP niet volledig ondersteunen. Een oude Macintosh ondersteunt misschien alleen het delen van bestanden via AppleTalk, bijvoorbeeld, of je hebt DOS-of Windows-systemen geconfigureerd om IPX of NetBEUI te gebruiken. In deze situaties kan Linux ‘ s ondersteuning voor alternatieve netwerkstacks een grote zegen zijn.
Leave a Reply