Azine
Om tidningen Azine
Köpa Azine
Kontakta Azine
Hjälpa till
Annonsera i Azine
About Azine English

Senaste numret
Nästa nummer
Arkiv

Kurser/Skolor
Intervjuer
Forum

ACG
SUA
ACG Göteborg
AmigaGuiden

Annonsörer:
GGS-Data

Sponsorer:
AmigaRulez (Forum)
GGS-Data
WestSide Praetorian
M.Andersson

Försäljningsställen
GGS-Data
Guru Meditation


Senaste Nummer 8 Nummer 7 Nummer 7 bilaga Nummer 6 Nummer 5++ Nummer 4 Nummer 3 Nummer 2 Nummer 1









Vill du ha din banner här?
Skriv till [email protected]!
Välkommen till hela Sveriges Amigatidning.


ACGs maskot

Linux - Del 2, TCP/IP, vad är det?

De flesta system har sina egna specifika protokoll som har utvecklats specifikt för speciella ändamål, men som har en sak gemensamt. Nämligen att möjliggöra kommunikation.

Vad är då ett protokoll? Ja, det kan sammanfattas som ett regelverk för hur kommunikation skall fungera mellan olika datorer. Protokoll ligger på nivå tre och fyra i den s.k. OSI-modellen där nivå tre definierar adressering och nivå fyra definierar transport.

Som exempel på olika protokoll kan nämnas IPX/SPX för Novell Netware, Appletalk för Macintosh, NetBeui för Windows, SNA för AS/400 m.fl.

I denna del av artikelserien skall vi behandla TCP/IP som idag är det största och växande Internetprotokollet.
TCP/IP är ett globalt protokoll som är gemensamt för alla moderna datorer och annan utrustning idag. Vissa äldre system som exempelvis VAX VMS och liknande kan trots allt kommunicera med TCP/IP idag via speciella gateways.

TCP/IP står för Transport Control Protocol/Internet Protocol och härstammar i sin ursprungliga form som en vidareutveckling från tiden strax efter ArpaNet, runt slutet på 1960-talet och början på 1970-talet.

Detta protokoll använder sig av adressering enligt en standard och baseras på att varje host (kommunicerbar utrustning) identifieras via en unik nummerserie på ett publikt nät. Denna nummerserie kopplas sedan ihop med den MAC-adress som hostens kommunikationsgränssnitt har. MAC-adresser är för övrigt också unika.

Sättet att adressera kallas för quads (dotted decimal), eller på svenska för punktdecimalnotation, och består av fyra oktetter separerade med punkter, alltså en 32 bitars adress. En oktett är åtta bitar, och fyra bitar benämns som en nibble.

Alla hostar som idag existerar på Internet är adresserbara via just en IP-adress och den version av protokollet som är mest utbredd idag kallas för IPV4. IPV4 kan idag adressera totalt 4294967294 hostar enligt 2^32-2.
OK, detta kan verka vara väldigt många hostar, men betänk då att hela jorden delar på alla dessa adresser och används för en uppsjö olika ändamål och på en uppsjö olika utrustningar. Krasst sagt är det så idag att dessa adresser inte räcker till för en fortsatt utveckling i framtiden.
För att motverka detta har det tagits fram en ny standard, IPV6, med 128 bitars adress. Denna standard växer sig större för var dag som går, men det är ingen raketfart det går i. Det skulle vara omöjligt att byta standard för all utrustning över en natt nämligen.
Jag nämnde att adresserna inte räcker till och det stämmer, men det finns som tur är adresserier som endast får användas för internt bruk, exempelvis på LAN eller corporate networks, och kan därmed existera på flera olika ställen runt om på vår planet utan att komma i konflikt med varandra. Detta tack vare att det finns stränga regler på att dessa adresser aldrig får publiceras på det globala Internet. Om det trots allt skulle kopplas in någon utrustning med någon av dessa avdelade adresserier kommer inte dessa att behandlas av de stora coreroutrar/leverantörsroutrar som bygger upp det vi normalt sett kallar för backbone inom våra länder.
Dessa stora tunga coreroutrar snackar inom och utom landsgränserna genom speciella routingprotokoll för att få all trafik att flyta omkring på ett kontrollerat och så snabbt sätt som möjligt.

Exempel på routingprotokoll är RIP, BGP, EIGRP, IGRP m.fl.

För att göra hanteringen av IP-adresser så enkel som möjligt har dessa delats upp i olika s.k. standardklasser:
Klass A	1-126
Klass B	128-191
Klass C	192-223
Man utläser klassen genom att titta på den första oktetten av en IP adress. För IPV6 finns även klass D, E och F.

I en klass A-adress utgör första oktetten nätadressen och övriga tre oktetter är tillgängliga för adressering eller s.k. subnetting. Klass A-adresser används för extremt stora nätverk upp till 16581373 hosts.

I en klass B-adress utgör de två första oktetterna nätadressen och övriga två oktetter är tillgängliga för adressering eller s.k. subnetting. Klass B-adresser används för medelstora nätverk upp till 65534 hosts.

I en klass C-adress utgör de tre första oktetterna nätadressen och den sista oktetten är tillgänglig för adressering eller s.k. subnetting. Klass B-adresser används för mindre nätverk upp till 254 hosts.

För att kunna använda sina adresser måste man förstå subnetting. Subnetting tillåter att man skapar flera logiska nätverk som existerar inom en A-, B- eller C-klass.
Om man inte subnettar kommer man endast att kunna använda ett logiskt nätverk inom ramarna för sin A-, B- eller C-klass och detta blir ett extremt slöseri med adresser, speciellt i de högre klasserna.
Om man inte har tilldelats flera stora klasser (vilket är mycket ovanligt) måste man verkligen subnetta.

Varje kommunikationslänk inom ett nätverk måste vara ett unikt subnät, med alla hostar som skall kommunicera med andra, kopplade på just detta subnät.
En nätmask definieras för varje nätadress. Nätmasken legitimerar hur stor del av de fyra oktetterna som skall användas för nätidentifiering och resten för att identifiera och adressera hostarna eller noderna som vi också kan kalla dem.

Om man inte subnettar finns det stardardmasker för varje klass enligt:
Klass A	255.0.0.0
Klass B	255.255.0.0
Klass C	255.255.255.0
De privata eller reserverade IP-näten som vem som helst får använda för LAN och corporate networks är, i enlighet med RFC 1918:
Klass A	10.0.0.0/255.0.0.0
Klass B	172.16.0.0/255.240.0.0
Klass C	192.168.0.0/255.255.255.0
Låt oss titta på ett exempel: 171.68.3.10 och 171.68.2.10. Om nätmasken är 255.255.255.0, är de första 24 bitarna maskerade och routern kommer att jämföra de tre första oktetterna i båda adresser. Eftersom de maskerade bitarna inte är samma kommer routern utgå från att de ligger på två olika logiska nät.
Om nätmasken istället är 255.255.0.0, är de första 16 bitarna maskerade och routern kommer att jämföra de två första oktetterna i båda adresser. Eftersom de maskerade bitarna är lika kommer routern utgå ifrån att de ligger på samma logiska nät.

Hostar/noder och routrar använder masken för att identifiera och avgöra på vilken sida om en datalänk adresserna finns. Vi kan tänka oss följande exempel och tänk på gatorna som subnät:
Malmö är ett klass B-nätverk. Varje gata måste ha ett unikt namn för hur skulle posten kunna leverera ett brev om det fanns två gator med samma namn? Varje husnummer kan symboliseras som en unik host för just den aktuella gatan. Husen kan ju ha samma nummer, men ligga på olika gator. Storgatan 24 är inte detsamma som Södergatan 24.
Storgatan 24, Malmö
171.68.3.10Södergatan 24, Malmö
171.68.2.10
För att hänga med i nedan räkneexempel kan det vara bra om man sedan tidigare har kunskaper om binärräkning.

Först måste vi börja med att konvertera de decimala IP-adresserna till en binär quad (fyra binära oktetter) som det kallas.

Detta är ganska enkelt att göra och snart kommer vi finna att det är endast rak och enkel matematik kombinerat med logiskt tänkande som behövs.

Som ett räkneexempel här skall vi utgå ifrån att vi arbetar med följande adress: 195.100.20.0 med tillhörande nätmask: 255.255.255.0

Konverterat till binära oktetter blir det följande:
IP: 11000011.01100100.00010100.00000000
Mask: 11111111.11111111.11111111.00000000
Nätmasken legitimerar att det är en korrekt IP-adress vi använder.
Från nätmasken kan man utläsa att detta är en s.k. standardmask som inte definierar några subnät. Om denna nätmask inte hade innehållit en serie nollor som sista oktett, hade det påvisat ett antal subnät. I vårt exempel använder vi en s.k. Standard C-adress.

För att dela upp ovanstående IP-adress till flera subnät måste de mest signifikanta bitarna (MSB) i den sista oktetten som inte definierar nätadressen (adressens klass bestämmer hur många bitar som används för att definiera nätet).
Man multiplicerar värdena en bit kan representera med rätt antal bitar vi vill använda för att skapa våra subnät, ex. 2^2, 2^3, 2^4 osv.

En sak att komma ihåg är att två bitar automatiskt faller ifrån nämligen alla bitar satta till nollor och alla bitar satta till ettor. I en standard adress, oavsett klass, är alla bitar som är satta till nollor nätets egen adress och alla bitar satta till ettor nätets broadcast.

Ex. 2^2 ger oss följande kombinationer:
00
01
10
11
Detta ger oss fyra möjliga kombinationer varav två kombinationer inte är tillåtna på grund av strukturen hos IP-protokollet, vilket ger oss två användbara kombinationer:
01
10
Ex. 2^3 ger oss följande kombinationer:
000
001
010
011
100
101
110
111
Detta ger oss åtta möjliga kombinationer varav två kombinationer inte är tillåtna på grund av strukturen hos IP-protokollet, vilket ger oss sex användbara kombinationer.

2^4 ger oss sexton kombinationer varav två inte är tillåtna och vi hamnar då på
fjorton användbara kombinationer osv.

Om vi nu ska splitta upp detta standard C-nät i två lika stora delar måste vi använda de två mest signifikanta bitarna i den sista oktetten för att definiera våra subnät.
11000011.01100100.00010100.xx000000
Som redan visats får vi fyra kombinationer, men som också nämnts tidigare, kan vi direkt ta bort två av dem och behåller de två tillåtna kombinationerna.

Detta ger oss våra två nya subnätsadresser:
Nät1: 11000011.01100100.00010100.01000000 195.100.20.64
Nät2: 11000011.01100100.00010100.10000000 195.100.20.128
Dessa adresser kan inte användas för att adressera hosts eftersom det är våra två nya subnäts egna nätadresser.

För att slutföra skapandet av våra två nya subnätsadresser och för att göra dessa legitimt användbara måste vi räkna ut en ny nätmask. Nätmasken räknas fram genom att addera värdet av det antal bitar vi använde i den sista oktetten för att definiera våra subnät.
I detta fallet är det våra två mest signifikanta bitar som ger oss vår nya nätmask, 192, eftersom 128+64=192
Mask: 11111111.11111111.11111111.11000000 255.255.255.192
Den första adresserbara hosten i nät1 är 195.100.20.65 och den sista är 195.100.20.126
Detta ger oss 62 hostar på nät1

Den första adresserbara hosten i nät2 är 195.100.20.129 och den sista är 195.100.20.190
Detta ger oss 62 hostar på nät2

Den sista adressen i varje subnät, som i vårt fall är 195.100.20.127 och 195.100.20.191 är s.k. broadcast-adresser för respektive subnät. Broadcast-adressen för hela nätet kommer därför att bli 195.100.20.255.

Om vi vill fortsätta subnetta någon av ovanstående nät till flera mindre subnät använder vi samma teknik igen och utgår från den nya nätadressen.

Ganska enkelt, eller hur? Rak och enkel matematik som inte går att misstolkas lägger grunden för denna ganska fascinerade teknik som har använts sedan början på 1970-talet när reglerna för TCP/IP protokollet såg dagsljus för första gången.

//Johan Engdahl / [email protected]


Hemsidorna underhålls av Magnus Andersson