# Internetworking

Internetworking (inter-networking), is een techniek om twee of meerdere computernetwerken (LAN’s, MAN’s, WAN’s, etc) met elkaar te verbinden via gateways, die ervoor zorgen dat informatiepakketten tussen de netwerken verstuurd kunnen worden. Het resultaat, dat bekomen wordt door deze netwerken te verbinden, wordt internetwerk of kortweg internet genoemd.
Het bekendste voorbeeld van internetworking is het Internet, een wereldwijd netwerk bestaande uit netwerken, gebaseerd op vele onderliggende hardware technologieën.

## Probleemstelling

Er bestaan een heleboel verschillende soorten netwerken. De meeste PC's ondersteunen TCP/IP. Vele grote bedrijven maken gebruik van IBM's SNA. Een groot aantal telefoonmaatschappijen maken gebruik van ATM netwerken. Sommige personal computer LAN's maken nog steeds gebruik van Novell NCP/IPX (NetWare Core Protocol/Internetwork Packet Exchange) of AppleTalk. Daar komen ook nog eens de in aantal groeiende draadloze netwerken bij met hun eigen protocollen.
Verschillende netwerken (bv. ATM en draadloos) gebruiken ook heel verschillende technologieën, hieruit volgt ook dat wanneer nieuwe hardware ontwikkeld wordt, er ook nieuwe software voor deze hardware gemaakt wordt.
Wanneer internetworking plaatsvindt moet ervoor gezorgd worden dat al deze verschillende netwerken, met hun verschillende technologieën, met elkaar kunnen functioneren.
De afbeelding hiernaast geeft een voorbeeld van een mogelijke situatie. We zien hier een bedrijfsnetwerk met meerdere locaties die verbonden worden door een wide area ATM netwerk. Op een van de locaties wordt er een FDDI optical backbone gebruikt om een Ethernet, een 802.11 draadloze LAN en het mainframe netwerk, van het bedrijfsgegevenscenter, te verbinden. Het doel van het verbinden van al deze netwerken is, om communicatie mogelijk te maken tussen al deze verschillende netwerken en om toe te staan dat gebruikers van een van deze deelnetwerken data kunnen verzenden/ontvangen naar/van gebruikers van een ander deelnetwerk. Aangezien netwerken soms op belangrijke vlakken verschillen, is dit niet altijd eenvoudig.

## Het verschil tussen netwerken

Netwerken kunnen zich op hele boel vlakken differentiëren van elkaar. Een aantal van deze verschillen, zoals modulatie technieken of frame formaat, vinden plaats op de fysieke- en datalink-laag van het OSI-model. Deze verschillen hebben geen invloed voor de interconnectie. Daarentegen zijn er een heleboel verschillen mogelijk op de netwerklaag. Deze tabel geeft enkele voorbeelden van verschillen op de netwerklaag.
| Categorie | Aantal mogelijkheden |
| Aangeboden diensten | Connection oriented versus connectionless |
| Protocols | IP, IPX, SNA, ATM, MPLS, AppleTalk, etc. |
| Adressering | Flat (802) versus hierarchical (IP) |
| Multicasting | Aanwezig of afwezig (ook broadcasting) |
| Pakketgrootte | Elk netwerk heeft zijn eigen maximum |
| Quality of Service | Aanwezig of afwezig; veel verschillende soorten |
| Error handling | Betrouwbaar, geordend en ongeordende levering |
| Flow control | Sliding window, rate control, andere of geen |
| Congestion control | Leaky bucket, token bucket, Random_early detection, choke packets, etc. |
| Beveiliging | Privacy voorwaarden, encryptie, etc. |
| Parameters | Verschillende time-outs, flow specificaties, etc. |
| Accounting | Per verbindingstijd, per pakket, per byte of totaal niet |
Voor een correcte samenhang tussen de netwerken is het soms nodig om protocolsomvormingen uit te voeren. Deze omvormingen kunnen moeilijk zijn wanneer de benodigde functionaliteit niet uitgedrukt kan worden. Adressomvormingen zullen dan ook nodig zijn. Waarvoor je dan weer misschien een soort van mappensysteem nodig hebt.
De verschillende maximum pakketgroottes die gebruikt worden door de deelnetwerken kunnen een groot probleem vormen. Hoe zou je een 8000-byte pakket verzenden door een netwerk met een maximum pakketgrootte van 1500 bytes?
Vaak gebeurt het dat de error, flow en congestion controle niet overeenkomen binnen de verschillende netwerken. Als de zender en de ontvanger allebei verwachten dat alle pakketten in volgorde en zonder errors worden afgeleverd, maar een tussengelegen netwerk gooit pakketten weg wanneer er een ophoping van pakketten (congestie) plaatsvindt, zullen vele applicaties afgebroken worden.
Verschillende beveiligingsmechanismen, parameter instellingen, accounting regels en zelfs verschillende nationale privacywetten kunnen voor conflicten zorgen.

## Het onderling verbinden van netwerken

Netwerken kunnen door middel van verschillende toestellen met elkaar verbonden worden. Op de fysieke laag kan men netwerken verbinden door middel van hubs. Deze verplaatsen gewoon bits van het ene netwerk naar het andere identieke netwerk. Dit zijn bijna volledig analoge toestellen en verstaan niets van de digitale protocollen.
De laag daarboven (datalink-laag) vinden we bridges en switches. Deze aanvaarden frames, bekijken MAC-adressen en versturen de frames naar een ander netwerk. Hierbij worden kleine protocolvertalingen gedaan, zoals van Ethernet naar FDDI of naar 802.11.
In de netwerklaag hebben we routers die twee netwerken kunnen verbinden. Wanneer twee netwerken verschillende netwerklagen hebben, kan de router in staat zijn om de verschillende pakketformaten te vertalen. Pakketvertalingen worden tegenwoordig amper nog gedaan. Een router die meerdere protocols kan hanteren, wordt een multiprotocol router genoemd.
In de transportlaag vinden we transport gateways. Deze zorgen voor een connectie tussen twee transportverbindingen. Een transport gateway kan er bijvoorbeeld voor zorgen dat pakketten verstuurt kunnen worden tussen een TCP-netwerk en een SNA-netwerk, door als het ware een TCP-verbinding te lijmen aan een SNA-verbinding.
Uiteindelijk in de applicatielaag heb je applicatie gateways. Deze vertalen de betekenis van de boodschappen. Bijvoorbeeld gateways tussen Internet e-mail (RFC 822) en X.400 e-mail moeten de betekenis van berichten vertalen en de verschillende headers aanpassen.