Tcp IP-verbindingen. Wat is het TCP-IP-protocol

StapelTCP/ IP.

De TCP/IP-stack is een set hiërarchisch geordende netwerkprotocollen. De stapel is vernoemd naar twee belangrijke protocollen: TCP (Transmission Control Protocol) en IP (Internet Protocol). Daarnaast bevat de stapel nog enkele tientallen verschillende protocollen. Momenteel zijn TCP/IP-protocollen de belangrijkste voor het internet, maar ook voor de meeste bedrijfs- en lokale netwerken.

In het besturingssysteem Microsoft Windows Server 2003 wordt de TCP/IP-stack als hoofdstapel geselecteerd, hoewel ook andere protocollen worden ondersteund (bijvoorbeeld de IPX/SPX-stack, het NetBIOS-protocol).

De TCP/IP-protocolstack heeft twee belangrijke eigenschappen:

    platformonafhankelijkheid, d.w.z. de implementatie ervan is mogelijk op een grote verscheidenheid aan besturingssystemen en processors;

    openheid, d.w.z. de standaarden waarmee de TCP/IP-stack is opgebouwd, zijn voor iedereen beschikbaar.

Geschiedenis van de scheppingTCP/ IP.

In 1967 startte het Advanced Research Projects Agency van het Amerikaanse ministerie van Defensie (ARPA - Advanced Research Projects Agency) met de ontwikkeling van een computernetwerk dat een aantal universiteiten en onderzoekscentra moest verbinden die opdrachten van het Agentschap uitvoerden. Het project heette ARPANET. In 1972 verbond het netwerk 30 knooppunten.

Als onderdeel van het ARPANET-project werden de belangrijkste protocollen van de TCP/IP-stack - IP, TCP en UDP - ontwikkeld en gepubliceerd in 1980-1981. Een belangrijke factor in de verspreiding van TCP/IP was de implementatie van deze stapel in het UNIX 4.2 BSD-besturingssysteem (1983).

Tegen het einde van de jaren 80 werd het aanzienlijk uitgebreide ARPANET-netwerk bekend als het internet (onderling verbonden netwerken) en verenigde het universiteiten en onderzoekscentra in de VS, Canada en Europa.

In 1992 verscheen een nieuwe internetdienst - WWW (World Wide Web), gebaseerd op het HTTP-protocol. Grotendeels dankzij WWW heeft het internet, en daarmee de TCP/IP-protocollen, in de jaren negentig een snelle ontwikkeling doorgemaakt.

Aan het begin van de 21e eeuw verwerft de TCP/IP-stack een leidende rol in de communicatiemiddelen, niet alleen van mondiale, maar ook van lokale netwerken.

ModelOSI.

Het Open Systems Interconnection (OSI)-model is ontwikkeld door de Internationale Organisatie voor Standaardisatie (ISO) om een ​​consistente aanpak te bieden voor het bouwen en onderling verbinden van netwerken. De ontwikkeling van het OSI-model begon in 1977 en eindigde in 1984 met de goedkeuring van de standaard. Sindsdien is het model de referentie voor de ontwikkeling, beschrijving en vergelijking van verschillende protocolstacks.

Laten we kort kijken naar de functies van elk niveau.


Het OSI-model omvat zeven lagen: fysiek, datalink, netwerk, transport, sessie, presentatie en toepassing.

    De fysieke laag beschrijft de principes van signaaloverdracht, transmissiesnelheid en specificaties van communicatiekanalen. De laag wordt geïmplementeerd door hardware (netwerkadapter, hubpoort, netwerkkabel).

    De datalinklaag lost twee hoofdtaken op: het controleert de beschikbaarheid van het transmissiemedium (het transmissiemedium is meestal verdeeld over verschillende netwerkknooppunten), en detecteert en corrigeert ook fouten die optreden tijdens het transmissieproces.

    De implementatie van het niveau is hardware en software (bijvoorbeeld een netwerkadapter en het stuurprogramma ervan). De netwerklaag zorgt voor de integratie van netwerken die werken met verschillende protocollen van de datalink en fysieke lagen in een samengesteld netwerk. In dit geval wordt elk van de netwerken in één enkel netwerk gebeld subnet (subnet). Op netwerkniveau moeten twee hoofdproblemen worden opgelost: routering(routing, het kiezen van het optimale pad voor het verzenden van een bericht) en adresseren(adressering, elk knooppunt in een samengesteld netwerk moet een unieke naam hebben). Normaal gesproken worden netwerklaagfuncties geïmplementeerd door een speciaal apparaat -

    router

    (router) en de bijbehorende software.

    De transportlaag lost het probleem van betrouwbare berichtoverdracht in een samengesteld netwerk op door de bezorging te bevestigen en pakketten opnieuw te verzenden. Dit niveau en al het volgende zijn in software geïmplementeerd.

    Met de sessielaag kunt u informatie onthouden over de huidige status van een communicatiesessie en, in het geval van een verbindingsbreuk, de sessie vanuit deze status hervatten.

De presentatielaag zorgt voor de conversie van verzonden informatie van de ene codering naar de andere (bijvoorbeeld van ASCII naar EBCDIC).TCP/ IP. De TCP/IP-structuur is niet gebaseerd op het OSI-model, maar op een eigen model, genaamd DARPA (Defense ARPA - de nieuwe naam van de Advanced Research Projects Agency) of DoD (Department of Defense - US Department of Defense). Dit model heeft slechts vier niveaus. De overeenkomst tussen het OSI-model en het DARPA-model, evenals de belangrijkste protocollen van de TCP/IP-stack, wordt getoond in figuur 2. 2.2.

Opgemerkt moet worden dat het lagere niveau van het DARPA-model – het netwerkinterfaceniveau – strikt genomen niet de functies van de datalink en fysieke lagen vervult, maar alleen zorgt voor communicatie (interface) van de hogere DARPA-niveaus met de netwerktechnologieën. opgenomen in het samengestelde netwerk (bijvoorbeeld Ethernet, FDDI, ATM).

Alle protocollen in de TCP/IP-stack zijn gestandaardiseerd in RFC-documenten.

DocumentenRFC.

Goedgekeurde officiële internet- en TCP/IP-standaarden worden gepubliceerd als RFC-documenten (Request for Comments). Normen worden ontwikkeld door de gehele ISOC-gemeenschap (Internet Society, een internationale publieke organisatie). Elk ISOC-lid kan een document indienen ter overweging voor publicatie in een RFC. Het document wordt vervolgens beoordeeld door technische experts, ontwikkelingsteams en de RFC-editor en doorloopt de volgende fasen, volwassenheidsniveaus genoemd, in overeenstemming met RFC 2026:

    voorlopige versie(Internet Draft) – in dit stadium maken experts zich vertrouwd met het document, worden er aanvullingen en wijzigingen aangebracht;

    voorgestelde standaard(Voorgestelde standaard) - het document krijgt een RFC-nummer toegewezen, experts hebben de haalbaarheid van de voorgestelde oplossingen bevestigd, het document wordt als veelbelovend beschouwd, het is wenselijk dat het in de praktijk wordt getest;

    ontwerp standaard(Conceptstandaard) - een document wordt een conceptstandaard als ten minste twee onafhankelijke ontwikkelaars de voorgestelde specificaties hebben geïmplementeerd en met succes hebben toegepast.

    In dit stadium zijn kleine correcties en verbeteringen nog steeds toegestaan; Internet standaard

(Internetstandaard) - de hoogste fase van goedkeuring van de standaard, de documentspecificaties zijn wijdverspreid geworden en hebben zich in de praktijk bewezen. Een lijst met internetstandaarden wordt gegeven in RFC 3700. Van de duizenden RFC's zijn er slechts enkele tientallen documenten met de status 'Internetstandaard'.

    experimenteel(Experimenteel) - een document met informatie over wetenschappelijk onderzoek en ontwikkeling die interessant kan zijn voor ISOC-leden;

    informatief(Informatief) - een document dat is gepubliceerd om informatie te verstrekken en waarvoor geen goedkeuring door de ISOC-gemeenschap vereist is;

    beste moderne ervaring(Best Current Practice) - een document bedoeld om ervaringen uit specifieke ontwikkelingen, zoals protocolimplementaties, over te brengen.

De status wordt aangegeven in de kop van het RFC-document na het woord Categorie (Categorie). Bij documenten met de status van standaard (Proposed Standard, Draft Standard, Internet Standard) wordt de naam aangegeven Normen Spoor, aangezien het gereedheidsniveau kan variëren.

RFC-nummers worden opeenvolgend toegewezen en worden nooit opnieuw uitgegeven. De originele RFC wordt nooit bijgewerkt. De bijgewerkte versie wordt gepubliceerd onder een nieuw nummer. Een verouderde en achterhaalde RFC wordt historisch(Historisch).

Alle bestaande RFC-documenten zijn bijvoorbeeld te bekijken op de website www.rfc-editor.org . In augustus 2007 waren dat er meer dan 5.000. De RFC's waarnaar in deze cursus wordt verwezen, staan ​​vermeld in bijlage I.

Overzicht van de belangrijkste protocollen.

Protocol IP (Internet Protocol) – Dit is het belangrijkste netwerklaagprotocol dat verantwoordelijk is voor de adressering in samengestelde netwerken en de pakketoverdracht tussen netwerken. Het IP-protocol is datagram protocol, dat wil zeggen dat het geen levering van pakketten aan het bestemmingsknooppunt garandeert. Het transportlaagprotocol TCP biedt garanties.

Protocollen SCHEUR. (Routering Informatie Protocol routeringsinformatieprotocol ) EnOSPF (Open Kortste Pad Eerst – « De kortste routes gaan als eerste open" ) – routeringsprotocollen in IP-netwerken.

Protocol ICMP (Internet Controle Bericht Protocol Control Message Protocol in Composite Networks) is ontworpen om foutinformatie uit te wisselen tussen netwerkrouters en het bronknooppunt van het pakket. Met behulp van speciale pakketten rapporteert het de onmogelijkheid om een ​​pakket af te leveren, de duur van het samenstellen van een pakket uit fragmenten, afwijkende parameterwaarden, veranderingen in de doorstuurroute en het type service, de status van het systeem, enz.

Protocol ARP (Adres Oplossing Protocol – Address Translation Protocol) converteert IP-adressen naar hardwareadressen van lokale netwerken. De omgekeerde conversie wordt uitgevoerd met behulp van het protocol RAPR (Omgekeerde ARP).

TCP (Overdragen Controle Protocol – transmissiecontroleprotocol) zorgt voor een betrouwbare overdracht van berichten tussen externe netwerkknooppunten door de vorming van logische verbindingen. Met TCP kunt u een bytestream die op een van de computers is gegenereerd, foutloos naar elke andere computer in het samengestelde netwerk sturen. TCP verdeelt de bytestroom in delen - segmenten en verzendt deze naar de netwerklaag. Zodra deze segmenten op hun bestemming zijn afgeleverd, voegt TCP ze opnieuw samen tot een continue stroom bytes.

UDP (Gebruiker Datagram Protocol – User Datagram Protocol) zorgt voor gegevensoverdracht op datagramwijze.

HTTP (HyperTekst Overdracht Protocol – hypertext transfer protocol) – webdocumentleveringsprotocol, het hoofdprotocol van de WWW-service.

FTP (Bestand Overdracht Protocol – bestandsoverdrachtprotocol) – een protocol voor het overbrengen van informatie die is opgeslagen in bestanden.

KNAL 3 (Na Kantoor Protocol versie 3 – postkantoorprotocol) en SMTP (Eenvoudig Mail Overdracht Protocol – Simple Mail Forwarding Protocol) – protocollen voor het bezorgen van inkomende e-mail (POP3) en het verzenden van uitgaande e-mail (SMTP).

Telnet – terminalemulatieprotocol 1, waardoor de gebruiker verbinding kan maken met andere externe stations en ermee kan werken vanaf zijn machine, alsof het zijn externe terminal is.

SNMP (Eenvoudig Netwerk Beheer Protocol – eenvoudig netwerkbeheerprotocol) is ontworpen om de prestaties van verschillende netwerkapparaten te diagnosticeren.

Servers die deze protocollen op een bedrijfsnetwerk implementeren, voorzien de klant van een IP-adres, gateway, netmasker, naamservers en zelfs een printer. Gebruikers hoeven hun hosts niet handmatig te configureren om het netwerk te kunnen gebruiken.

Het QNX Neutrino-besturingssysteem implementeert een ander autoconfiguratieprotocol genaamd AutoIP, een project van de IETF Auto-Configuration Committee. Dit protocol wordt in kleine netwerken gebruikt om link-local IP-adressen aan hosts toe te wijzen.

Het AutoIP-protocol bepaalt onafhankelijk het IP-adres dat lokaal is voor de link, met behulp van een onderhandelingsschema met andere hosts en zonder contact op te nemen met een centrale server.

Gebruik van het PPPoE-protocol

PPPoE is een specificatie voor het verbinden van Ethernet-gebruikers met internet via een breedbandverbinding, zoals een geleasede digitale abonneelijn, een draadloos apparaat of een kabelmodem. Het gebruik van het PPPoE-protocol en een breedbandmodem biedt gebruikers van lokale computernetwerken individuele, geauthenticeerde toegang tot snelle datanetwerken.

Het PPPoE-protocol combineert Ethernet-technologie met het PPP-protocol, waardoor voor elke gebruiker effectief een afzonderlijke verbinding met een externe server wordt gecreëerd. Toegangscontrole, verbindingsaccounting en selectie van serviceproviders worden bepaald voor gebruikers, niet voor hosts. Het voordeel van deze aanpak is dat noch de telefoonmaatschappij, noch de internetprovider hiervoor speciale ondersteuning hoeft te bieden.

In tegenstelling tot inbelverbindingen zijn DSL- en kabelmodemverbindingen altijd actief. Omdat de fysieke verbinding met een externe serviceprovider wordt gedeeld door meerdere gebruikers, is er een boekhoudmethode nodig die de afzenders en bestemmingen van het verkeer registreert en gebruikers in rekening brengt. Met het PPPoE-protocol kunnen de gebruiker en de externe host die deelnemen aan een communicatiesessie elkaars netwerkadressen leren kennen tijdens een eerste uitwisseling die wordt genoemd detectie

(ontdekking). Zodra een sessie tot stand is gebracht tussen een individuele gebruiker en een externe host (bijvoorbeeld een internetprovider), kan de sessie worden gemonitord voor opbouwdoeleinden. Veel huizen, hotels en bedrijven bieden openbare internettoegang via digitale abonneelijnen met behulp van Ethernet-technologie en het PPPoE-protocol.

Een verbinding via het PPPoE-protocol bestaat uit een client en een server. De client en server werken met behulp van elke interface die dicht bij de Ethernet-specificaties ligt. Deze interface wordt gebruikt om IP-adressen aan clients te verstrekken en deze IP-adressen te koppelen aan gebruikers en eventueel werkstations, in plaats van authenticatie op basis van alleen het werkstation. De PPPoE-server creëert voor elke client een point-to-point-verbinding.

Een PPPoE-sessie opzettenOm een ​​PPPoE-sessie te creëren, moet u de dienst gebruikenpppoed. Moduleio-pkt-*nBiedt PPPoE-protocoldiensten. Eerst moet je rennenio-pkt-*Metgeschikte chauffeur:

Toen het artikel vorm begon te krijgen, was het de bedoeling om het in één artikel te passen, maar tegen het einde werd de omvang van het artikel te zwaar, er werd besloten het artikel in tweeën te delen: netwerktheorie en de werking van het netwerksubsysteem onder Linux. Nou, laten we beginnen met de theorie...

TCP/IP-protocolstack

Eigenlijk, wat is het netwerk? Netto- dit zijn meer dan 2 computers die met elkaar zijn verbonden door een soort draden, communicatiekanalen, in een complexer voorbeeld - door een soort netwerkapparatuur en die informatie met elkaar uitwisselen volgens bepaalde regels. Deze regels zijn "gedicteerd" TCP/IP-protocolstack.

Transmission Control Protocol/Internet Protocol (TCP/IP-protocolstack)- in eenvoudige bewoordingen is dit een reeks op elkaar inwerkende protocollen van verschillende niveaus (hier kan aan worden toegevoegd Elk niveau heeft interactie met het aangrenzende niveau, dat wil zeggen dat het aanmeert, en daarom stapel , IMHO, het is gemakkelijker te begrijpen) op basis van welke gegevens op het netwerk worden uitgewisseld. Elk protocol is een reeks regels volgens welke gegevensuitwisseling plaatsvindt. Totaal TCP/IP-protocolstack- Dit verzameling regelsets Hier kan een redelijke vraag rijzen: waarom zijn er veel protocollen? Is het echt onmogelijk om alles via één protocol uit te wisselen?

Het punt is dat elk protocol strikt wordt omschreven hem regels. Bovendien zijn de protocollen onderverdeeld in functionaliteitsniveaus, waardoor de bediening van netwerkapparatuur en software veel eenvoudiger en transparanter wordt en ‘hun’ takenpakket kan uitvoeren. Om deze set protocollen in niveaus te verdelen, is deze ontwikkeld OSI-netwerkmodel(Engels) Basisreferentiemodel voor open systemeninterconnectie, 1978, het is ook het basisreferentiemodel voor de interactie van open systemen). OSI-model bestaat uit zeven verschillende niveaus. Het niveau is verantwoordelijk voor een apart gebied in de werking van communicatiesystemen, is niet afhankelijk van aangrenzende niveaus - het biedt alleen bepaalde diensten. Elke laag voert zijn taak uit volgens een reeks regels die een protocol worden genoemd. De werking van het OSI-model kan worden geïllustreerd met de volgende figuur: Hoe worden gegevens overgedragen?

Uit de figuur blijkt duidelijk dat dit het geval is 7 niveaus van netwerken, die zijn onderverdeeld in: applicatie, presentatie, sessie, transport, netwerk, kanaal, fysiek. Elke laag bevat zijn eigen set protocollen. De lijst met protocollen per interactieniveau wordt goed gepresenteerd op Wikipedia:

De TCP/IP-protocolstack zelf ontwikkelde zich parallel met de adoptie van het OSI-model en ‘kruiste’ er niet mee, wat resulteerde in een kleine discrepantie in de discrepantie tussen de protocolstack en de lagen van het OSI-model. Meestal, binnen TCP/IP-stack bovenste 3 niveaus ( aanmelding, presentatie en sessie) OSI-modellen worden gecombineerd tot één - toegepast . Omdat een dergelijke stapel geen uniform gegevensoverdrachtprotocol biedt, worden de functies van het bepalen van het gegevenstype overgedragen naar de applicatie. Vereenvoudigd interpretatie van de TCP/IP-stack ten opzichte van het OSI-model kan als volgt worden weergegeven:

Dit model van netwerkinteractie wordt ook wel genoemd DOD-model(van burgerlijk. Ministerie van Defensie- Amerikaanse ministerie van Defensie). We hebben dus het algemene idee van netwerkinteractie overwogen. Voor een beter begrip van de essentie van het probleem kan ik aanbevelen het boek te downloaden en te lezen ( Vito Amato "Basisprincipes van het organiseren van Cisco T1- en T2-netwerken"), onderstaand.

Adressering

In een netwerk dat is gebouwd op de TCP/IP-protocolstack, wordt aan elke host (computer of apparaat dat op het netwerk is aangesloten) een 32-bits binair nummer toegewezen. Een handige manier om een ​​IP-adres (IPv4) te schrijven is als vier decimale getallen (van 0 tot 255), gescheiden door punten, bijvoorbeeld 192.168.0.1. Over het algemeen Het IP-adres is verdeeld in twee delen: netwerkadres (subnet). En host-adres:

Zoals uit de illustratie blijkt, bestaat er zoiets als netto En subnet. Ik denk dat uit de betekenis van de woorden duidelijk blijkt dat IP-adressen zijn onderverdeeld in netwerken, en dat netwerken op hun beurt zijn onderverdeeld in subnetten met behulp van subnetmaskers(het zou juister zijn om te zeggen: hostadres kan in subnetten worden geplaatst). Aanvankelijk waren alle IP-adressen onderverdeeld in bepaalde groepen (adresklassen/netwerken). En er was sprake van stijlvolle adressering, waarbij netwerken werden onderverdeeld in strikt gedefinieerde geïsoleerde netwerken:

Het is eenvoudig te berekenen dat er in totaal in de IP-adresruimte 128 netwerken zijn met 16.777.216 klasse A-adressen, 16.384 netwerken met 65.536 klasse B-adressen en 2.097.152 netwerken met 256 klasse C-adressen, evenals 268.435.456 multicast-adressen en 134.317.728 gereserveerde adressen. Met de groei van internet bleek dit systeem ineffectief en werd het achterhaald CIDR(klasseloze adressering), waarbij het aantal adressen in het netwerk wordt bepaald door het subnetmasker.

Er is ook IP-classificatie adressen, zowel "privé" als "openbaar". De volgende adresbereiken zijn gereserveerd voor particuliere netwerken (ook wel lokale netwerken genoemd):

  • 10.0.0.0 - 10.255.255.255 (10.0.0.0/8 of 10/8),
  • 172.16.0.0 - 172.31.255.255 (172.16.0.0/12 of 172.16/12),
  • 192.168.0.0 - 192.168.255.255 (192.168.0.0/16 of 192.168/16).
  • 127.0.0.0 - 127.255.255.255 gereserveerd voor loopback-interfaces (niet gebruikt voor uitwisseling tussen netwerkknooppunten), zogenaamde. lokalehost

Naast het hostadres heeft het TCP/IP-netwerk nog zoiets als een poort. Een poort is een numeriek kenmerk van een systeembron. Er wordt een poort toegewezen aan een applicatie die op een netwerkhost draait voor communicatie met applicaties die op andere netwerkhosts draaien (inclusief andere applicaties op dezelfde host). Vanuit softwareoogpunt is een poort een geheugengebied dat door een bepaalde service wordt beheerd.

Voor elk van de TCP- en UDP-protocollen definieert de standaard de mogelijkheid om tegelijkertijd maximaal 65536 unieke poorten op de host toe te wijzen, geïdentificeerd door nummers van 0 tot 65535. De correspondentie tussen het poortnummer en de dienst die dit nummer gebruikt, kan worden bekeken in het bestand /etc/services of op de website http://www.iana.org/assignments/port-numbers. Het gehele assortiment poorten is verdeeld in 3 groepen:

  • 0 tot 1023, bevoorrecht of gereserveerd genoemd (gebruikt voor systeem en enkele populaire programma's)
  • 1024 - 49151 worden geregistreerde poorten genoemd.
  • 49151 - 65535 worden dynamische poorten genoemd.

IP-protocol, zoals blijkt uit de onderstaande illustraties TCP En UDP in de protocolhiërarchie en is verantwoordelijk voor het verzenden en routeren van informatie in het netwerk. Om dit te doen, verpakt het IP-protocol elk stukje informatie (TCP- of UDP-pakket) in een ander pakket - een IP-pakket of IP-datagram, waarin een header over de bron, bestemming en route wordt opgeslagen.

Om een ​​analogie uit de praktijk te gebruiken: een TCP/IP-netwerk is een stad. Straat- en steegnamen zijn netwerken en subnetten. Gebouwnummers zijn hostadressen. In gebouwen zijn kantoor-/appartementnummers poorten. Preciezer gezegd: poorten zijn mailboxen waarin ontvangers (diensten) verwachten dat correspondentie binnenkomt. Dienovereenkomstig zijn de poortnummers van de kast 1, 2, enz. worden gewoonlijk aan directeuren en managers gegeven als bevoorrechte personen, en gewone werknemers krijgen kantoornummers met grote aantallen. Bij het verzenden en bezorgen van correspondentie wordt informatie verpakt in enveloppen (IP-pakketten), waarop het adres van de afzender (ip en poort) en het adres van de ontvanger (ip en poort) staan ​​vermeld. Simpel gezegd, zoiets als dit...

Opgemerkt moet worden dat het IP-protocol geen begrip heeft van poorten; TCP en UDP zijn verantwoordelijk voor het interpreteren van poorten naar analogie, TCP en UDP verwerken geen IP-adressen.

Om geen onleesbare cijferreeksen in de vorm van IP-adressen te onthouden, maar om de machinenaam aan te geven in de vorm van een voor mensen begrijpelijke naam, kan een dienst zoals DNS (domeinnaamservice), dat zorgt voor het omzetten van hostnamen naar IP-adressen en een enorme gedistribueerde database is. Ik zal zeker in toekomstige berichten over deze service schrijven, maar voor nu is het voldoende om te weten dat om namen correct in adressen om te zetten, er een daemon op de machine moet draaien genoemd of het systeem moet worden geconfigureerd om de DNS-service van de ISP te gebruiken.

Routering

Laten we eens kijken (geïllustreerd) naar een voorbeeld van een infrastructuur met meerdere subnetten. De vraag kan rijzen: hoe kan de ene computer verbinding maken met de andere? Hoe weet het waar pakketten naartoe moeten worden gestuurd?

Om dit probleem op te lossen, zijn de netwerken met elkaar verbonden poorten (routers). Poort- dit is dezelfde host, maar met een verbinding met twee of meer netwerken, die informatie tussen netwerken kan overbrengen en pakketten naar een ander netwerk kan doorsturen. In de figuur wordt de rol van de gateway gespeeld door ananas En papaja met 2 interfaces verbonden met verschillende netwerken.

Om te bepalen pakkettransmissieroute, IP gebruikt het netwerkgedeelte van het adres ( subnetmasker). Om de route te bepalen, heeft elke machine op het netwerk routeringstabel(routeringstabel), waarin een lijst met netwerken en gateways voor deze netwerken wordt opgeslagen. IP "zoekt" het netwerkgedeelte van het bestemmingsadres op in een passerend pakket, en als er een vermelding voor dat netwerk in de routeringstabel staat, wordt het pakket naar de juiste gateway verzonden.

Op Linux slaat de kernel van het besturingssysteem de routeringstabel op in een bestand /proc/net/route. Met het commando kunt u de huidige routeringstabel bekijken netstat-rn(r - routeringstabel, n - converteer IP niet naar namen) of route . Eerste kolom opdrachtuitvoer netstat-rn (Bestemming- bestemming) bevat adressen van netwerken (hosts) afspraken. In dit geval eindigt het adres bij het opgeven van een netwerk meestal met nul. Tweede kolom (Gateway)- gateway-adres voor de host/netwerk gespecificeerd in de eerste kolom. Derde kolom (Genmask)- subnetmasker waarvoor deze route werkt. Kolomvlaggen geeft informatie over het bestemmingsadres (U - route is up, N - route voor het netwerk, H - route voor de host, enz.). Kolom MSS toont het aantal bytes dat in één keer kan worden verzonden, Raam- het aantal frames dat kan worden verzonden voordat een bevestiging wordt ontvangen, irt- routegebruiksstatistieken, Als gezicht- geeft de netwerkinterface aan die voor de route wordt gebruikt (eth0, eth1, etc.)

Zoals u in het onderstaande voorbeeld kunt zien, is de eerste invoer (regel) voor het netwerk 128.17.75. Alle pakketten voor dit netwerk worden naar de gateway 128.17.75.20 gestuurd, wat het IP-adres van de host zelf is. De tweede inzending is standaard route, wat van toepassing is op alle pakketten die worden verzonden naar netwerken die niet in deze routeringstabel staan ​​vermeld. Hier gaat de route via de gastpapaja (IP 128.17.75.98), die kan worden beschouwd als de deur naar de buitenwereld. Deze route moet worden geregistreerd op alle machines op het 128.17.75-netwerk die toegang moeten hebben tot andere netwerken. Het derde bericht is gemaakt voor loopback-interface. Dit adres wordt gebruikt als de machine via TCP/IP verbinding met zichzelf moet maken. De laatste invoer in de routeringstabel is gemaakt voor IP 128.17.75.20 en wordt naar de lo-interface geleid, d.w.z. wanneer een machine verbinding maakt met zichzelf op het adres 128.17.75.20, worden alle pakketten naar interface 127.0.0.1 gestuurd.

Als de gastheer aubergine wil een pakket naar de host sturen courgette, (dienovereenkomstig zal het pakket de afzender aangeven - 128.17.75.20 en de ontvanger - 128.17.75.37), zal het IP-protocol op basis van de routeringstabel bepalen dat beide hosts tot hetzelfde netwerk behoren en het pakket rechtstreeks naar het netwerk sturen waar courgette zal het ontvangen. Om het gedetailleerder te zeggen: de netwerkkaart zendt een ARP-verzoek uit: "Wie is IP 128.17.75.37, schreeuwt dit 128.17.75.20?" alle machines die dit bericht hebben ontvangen negeren het, en de host met het adres 128.17.75.37 antwoordt "Dit ben ik en mijn MAC-adres is zus en zo...", waarna de verbinding en gegevensuitwisseling plaatsvindt op basis van arp-tafels, waarin de correspondentie van IP-MAC-adressen wordt ingevoerd. "Shouts", dat wil zeggen dat dit pakket naar alle hosts wordt verzonden, dit gebeurt omdat het MAC-adres van de ontvanger is opgegeven als een broadcastadres (FF:FF:FF:FF:FF:FF). Alle hosts op het netwerk ontvangen dergelijke pakketten.

Voorbeeldrouteringstabel voor een host aubergine:

# netstat -rn Kernel IP-routingtabel Bestemming Gateway Genmask Vlaggen MSS Venster irtt Iface 128.17.75.0 128.17.75.20 255.255.255.0 UN 1500 0 0 eth0 standaard 128.17.75.98 0.0.0.0 UGN 1500 0 0 eth0 127.0.0.1 127.0.0.1 255,0. 0,0 UH 3584 0 0 lo 128.17.75.20 127.0.0.1 255.255.255.0 UH 3584 0 0 lo

Laten we een situatie bekijken waarin de host aubergine wil bijvoorbeeld een pakket naar de host sturen, peer of zelfs verder?.. In dit geval is de ontvanger van het pakket - 128.17.112.21, IP-protocol zal proberen een route voor netwerk 128.17.112 te vinden in de routeringstabel, maar deze route staat niet in de tabel, dus zal het selecteren standaard route, wiens toegangspoort is papaja(128.17.75.98). Na ontvangst van het pakket, papaja zal het bestemmingsadres opzoeken in de routeringstabel:

# netstat -rn Kernel IP-routeringstabel Bestemming Gateway Genmask Vlaggen MSS Venster irtt Iface 128.17.75.0 128.17.75.98 255.255.255.0 UN 1500 0 0 eth0 128.17.112.0 128.17.112.3 255.255.255 .0 UN 150 0 0 0 eth1 standaard 128.17.112.40 0,0 0,0 UGN 1500 0 0 eth1 127.0.0.1 127.0.0.1 255.0.0.0 UH 3584 0 0 lo 128.17.75.98 127.0.0.1 255.255.255.0 UH 3584 0 0 lo 128.17.1 12,3 127.0.0.1 255.255.255.0 UH 3584 0 0 lo

Uit het voorbeeld wordt dat duidelijk papaja verbonden met twee netwerken 128.17.75, via het apparaat eth0 en 128.17.112 via apparaat eth1. Standaardroute, via gastheer ananas, die op zijn beurt een gateway is naar het externe netwerk.

Dienovereenkomstig, na ontvangst van het pakket voor peer, router papaja zal zien dat het bestemmingsadres tot het netwerk 128.17.112 behoort en zal het pakket doorsturen in overeenstemming met de tweede invoer in de routeringstabel.

Pakketten worden dus van router naar router doorgegeven totdat ze het bestemmingsadres bereiken.

Het is vermeldenswaard dat in deze voorbeelden de routes

128.17.75.98 127.0.0.1 255.255.255.0 UH 3584 0 0 lo 128.17.112.3 127.0.0.1 255.255.255.0 UH 3584 0 0 lo

Niet standaard. En je zult dit niet zien in moderne Linux.

Cv

In dit artikel heb ik geprobeerd de basisconcepten van interactie van netwerkinfrastructuur zo kort en duidelijk mogelijk te beschrijven aan de hand van het voorbeeld van verschillende onderling verbonden netwerken. In het volgende deel zal ik de werking van het netwerk in het Linux-besturingssysteem beschrijven. Ik zie graag uw opmerkingen en aanvullingen tegemoet.

Laten we aannemen dat u een slechte kennis van netwerktechnologieën heeft en niet eens de basis kent. Maar je hebt een taak gekregen: snel een informatienetwerk opbouwen in een kleine onderneming. Je hebt noch de tijd, noch de wens om dikke Talmoeds te bestuderen over netwerkontwerp, instructies voor het gebruik van netwerkapparatuur, en je te verdiepen in netwerkbeveiliging. En het allerbelangrijkste: je hebt in de toekomst geen zin om professional op dit gebied te worden. Dan is dit artikel iets voor jou.


Het tweede deel van dit artikel, dat de praktische toepassing van de basisbeginselen behandelt die hier worden uiteengezet: Opmerkingen over Cisco Catalyst: VLAN-configuratie, wachtwoord opnieuw instellen, flashen van het IOS-besturingssysteem

De protocolstapel begrijpen

De taak is om informatie van punt A naar punt B over te dragen. Het kan continu worden verzonden. Maar de taak wordt ingewikkelder als u informatie tussen punten A moet overbrengen<-->B en A<-->C via hetzelfde fysieke kanaal. Als er continu informatie wordt verzonden, zal C, wanneer hij informatie naar A wil overbrengen, moeten wachten totdat B de verzending beëindigt en het communicatiekanaal vrijmaakt. Dit mechanisme voor het verzenden van informatie is erg lastig en onpraktisch. En om dit probleem op te lossen, werd besloten de informatie in porties te verdelen.

Bij de ontvanger moeten deze delen tot één geheel worden samengevoegd, om de informatie te ontvangen die van de afzender kwam. Maar bij ontvanger A zien we nu stukjes informatie van zowel B als C door elkaar gemengd. Dit betekent dat voor elk deel een identificatienummer moet worden ingevoerd, zodat ontvanger A delen van informatie van B kan onderscheiden van delen van informatie van C en deze delen kan samenvoegen tot het originele bericht. Vanzelfsprekend moet de ontvanger weten waar en in welke vorm de afzender identificatiegegevens aan de oorspronkelijke informatie heeft toegevoegd. En hiervoor moeten ze bepaalde regels ontwikkelen voor het vormen en schrijven van identificatie-informatie. Verder zal het woord “regel” worden vervangen door het woord “protocol”.

Om aan de behoeften van moderne consumenten te voldoen, is het noodzakelijk om verschillende soorten identificatie-informatie tegelijk aan te geven. Het vereist ook bescherming van verzonden stukjes informatie, zowel tegen willekeurige interferentie (tijdens verzending via communicatielijnen) als tegen opzettelijke sabotage (hacking). Hiertoe wordt een deel van de verzonden informatie aangevuld met een aanzienlijke hoeveelheid speciale service-informatie.

Het Ethernet-protocol bevat het netwerkadapternummer van de afzender (MAC-adres), het netwerkadapternummer van de ontvanger, het type gegevens dat wordt overgedragen en de daadwerkelijke gegevens die worden overgedragen. Een stukje informatie dat is samengesteld in overeenstemming met het Ethernet-protocol wordt een frame genoemd. Er wordt aangenomen dat er geen netwerkadapters zijn met hetzelfde nummer. Netwerkapparatuur haalt de verzonden gegevens uit het frame (hardware of software) en voert verdere verwerking uit.

In de regel worden de geëxtraheerde gegevens op hun beurt gevormd in overeenstemming met het IP-protocol en hebben ze een ander type identificatie-informatie: het IP-adres van de ontvanger (een nummer van 4 bytes), het IP-adres en de gegevens van de afzender. Evenals een heleboel andere noodzakelijke service-informatie. Gegevens die worden gegenereerd in overeenstemming met het IP-protocol worden pakketten genoemd.

Vervolgens worden de gegevens uit het pakket gehaald. Maar deze gegevens zijn in de regel nog niet de aanvankelijk verzonden gegevens. Ook dit stukje informatie wordt volgens een bepaald protocol samengesteld. Het meest gebruikte protocol is TCP. Het bevat identificatie-informatie zoals de afzenderpoort (een nummer van twee bytes) en de bronpoort, evenals gegevens- en service-informatie. De geëxtraheerde gegevens uit TCP zijn doorgaans de gegevens die het programma dat op computer B draait, naar het ‘ontvangerprogramma’ op computer A heeft verzonden.

De stapel protocollen (in dit geval TCP over IP over Ethernet) wordt een protocolstapel genoemd.

ARP: Adresresolutieprotocol

Er zijn netwerken van de klassen A, B, C, D en E. Ze verschillen in het aantal computers en het aantal mogelijke netwerken/subnetten daarin. Voor de eenvoud, en in het meest voorkomende geval, beschouwen we alleen een klasse C-netwerk, waarvan het IP-adres begint bij 192.168.0.1. Het volgende nummer is het subnetnummer, gevolgd door het nummer van de netwerkapparatuur. Een computer met IP-adres 192.168.30.110 wil bijvoorbeeld informatie verzenden naar een andere computer nummer 3 die zich in hetzelfde logische subnet bevindt. Dit betekent dat het IP-adres van de ontvanger: 192.168.30.3 is

Het is belangrijk om te begrijpen dat een informatienetwerkknooppunt een computer is die via één fysiek kanaal is verbonden met schakelapparatuur. Die. als we gegevens van de netwerkadapter "de wildernis in" sturen, dan hebben ze één pad: ze komen uit het andere uiteinde van het gedraaide paar. We kunnen absoluut alle gegevens verzenden die zijn gegenereerd volgens elke regel die we hebben uitgevonden, zonder een IP-adres, een Mac-adres of andere kenmerken op te geven. En als dit andere uiteinde op een andere computer is aangesloten, kunnen we ze daar ontvangen en interpreteren zoals we nodig hebben. Maar als dit andere uiteinde is verbonden met een schakelaar, dan moet het informatiepakket in dit geval worden gevormd volgens strikt gedefinieerde regels, alsof er instructies aan de schakelaar worden gegeven wat hij vervolgens met dit pakket moet doen. Als het pakket correct is gevormd, stuurt de switch het verder naar een andere computer, zoals aangegeven in het pakket. Daarna zal de switch dit pakket uit zijn RAM verwijderen. Maar als het pakket niet correct is gevormd, d.w.z. de instructies daarin onjuist waren, dan zal het pakket "sterven", d.w.z. de switch stuurt het nergens heen, maar verwijdert het onmiddellijk uit zijn RAM.

Om informatie naar een andere computer over te dragen, moeten drie identificatiewaarden worden opgegeven in het verzonden informatiepakket: mac-adres, ip-adres en poort. Relatief gezien is een poort een nummer dat het besturingssysteem verstrekt aan elk programma dat gegevens naar het netwerk wil sturen. Het IP-adres van de ontvanger wordt ingevoerd door de gebruiker, of het programma ontvangt het zelf, afhankelijk van de specifieke kenmerken van het programma. Het mac-adres blijft onbekend, d.w.z. netwerkadapternummer van de computer van de ontvanger. Om de benodigde gegevens te verkrijgen wordt een “broadcast”-verzoek verzonden, samengesteld met behulp van het zogenaamde “ARP Address Resolution Protocol”. Hieronder ziet u de structuur van het ARP-pakket.

Nu hoeven we niet de waarden van alle velden in de bovenstaande afbeelding te kennen. Laten we ons alleen op de belangrijkste concentreren.

De velden bevatten het bron-IP-adres en het doel-IP-adres, evenals het bron-mac-adres.

Het veld “Ethernet-bestemmingsadres” is gevuld met eenheden (ff:ff:ff:ff:ff:ff). Zo’n adres wordt een broadcastadres genoemd, en zo’n frame wordt naar alle ‘interfaces op de kabel’ gestuurd, d.w.z. alle computers die op de switch zijn aangesloten.

De switch, die zo'n uitzendframe heeft ontvangen, stuurt het naar alle computers in het netwerk, alsof hij iedereen aanspreekt met de vraag: “als u de eigenaar bent van dit IP-adres (bestemmings-IP-adres), vertel mij dan alstublieft uw mac-adres. ” Wanneer een andere computer een dergelijk ARP-verzoek ontvangt, controleert deze het bestemmings-IP-adres met zijn eigen adres. En als het overeenkomt, voegt de computer, in plaats van die, zijn mac-adres in, wisselt de IP- en Mac-adressen van de bron en de bestemming om, verandert wat service-informatie en stuurt het pakket terug naar de switch, die het terugstuurt naar de oorspronkelijke computer, de initiator van het ARP-verzoek.

Zo komt je computer achter het mac-adres van de andere computer waar je gegevens naartoe wilt sturen. Als er meerdere computers in het netwerk zijn die op dit ARP-verzoek reageren, krijgen we een ‘IP-adresconflict’. In dit geval is het noodzakelijk om het IP-adres op de computers te wijzigen, zodat er geen identieke IP-adressen op het netwerk zijn.

Netwerken opbouwen

De taak van het bouwen van netwerken

In de praktijk is het in de regel nodig om netwerken te bouwen met minstens honderd computers erin. En naast de functies voor het delen van bestanden moet ons netwerk veilig en eenvoudig te beheren zijn. Bij het bouwen van een netwerk kunnen dus drie vereisten worden onderscheiden:
  1. Eenvoudig te bedienen. Als accountant Lida naar een ander kantoor wordt overgeplaatst, zal zij alsnog toegang nodig hebben tot de computers van accountants Anna en Yulia. En als uw informatienetwerk niet goed is opgebouwd, kan het zijn dat de beheerder Lida op haar nieuwe plek moeite geeft om toegang te krijgen tot de computers van andere accountants.
  2. Zorgen voor veiligheid. Om de veiligheid van ons netwerk te garanderen, moeten de toegangsrechten tot informatiebronnen gedifferentieerd worden. Het netwerk moet ook worden beschermd tegen bedreigingen voor openbaarmaking, integriteit en denial-of-service. Lees meer in het boek “Attack on the Internet” van Ilya Davidovich Medvedovsky, hoofdstuk “Basisconcepten van computerbeveiliging”.
  3. Netwerkprestaties. Bij het bouwen van netwerken is er een technisch probleem: de afhankelijkheid van de transmissiesnelheid van het aantal computers in het netwerk. Hoe meer computers er zijn, hoe lager de snelheid. Bij een groot aantal computers kan de netwerksnelheid zo laag worden dat deze voor de klant onaanvaardbaar wordt.
Wat zorgt ervoor dat de netwerksnelheid afneemt als er een groot aantal computers is? - de reden is simpel: vanwege het grote aantal broadcastberichten (BMS). AL is een bericht dat bij aankomst bij de switch naar alle hosts op het netwerk wordt verzonden. Of, grofweg, alle computers die zich in uw subnet bevinden. Als er 5 computers op het netwerk zijn, ontvangt elke computer 4 alarmen. Als er 200 zijn, ontvangt elke computer in zo'n groot netwerk 199 shs.

Er is een groot aantal applicaties, softwaremodules en services die broadcastberichten naar het netwerk sturen om te kunnen functioneren. Beschreven in paragraaf ARP: het adresbepalingsprotocol is slechts een van de vele AN die door uw computer naar het netwerk worden verzonden. Wanneer u bijvoorbeeld naar “Netwerkomgeving” (Windows OS) gaat, verzendt uw computer nog een aantal AN met speciale informatie die is gegenereerd met behulp van het NetBios-protocol om het netwerk te scannen op computers die zich in dezelfde werkgroep bevinden. Waarna het besturingssysteem de gevonden computers in het venster “Netwerkbuurt” tekent en je ze ziet.

Het is ook vermeldenswaard dat uw computer tijdens het scanproces met een of ander programma niet één uitgezonden bericht verzendt, maar meerdere, bijvoorbeeld om virtuele sessies met externe computers tot stand te brengen of voor andere systeembehoeften veroorzaakt door softwareproblemen. implementatie van deze applicatie. Elke computer op het netwerk wordt dus, om met andere computers te kunnen communiceren, gedwongen veel verschillende AN te verzenden, waardoor het communicatiekanaal wordt geladen met informatie die de eindgebruiker niet nodig heeft. Zoals de praktijk laat zien, kunnen uitgezonden berichten in grote netwerken een aanzienlijk deel van het verkeer uitmaken, waardoor het voor de gebruiker zichtbare netwerk wordt vertraagd.

Virtuele LAN's

Om het eerste en derde probleem op te lossen, maar ook om het tweede probleem te helpen oplossen, wordt het mechanisme van het verdelen van het lokale netwerk in kleinere netwerken, zoals afzonderlijke lokale netwerken (Virtual Local Area Network), op grote schaal gebruikt. Grofweg is een VLAN een lijst met poorten op een switch die tot hetzelfde netwerk behoren. "Hetzelfde" in de zin dat het andere VLAN een lijst met poorten zal bevatten die tot het andere netwerk behoren.

In feite is het creëren van twee VLAN's op één switch gelijk aan het kopen van twee switches, d.w.z. Het creëren van twee VLAN's is hetzelfde als het verdelen van één switch in twee. Op deze manier wordt een netwerk van honderd computers verdeeld in kleinere netwerken van 5-20 computers - in de regel komt dit aantal overeen met de fysieke locatie van de computers voor de noodzaak voor het delen van bestanden.

  • Door het netwerk in VLAN's te verdelen, wordt beheergemak bereikt. Dus als accountant Lida naar een ander kantoor verhuist, hoeft de beheerder alleen maar de poort van het ene VLAN te verwijderen en aan een ander toe te voegen. Dit wordt in meer detail besproken in de sectie VLAN's, theorie.
  • VLAN's helpen bij het oplossen van een van de netwerkbeveiligingsvereisten, namelijk de afbakening van netwerkbronnen. Een student uit het ene publiek zal dus niet in de computers van een ander publiek of in de computer van de rector kunnen binnendringen, omdat ze bevinden zich op feitelijk verschillende netwerken.
  • Omdat ons netwerk is verdeeld in VLAN's, d.w.z. op kleine “alsof-netwerken” verdwijnt het probleem met uitgezonden berichten.

VLAN's, theorie

Misschien is de zinsnede “de beheerder hoeft alleen maar een poort van het ene VLAN te verwijderen en aan een ander toe te voegen” onduidelijk, dus ik zal het in meer detail uitleggen. De poort is in dit geval niet een nummer dat door het besturingssysteem aan de applicatie wordt verstrekt, zoals beschreven in de paragraaf Protocolstapel, maar een socket (plaats) waar u een RJ-45-connector kunt aansluiten (insteken). Deze connector (d.w.z. de punt van de draad) is bevestigd aan beide uiteinden van een 8-aderige draad, een zogenaamde “twisted pair”. De afbeelding toont een Cisco Catalyst 2950C-24 switch met 24 poorten:
Zoals vermeld in paragraaf ARP: adresbepalingsprotocol, is elke computer via één fysiek kanaal met het netwerk verbonden. Die. Op een 24-poorts switch kun je 24 computers aansluiten. De twisted pair-kabel dringt fysiek door alle gebouwen van het bedrijf heen - alle 24 draden van deze switch strekken zich uit naar verschillende kamers. Laat bijvoorbeeld 17 draden los en sluit deze aan op 17 computers in het klaslokaal, 4 draden gaan naar het speciale afdelingskantoor en de overige 3 draden gaan naar het onlangs gerenoveerde, nieuwe boekhoudkantoor. En accountant Lida werd voor speciale diensten naar dit kantoor overgeplaatst.

Zoals hierboven vermeld, kan VLAN worden weergegeven als een lijst met poorten die tot het netwerk behoren. Onze switch had bijvoorbeeld drie VLAN's, d.w.z. drie lijsten opgeslagen in het flashgeheugen van de schakelaar. In de ene lijst stonden de nummers 1, 2, 3... 17, in een andere 18, 19, 20, 21 en in de derde 22, 23 en 24. Lida's computer was voorheen aangesloten op poort 20. En dus verhuisde ze naar een ander kantoor. Ze sleepten haar oude computer naar een nieuw kantoor, of ze ging achter een nieuwe computer zitten - het maakt niet uit. Het belangrijkste is dat haar computer was aangesloten met een twisted pair-kabel, waarvan het andere uiteinde in poort 23 van onze switch werd gestoken. En om ervoor te zorgen dat ze vanaf haar nieuwe locatie bestanden naar haar collega's kan blijven sturen, moet de beheerder het nummer 20 uit de tweede lijst verwijderen en het nummer 23 toevoegen. Houd er rekening mee dat één poort slechts tot één VLAN kan behoren, maar we zullen dit verbreken regel aan het einde van deze paragraaf.

Ik zal ook opmerken dat bij het wijzigen van het lidmaatschap van een poort in het VLAN, de beheerder de draden in de switch niet hoeft te “aansluiten”. Bovendien hoeft hij niet eens op te staan ​​van zijn stoel. Omdat de computer van de beheerder is aangesloten op poort 22, met behulp waarvan hij de switch op afstand kan beheren. Dankzij speciale instellingen, die later zullen worden besproken, kan uiteraard alleen de beheerder de overstap beheren. Voor informatie over het configureren van VLAN's leest u de sectie VLAN's, oefenen [in het volgende artikel].

Zoals je waarschijnlijk hebt gemerkt, zei ik aanvankelijk (in de sectie Netwerken bouwen) dat er minstens 100 computers in ons netwerk zullen zijn, maar er kunnen slechts 24 computers op de switch worden aangesloten. Natuurlijk zijn er switches met meer poorten. Maar er zijn nog steeds meer computers in het bedrijfsnetwerk. En om een ​​oneindig groot aantal computers in een netwerk te kunnen aansluiten, worden switches via de zogenaamde trunkpoort met elkaar verbonden. Bij het configureren van de switch kan elk van de 24 poorten worden gedefinieerd als trunkpoort. En er kan een willekeurig aantal trunkpoorten op de switch zijn (maar het is redelijk om er niet meer dan twee te doen). Als een van de poorten als trunk is gedefinieerd, vormt de switch alle daarop ontvangen informatie in speciale pakketten, met behulp van het ISL- of 802.1Q-protocol, en stuurt deze pakketten naar de trunkpoort.

Alle informatie die binnenkwam, ik bedoel, alle informatie die vanuit andere havens binnenkwam. En het 802.1Q-protocol wordt ingevoegd in de protocolstack tussen Ethernet en het protocol dat de gegevens genereerde die dit frame bevat.

In dit voorbeeld zit, zoals u waarschijnlijk heeft opgemerkt, de beheerder in hetzelfde kantoor als Lida, omdat De getwiste kabel van poort 22, 23 en 24 leidt naar hetzelfde kantoor. Poort 24 is geconfigureerd als trunkpoort. En de telefooncentrale zelf staat in de bijkeuken, naast het oude accountantskantoor en het klaslokaal, waar zeventien computers staan.

De twisted pair-kabel die van poort 24 naar het kantoor van de beheerder gaat, is aangesloten op een andere switch, die op zijn beurt is aangesloten op een router, die in de volgende hoofdstukken wordt besproken. Andere schakelaars die de andere 75 computers verbinden en zich in andere nutsruimten van de onderneming bevinden - ze hebben in de regel allemaal één trunkpoort die via twisted pair of glasvezelkabel is verbonden met de hoofdschakelaar, die zich in het kantoor bevindt met de beheerder.

Hierboven werd gezegd dat het soms redelijk is om twee trunkpoorten te maken. De tweede trunkpoort wordt in dit geval gebruikt om het netwerkverkeer te analyseren.

Dit is ongeveer hoe het bouwen van grote bedrijfsnetwerken eruit zag ten tijde van de Cisco Catalyst 1900-switch. Je hebt waarschijnlijk twee grote nadelen van dergelijke netwerken opgemerkt. Ten eerste veroorzaakt het gebruik van een trunkpoort enkele problemen en creëert het onnodig werk bij het configureren van de apparatuur. En ten tweede, en het allerbelangrijkste: laten we aannemen dat onze ‘netwerken’ van accountants, economen en coördinatoren één database voor drie willen hebben. Ze willen dat dezelfde accountant de wijzigingen in de database kan zien die de econoom of coördinator een paar minuten geleden heeft aangebracht. Om dit te doen, moeten we een server maken die toegankelijk is voor alle drie de netwerken.

Zoals vermeld in het midden van deze paragraaf, kan een poort zich slechts in één VLAN bevinden. En dit geldt echter alleen voor switches uit de Cisco Catalyst 1900-serie en ouder en voor enkele jongere modellen, zoals de Cisco Catalyst 2950. Voor andere switches, met name de Cisco Catalyst 2900XL, kan deze regel worden overtreden. Bij het configureren van poorten in dergelijke switches kan elke poort vijf bedrijfsmodi hebben: Statische toegang, Multi-VLAN, Dynamische toegang, ISL Trunk en 802.1Q Trunk. De tweede werkingsmodus is precies wat we nodig hebben voor de bovenstaande taak: toegang verlenen tot de server vanaf drie netwerken tegelijk, d.w.z. zorg ervoor dat de server tegelijkertijd tot drie netwerken behoort. Dit wordt ook wel VLAN-crossing of tagging genoemd. In dit geval kan het aansluitschema er als volgt uitzien.

In de moderne wereld verspreidt informatie zich binnen enkele seconden. Het nieuws is zojuist verschenen en een seconde later is het al beschikbaar op een website op internet. Het internet wordt beschouwd als een van de nuttigste ontwikkelingen van de menselijke geest. Om van alle voordelen van internet te kunnen genieten, moet u verbinding maken met dit netwerk.

Weinig mensen weten dat het eenvoudige proces van het bezoeken van webpagina's een complex systeem van acties met zich meebrengt, onzichtbaar voor de gebruiker. Elke klik op een link activeert honderden verschillende computerbewerkingen in het hart van de computer. Deze omvatten het verzenden van verzoeken, het ontvangen van antwoorden en nog veel meer. De zogenaamde TCP/IP-protocollen zijn verantwoordelijk voor elke actie op het netwerk. Wat zijn ze?

Elk internetprotocol TCP/IP werkt op zijn eigen niveau. Met andere woorden: iedereen doet zijn eigen ding. De hele TCP/IP-protocolfamilie doet enorm veel werk tegelijkertijd. En de gebruiker ziet op dit moment alleen heldere afbeeldingen en lange regels tekst.

Het concept van een protocolstapel

De TCP/IP-protocolstack is een georganiseerde set basisnetwerkprotocollen, die hiërarchisch is verdeeld in vier niveaus en een systeem is voor de transportdistributie van pakketten via een computernetwerk.

TCP/IP is de bekendste netwerkprotocolstack die tegenwoordig wordt gebruikt. De principes van de TCP/IP-stack zijn van toepassing op zowel lokale als WAN-netwerken.

Principes van het gebruik van adressen in de protocolstapel

De TCP/IP-netwerkprotocolstack beschrijft de paden en richtingen waarin pakketten worden verzonden. Dit is de hoofdtaak van de hele stapel, uitgevoerd op vier niveaus die met elkaar communiceren via een gelogd algoritme. Om ervoor te zorgen dat het pakket correct werd verzonden en precies op het punt werd afgeleverd waar het om werd gevraagd, werd IP-adressering geïntroduceerd en gestandaardiseerd. Dit kwam door de volgende werkzaamheden:

  • Adressen van verschillende typen moeten consistent zijn. Bijvoorbeeld het converteren van een websitedomein naar het IP-adres van een server en terug, of het converteren van een hostnaam naar een adres en terug. Op deze manier wordt het mogelijk om niet alleen toegang te krijgen tot het punt via het IP-adres, maar ook via de intuïtieve naam.
  • Adressen moeten uniek zijn. Dit komt omdat het pakket in sommige speciale gevallen slechts één specifiek punt hoeft te bereiken.
  • De noodzaak om lokale netwerken te configureren.

In kleine netwerken waar enkele tientallen knooppunten worden gebruikt, worden al deze taken eenvoudig uitgevoerd met behulp van de eenvoudigste oplossingen: het samenstellen van een tabel die het eigendom van de machine en het bijbehorende IP-adres beschrijft, of u kunt IP-adressen handmatig distribueren naar alle netwerkadapters. Voor grote netwerken met duizend of tweeduizend machines lijkt het handmatig uitgeven van adressen echter niet zo haalbaar.

Daarom is er een speciale aanpak bedacht voor TCP/IP-netwerken, die een onderscheidend kenmerk van de protocolstack werd. Het concept van schaalbaarheid werd geïntroduceerd.

Lagen van de TCP/IP-protocolstack

Er is hier sprake van een bepaalde hiërarchie. De TCP/IP-protocolstack bestaat uit vier lagen, die elk hun eigen set protocollen verwerken:

Applicatie laag: gemaakt om de gebruiker in staat te stellen met het netwerk te communiceren. Op dit niveau wordt alles verwerkt wat de gebruiker ziet en doet. Via de laag heeft de gebruiker toegang tot verschillende netwerkdiensten, bijvoorbeeld: toegang tot databases, de mogelijkheid om een ​​lijst met bestanden te lezen en te openen, een e-mailbericht te verzenden of een webpagina te openen. Samen met gebruikersgegevens en acties wordt op dit niveau service-informatie verzonden.

Transportlaag: Dit is een puur pakkettransmissiemechanisme. Op dit niveau doet noch de inhoud van het pakket, noch de relatie ervan met welke actie dan ook, ertoe. Op dit niveau zijn alleen het adres van het knooppunt van waaruit het pakket wordt verzonden en het adres van het knooppunt waar het pakket moet worden afgeleverd van belang. In de regel kan de grootte van fragmenten die met verschillende protocollen worden verzonden, veranderen. Daarom kunnen op dit niveau informatieblokken aan de uitgang worden opgesplitst en op de bestemming tot één geheel worden samengevoegd. Dit veroorzaakt mogelijk gegevensverlies als er op het moment van verzending van het volgende fragment een korte verbindingsonderbreking optreedt.

De transportlaag omvat veel protocollen, die zijn onderverdeeld in klassen, van de eenvoudigste, die eenvoudigweg gegevens verzenden, tot complexe protocollen, die zijn uitgerust met de functionaliteit van ontvangstbevestiging of het opnieuw opvragen van een ontbrekend gegevensblok.

Dit niveau voorziet het hogere (applicatie)niveau van twee soorten diensten:

  • Biedt gegarandeerde levering via het TCP-protocol.
  • Levert waar mogelijk via UDP .

Om een ​​gegarandeerde bezorging te garanderen, wordt er een verbinding tot stand gebracht volgens het TCP-protocol, waardoor pakketten aan de uitgang kunnen worden genummerd en aan de ingang kunnen worden bevestigd. De nummering van pakketten en ontvangstbevestiging is de zogenaamde service-informatie. Dit protocol ondersteunt verzending in de "Duplex"-modus. Bovendien wordt het dankzij de doordachte regelgeving van het protocol als zeer betrouwbaar beschouwd.

Het UDP-protocol is bedoeld voor momenten waarop het onmogelijk is om de transmissie via het TCP-protocol te configureren, of u moet besparen op het netwerkdatatransmissiesegment. Ook kan het UDP-protocol communiceren met protocollen van een hoger niveau om de betrouwbaarheid van pakkettransmissie te vergroten.

Netwerklaag of "Internetlaag": de basislaag voor het gehele TCP/IP-model. De hoofdfunctionaliteit van deze laag is identiek aan de gelijknamige laag in het OSI-model en beschrijft de verplaatsing van pakketten in een samengesteld netwerk dat uit verschillende kleinere subnetten bestaat. Het verbindt aangrenzende lagen van het TCP/IP-protocol.

De netwerklaag is de verbindingslaag tussen de hogere transportlaag en het lagere niveau van netwerkinterfaces. De netwerklaag maakt gebruik van protocollen die een verzoek ontvangen van de transportlaag, en via gereguleerde adressering het verwerkte verzoek verzenden naar het netwerkinterfaceprotocol, waarbij wordt aangegeven naar welk adres de gegevens moeten worden verzonden.

Op dit niveau worden de volgende TCP/IP-netwerkprotocollen gebruikt: ICMP, IP, RIP, OSPF. De belangrijkste en meest populaire op netwerkniveau is natuurlijk het IP (Internet Protocol). De belangrijkste taak is het verzenden van pakketten van de ene router naar de andere totdat een gegevenseenheid de netwerkinterface van het bestemmingsknooppunt bereikt. Het IP-protocol wordt niet alleen op hosts ingezet, maar ook op netwerkapparatuur: routers en beheerde switches. Het IP-protocol werkt volgens het principe van best-effort, niet-gegarandeerde levering. Dat wil zeggen dat het niet nodig is om vooraf een verbinding tot stand te brengen om een ​​pakket te verzenden. Deze optie leidt tot een besparing van verkeer en tijd bij het verplaatsen van onnodige servicepakketten. Het pakket wordt naar zijn bestemming gerouteerd en het is mogelijk dat het knooppunt onbereikbaar blijft. In dit geval wordt er een foutmelding geretourneerd.

Netwerkinterfaceniveau: is ervoor verantwoordelijk dat subnetwerken met verschillende technologieën met elkaar kunnen communiceren en informatie in dezelfde modus kunnen verzenden. Dit gebeurt in twee eenvoudige stappen:

  • Coderen van een pakket in een tussenliggende netwerkdata-eenheid.
  • Converteert de bestemmingsinformatie naar de vereiste subnetstandaarden en verzendt de data-eenheid.

Deze aanpak stelt ons in staat het aantal ondersteunde netwerktechnologieën voortdurend uit te breiden. Zodra er een nieuwe technologie verschijnt, valt deze onmiddellijk in de TCP/IP-protocolstack en stelt netwerken met oudere technologieën in staat gegevens over te dragen naar netwerken die zijn gebouwd met modernere standaarden en methoden.

Overgedragen gegevenseenheden

Tijdens het bestaan ​​van een fenomeen als de TCP/IP-protocollen werden standaardtermen opgesteld voor de eenheden van verzonden gegevens. Gegevens tijdens de verzending kunnen op verschillende manieren worden gefragmenteerd, afhankelijk van de technologieën die door het bestemmingsnetwerk worden gebruikt.

Om een ​​idee te krijgen van wat er met de data gebeurt en op welk moment, was het nodig om de volgende terminologie te bedenken:

  • Gegevensstroom- data die vanuit protocollen van een hogere applicatielaag op de transportlaag terechtkomen.
  • Een segment is een gegevensfragment waarin een stroom is verdeeld volgens de TCP-protocolstandaarden.
  • Datagram(vooral ongeletterde mensen spreken het uit als "Datagram") - gegevenseenheden die worden verkregen door een stroom te splitsen met behulp van verbindingsloze protocollen (UDP).
  • Plastic zak- een gegevenseenheid geproduceerd via het IP-protocol.
  • De TCP/IP-protocollen verpakken IP-pakketten in gegevensblokken die worden verzonden via samengestelde netwerken, de zogenaamde personeel of kaders.

Typen TCP/IP-protocolstackadressen

Elk TCP/IP-protocol voor gegevensoverdracht gebruikt een van de volgende adrestypen om hosts te identificeren:

  • Lokale (hardware) adressen.
  • Netwerkadressen (IP-adressen).
  • Domeinnamen.

Lokale adressen (MAC-adressen) - gebruikt in de meeste lokale netwerktechnologieën om netwerkinterfaces te identificeren. Als het over TCP/IP gaat, betekent het woord lokaal een interface die niet in een samengesteld netwerk werkt, maar binnen een afzonderlijk subnet. Het subnet van een interface die met internet is verbonden, zal bijvoorbeeld lokaal zijn en het internetnetwerk zal samengesteld zijn. Een lokaal netwerk kan op elke technologie worden gebouwd, en ongeacht dit, vanuit het perspectief van een samengesteld netwerk, zal een machine die zich in een afzonderlijk speciaal subnet bevindt, lokaal worden genoemd. Wanneer een pakket dus het lokale netwerk binnenkomt, wordt het IP-adres ervan geassocieerd met het lokale adres, en wordt het pakket naar het MAC-adres van de netwerkinterface verzonden.

Netwerkadressen (IP-adressen). TCP/IP-technologie biedt zijn eigen mondiale adressering van knooppunten om een ​​eenvoudig probleem op te lossen: het combineren van netwerken met verschillende technologieën in één grote datatransmissiestructuur. IP-adressering is volledig onafhankelijk van de technologie die op het lokale netwerk wordt gebruikt, maar een IP-adres zorgt ervoor dat een netwerkinterface een machine op een samengesteld netwerk kan vertegenwoordigen.

Als resultaat hiervan is een systeem ontwikkeld waarbij hosts een IP-adres en een subnetmasker toegewezen krijgen. Het subnetmasker laat zien hoeveel bits zijn toegewezen aan het netwerknummer en hoeveel aan het hostnummer. Een IP-adres bestaat uit 32 bits, verdeeld in blokken van 8 bits.

Wanneer een pakket wordt verzonden, wordt er informatie aan toegewezen over het netwerknummer en het knooppuntnummer waarnaar het pakket moet worden verzonden. Eerst stuurt de router het pakket door naar het gewenste subnet en vervolgens wordt een host geselecteerd die daarop wacht. Dit proces wordt uitgevoerd door het Address Resolution Protocol (ARP).

Domeinadressen op TCP/IP-netwerken worden beheerd door een speciaal ontworpen Domain Name System (DNS). Om dit te doen, zijn er servers die de domeinnaam, gepresenteerd als een tekstreeks, matchen met het IP-adres, en het pakket verzenden in overeenstemming met de globale adressering. Er bestaat geen overeenkomst tussen een computernaam en een IP-adres. Om een ​​domeinnaam naar een IP-adres te converteren, moet het verzendende apparaat dus toegang krijgen tot de routeringstabel die op de DNS-server is aangemaakt. We schrijven bijvoorbeeld het siteadres in de browser, de DNS-server matcht dit met het IP-adres van de server waarop de site zich bevindt, en de browser leest de informatie en ontvangt een antwoord.

Naast internet is het mogelijk om domeinnamen aan computers uit te geven. Het proces van werken op een lokaal netwerk wordt dus vereenvoudigd. Het is niet nodig om alle IP-adressen te onthouden. In plaats daarvan kunt u elke computer een willekeurige naam geven en deze gebruiken.

IP-adres. Formaat. Componenten. Subnetmasker

Een IP-adres is een 32-bits getal, dat in de traditionele weergave wordt geschreven als getallen van 1 tot en met 255, gescheiden door punten.

Type IP-adres in verschillende opnameformaten:

  • Decimaal IP-adres: 192.168.0.10.
  • Binaire vorm van hetzelfde IP-adres: 11000000.10101000.00000000.00001010.
  • Adresinvoer in hexadecimaal getalsysteem: C0.A8.00.0A.

Er is geen scheidingsteken tussen de netwerk-ID en het puntnummer in de invoer, maar de computer kan deze wel scheiden. Er zijn drie manieren om dit te doen:

  1. Vaste rand. Bij deze methode wordt het gehele adres byte voor byte voorwaardelijk verdeeld in twee delen met een vaste lengte. Als we dus één byte opgeven voor het netwerknummer, krijgen we 2 8 netwerken van elk 2 24 knooppunten. Als de grens nog een byte naar rechts wordt verplaatst, zullen er meer netwerken zijn - 2 16, en minder knooppunten - 2 16. Tegenwoordig wordt de aanpak als verouderd beschouwd en wordt deze niet meer gebruikt.
  2. Subnetmasker. Het masker is gekoppeld aan een IP-adres. Het masker heeft een reeks waarden "1" in de bits die zijn toegewezen aan het netwerknummer, en een bepaald aantal nullen op de plaatsen van het IP-adres die zijn toegewezen aan het knooppuntnummer. De grens tussen enen en nullen in het masker is de grens tussen de netwerk-ID en de host-ID in het IP-adres.
  3. Methode voor adresklassen. Compromismethode. Bij gebruik kunnen netwerkgroottes niet door de gebruiker worden geselecteerd, maar er zijn vijf klassen - A, B, C, D, E. Drie klassen - A, B en C - zijn bedoeld voor verschillende netwerken, en D en E zijn gereserveerd voor speciale netwerken. In een klassensysteem heeft elke klasse zijn eigen grens van netwerknummer en knooppunt-ID.

IP-adresklassen

NAAR klasse A Deze omvatten netwerken waarin het netwerk wordt geïdentificeerd door de eerste byte en de overige drie het knooppuntnummer zijn. Alle IP-adressen met een eerste bytewaarde van 1 tot 126 in hun bereik zijn klasse A-netwerken. Er zijn zeer weinig klasse A-netwerken in aantal, maar elk daarvan kan maximaal 2 24 punten hebben.

Klasse B- netwerken waarin de twee hoogste bits gelijk zijn aan 10. Daarin worden 16 bits toegewezen voor het netwerknummer en de puntidentificatie. Als gevolg hiervan blijkt dat het aantal klasse B-netwerken kwantitatief verschilt van het aantal klasse A-netwerken, maar dat ze een kleiner aantal knooppunten hebben - tot 65.536 (2 16) eenheden.

Op netwerken klasse C- er zijn heel weinig knooppunten - 2 8 in elk, maar het aantal netwerken is enorm, vanwege het feit dat de netwerkidentificatie in dergelijke structuren drie bytes in beslag neemt.

Netwerken klasse D- behoren al tot speciale netwerken. Het begint met de reeks 1110 en wordt een multicast-adres genoemd. Interfaces met klasse A-, B- en C-adressen kunnen deel uitmaken van een groep en naast het individuele adres ook een groepsadres ontvangen.

Adressen klasse E- als reserve voor de toekomst. Dergelijke adressen beginnen met de reeks 11110. Hoogstwaarschijnlijk zullen deze adressen worden gebruikt als groepsadressen wanneer er een tekort is aan IP-adressen op het mondiale netwerk.

Het TCP/IP-protocol instellen

Het instellen van het TCP/IP-protocol is beschikbaar op alle besturingssystemen. Dit zijn Linux, CentOS, Mac OS X, Free BSD, Windows 7. Het TCP/IP-protocol vereist alleen een netwerkadapter. Natuurlijk zijn serverbesturingssystemen tot meer in staat. Het TCP/IP-protocol wordt op grote schaal geconfigureerd met behulp van serverservices. IP-adressen op gewone desktopcomputers worden ingesteld in de netwerkverbindingsinstellingen. Daar configureert u het netwerkadres, de gateway - het IP-adres van het punt dat toegang heeft tot het mondiale netwerk, en de adressen van de punten waar de DNS-server zich bevindt.

Het TCP/IP-internetprotocol kan handmatig worden geconfigureerd. Hoewel dit niet altijd nodig is. U kunt automatisch TCP/IP-protocolparameters ontvangen van het dynamische distributieadres van de server. Deze methode wordt gebruikt in grote bedrijfsnetwerken. Op een DHCP-server kunt u een lokaal adres toewijzen aan een netwerkadres, en zodra een machine met een bepaald IP-adres op het netwerk verschijnt, geeft de server deze onmiddellijk een vooraf ingesteld IP-adres. Dit proces heet reserveren.

TCP/IP-adresresolutieprotocol

De enige manier om een ​​relatie tussen een MAC-adres en een IP-adres tot stand te brengen, is door een tabel bij te houden. Als er een routeringstabel is, is elke netwerkinterface op de hoogte van zijn adressen (lokaal en netwerk), maar de vraag rijst hoe de uitwisseling van pakketten tussen knooppunten op de juiste manier kan worden georganiseerd met behulp van het TCP/IP 4-protocol.

Waarom is het Address Resolution Protocol (ARP) uitgevonden? Om de TCP/IP-protocolfamilie en andere adresseringssystemen te koppelen. Op elk knooppunt wordt een ARP-toewijzingstabel gemaakt, die wordt gevuld door het hele netwerk te pollen. Dit gebeurt elke keer dat de computer wordt uitgeschakeld.

ARP-tabel

Dit is hoe een voorbeeld van een gecompileerde ARP-tabel eruit ziet.