Вы находитесь на странице: 1из 9

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

En kort introduktion till TCP/IP-trafik


Lite frenklat fungerar TCP/IP-baserad trafik p fljande stt:
Nr tv program p tv olika datorer kommunicerar med varandra anvnder de sig av ngon form av applikationsprotokoll, som r kommandon som de skickar. Det kan liknas vid att tv personer som samtalar dr den ena frgar efter ngonting och den andra svarar. Person A: - Hur mycket r klockan? Person B: - 12:23 Det r ett kommando (en frga) och svar p kommandot (svar p frgan). Sjlva talandet motsvarar en del av ntverket. Talandet kan ske ver olika media, i luften om man befinner sig nra varandra, via telefonledning etc. P samma stt kan ntverkstrafik mellan tv datorer ske ver olika media, kopparkapel, fiber, radiovgor etc. Nr ngon vill komma komma t en tjnst beger han sig till den adress dr denna tjnst finns. Denna gatuadress motsvarar IP-adressen fr datorerna. I huset kan det finnas mnga olika tjnster, en restaurang, en frisr, en kiosk etc. Alla har de olika ingngar frn gatan, olika portar.

I ntverkssammanhang r tjnsterna istllet en e-postserver, en webbserver etc. Fr att det ska g att hitta servertjnsterna finns de alltid p samma portar i alla datorer. E-postservern finns bakom port 25, webbservern bakom port 80 etc. Nr kontakt ska etableras mellan en klientapplikation och en server finns klienten p en adress och servern p en annan adress. Klienten kliver ut genom en port p sin adress, dr porten har ett nummer mellan 1024 och 65535, och beger sig till rtt adress och rtt port fr att komma t servertjnsten. Om tv klienter frn samma adress vill komma t samma server gr det att skilja dem t genom att de kommer ut genom olika portar.

1 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

Lite mer detaljerat kan det hr beskrivas som:


Fr att upprtta kontakten mellan programmen p de tv datorerna anvnds ett protokoll, TCP eller UDP. TCP r ett frbindelseorienterat protokoll vilket fungerar p samma stt som ett telefonsamtal dr man uprttar en frbindelse nr den svarande parten lyfter p luren. Denna frbindelse hlles vid liv tills dess att ngon part lgger p luren, dvs bestmmer sig fr att det r dags att avsluta frbindelsen. UDP r frbindelselst vilket kan liknas vid att skicka vykort. Alla data skrivs p varsit numrerat vykort och skickas ivg till den andra parten. Den andra parten tar vykorten och sorterar dem i rtt ordning. Hr upprttas ingen frbindelse. Nsta niv, IP, kan liknas vid en gatuadress vilken talar om vart trafiken ska skickas. Niverna under skter om den mer hrdvarunra nivn, dvs sjlva ntverkshrdvaran.
------------------------------------------------! Applikationsprogram ! ! Applikationsprogram ! ------------------------------------------------! Applikationsprotokoll ! ! Applikationsprotokoll ! ------------------------------------------------! TCP ! UDP ! ICMP ! ! TCP ! UDP ! ICMP ! ------------------------------------------------! IP ! ! IP ! ------------------------------------------------! Ethernet ! Token Ring ! ! Ethernet ! Token Ring ! ------------------------------------------------! Fysiska ntverket ! ! Fysiska ntverket ! ------------------------------------------------!-------------------------------------------!

Fr att identifiera kontakten, frbindelsen, mellan tv applikationer anvnds dels ngonting man kallar fr portar och dels datorernas adress, IP-adress (se den frenklade beskrivningen ovan). Det finns ett antal standardiserade portar fr olika tjnster, t.ex. port 80 fr WWW-servrar. Portar med nummer under 1024 kan endast ppnas av anvndaren root. Vanliga anvndare kan endast anvnda portar frn och med 1024 och uppt. Drfr mste servertjnster som WWW-servern kras som anvndaren root. Nr du tittar p denna WWW-sida binder din WWW-klient, t.ex. Netscape, en lokal port ver 1023 (hg port) p din dator och upprttar en frbindelse till port 80 p servern (den hr datorn). Om din dator har IP-adress 1.2.3.4 och servern IP-adress 10.11.12.13 och din dator binder en hg lokal port p din dator och upprttar en TCP-frbindelse till port 80 (WWW-servern) p serverdatorn ser det ut enligt bilden nedan.

Ntmask

2 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

En IP-adress skrivs som fyra tal dr varje tal kan vara mellan 0 och 255. Binrt innebr det att 8 bitar anvnds fr varje tal, totalt 32 bitar fr hela IP-adressen.
8 bitar 8 bitar 8 bitar 8 bitar --------------------------------------------! xxxxxxxx ! xxxxxxxx ! xxxxxxxx ! xxxxxxxx ! ! ! ! ! ! --------------------------------------------Hela adressen r 32 bitar lng

Ett exempel fr IP-adressen 192.168.17.42 (som binrt blir 11000000 . 10101000 . 00010001 . 00101010 )
8 bitar 8 bitar 8 bitar 8 bitar --------------------------------------------! 192 ! 168 ! 17 ! 42 ! ! ! ! ! ! ! 11000000 ! 10101000 ! 00010001 ! 00101010 ! --------------------------------------------Hela adressen r 32 bitar lng

En ntmask talar om hur stor del av IP-adressen som utgr ntadress dr resten av IP-adressen anvnds fr de enskilda datorerna p det aktuella ntet. En ntmask kan skrivas antingen som ett tal som talar om hur mnga bitar som utgr ntadressen eller p formen 255.255.255.0 dr i det hr fallet de frsta tre talen i IP-adressen utgr ntadressen och den sista anvnds fr datoradresser. 255.255.255.0 och 24-bitars mask r tv olika skrivstt fr att beskriva samma ntmask.
255 255 255 0 --------------------------------------------! 11111111 ! 11111111 ! 11111111 ! xxxxxxxx ! ! ! ! ! ! --------------------------------------------24-ettstllda bitar

Fr IP-adressen 172.22.1.x med en 24-bitars ntmask r 172.22.1 ntets adress dr de sista 8 bitarna kan anvndas fr datorer och ntverksutrustning p ntet. En ntmask kan vara mellan 0 och 32 bitar stor. P ett nt med t.ex. IP-adressen 172.22.17.0 och en 25-bitars ntmask (255.255.255.128) kan man anvnda 0 till 127 fr utrustning*.
255 255 255 128 --------------------------------------------! 11111111 ! 11111111 ! 11111111 ! 1xxxxxxx ! ! ! ! ! ! --------------------------------------------25-ettstllda bitar

Fr IP-adressen 172.22.1.236 med en 30-bitars ntmask terstr tv bitar fr datorer. Tv bitar ger totalt 4 kombinationer (00, 01, 10, 11). 4 olika adresser med start p 236 ger 236 - 239. 172.22.1.236 med ntmasken /30 eller skrivet som 255.255.255.252 ger drmed ntet 172.22.1.236 och intervallet 172.22.1.236 - 172.22.1.239. 172.22.1.236 utgr ntadressen och 172.22.1.239 broadcastadressen. I samband med brandvggsreglerna kan du anvnda en IP-adress i kombination med en mask, som fungerar p ungefr samma stt som en ntmask, fr att p s stt ange ett intervall av IP-adresser. 10.10.0.0/16 ger intervallet 10.10.0.0 till 10.10.255.255 192.165.122.0/24 ger intervallet 192.165.122.0 till 192.165.122.255 172.22.42.0/25 ger intervallet 172.22.42.0 till 172.22.42.127. 172.22.42.128/25 ger intervallet 172.22.42.128 till 172.22.42.255. 172.22.17.0/25 ger intervallet 172.22.17.0 - 172.22.17.127 172.22.17.128/25 ger intervallet 172.22.17.128 - 172.22.17.255 172.22.42.42/32 ger adressen 172.22.42.42. (*) inte riktigt sant fr den frsta adressen anvnds alltid fr att adressera sjlva ntverket och den sista adressen anvnds fr broadcast, dr broadcast anvnds fr att skicka trafik till alla datorer istllet fr en p det aktuella ntverket. P ett nt med en 24-bitars ntmask blir .0 ntadress och .255 broadcastadress. I exemplet ovan med 172.22.17.0/25 blir 172.22.17.0 ntadress och 172.22.17.127 broadcastadress.

Paket och routing

3 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

Nr data skickas mellan tv datorer ver ntverket kan inte data skickas i en stor klump utan delas frst upp i mindre delar, vilka kallas paket, dr delarna skickas i tur och ordning ett efter ett ver ntverket. Det r p samma stt som om man t.ex. vill transportera en mycket stor mngd datorer frn en plats till en annan. Fr att kunna gra det behvs det flera lngtradare som kr en efter en med varsin del av lasten. Dessa lngtradare kan sedan ute p vgarna varvas med andra lngtradare som ker med annan last och som ker mellan tv andra platser (kan ven vara samma platser men med annan last). Vgarna frgrenar sig och i varje vgkorsning vljer fordonen vilken vg de ska fortstta p.

P samma stt fungerar det med ntverk. Paketen skickas mellan tv punkter ver ett ntverk och i korsningarna i ntverket avgrs vart paketet ska skickas vidare. De som skter om vgvalet i ntverkskorsningarna kallas routrar. Nedan visas ett lite strre ntverk dr 10 st ntverk r ihopkopplade med 4 ntverkskorsningar/routrar. Notera att mellan routrarna finns ocks ntverk ver vilka paketen frdas. I bilden kommunicerar datorn 1.2.3.4, som sitter p NT 1, med datorn 7.8.9.10, p NT 7. Datorn 40.50.60.70, som sitter p NT 40, kommunicerar med datorn 120.110.100.42, p NT 120. Routrarna r i bilden markerade med gra ttkanter.

Routrarna dirigerar trafiken s att paket skickas vidare i rtt riktning.

Ett exempel p routing (vgval)


I alla datorer finns en tabell som kallas routingtabellen. Denna tabell talar om t vilket hll datorn ska skicka ntverkstrafiken fr att den ska komma fram. Om ngon p datorn vill kunna n en annan dator p det lokala ntverket ska denna trafik skickas ut direkt ut p kabeln till vilken ntverkskortet r ansluten. Fr att n ett annat ntverk, t.ex. en annan del av Internet behver trafiken oftast skickas via en router. Denna router fr sedan ansvara fr att paket skickas ivg i rtt riktning (troligen via en annan router som skickar vidare till nsta router som skickar vidare till nsta router som...). Dator A med IP-adressen 172.22.17.42 r ansluten till ntet 172.22.0.0/16 (d.v.s. 172.22.0.0 - 172.22.255.255).

4 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

Fr att kunna n andra datorer p det egna ntet behver dator A en rad i sin routingtabell som talar om att det lokala ntverket finns nbart direkt p kabeln till vilken ntverkskortet (eth0) r ansluten. Denna rad bestr av ntets IP-adress 172.22.0.0 och ntmasken 255.255.0.0 och paketen ska skickas ut via eth0 och de ska inte g via ngon router fr att komma fram. Exempel p hur en sdan rad kan se ut i Linux:
Destination 172.22.0.0 Gateway 0.0.0.0 Genmask 255.255.0.0 Flags Metric Ref U 0 0 Use Iface 0 eth0

Det lokala ntverket r anslutet till Internet via router 1 som har ftt IP-adressen 172.22.1.1 p det lokala ntverket och IP-adressen 1.2.3.4 ut mot Internet. Fr att n ut p Internet kan dator A ha en default gateway som sger att allt som den inte vet vart den ska skicka ska skickas till denna router (default gateway). Eftersom Internet kan ns via 172.22.1.1 ska denna vara default gateway fr dator A. Raden i routingtabellen kan se ut s hr i Linux:
Destination 0.0.0.0 Gateway 172.22.1.1 Genmask 0.0.0.0 Flags Metric Ref UG 0 0 Use Iface 0 eth0

Denna rad sger att ntet 0.0.0.0 med mask 0.0.0.0 (d.v.s. allt vrigt) ska skickas via 172.22.1.1 dr 172.22.1.1 finns att n via det lokala ntet som eth0 r ansluten till (drav Iface eth0). Om ett till nt skapas, 10.10.2.0/24 (d.v.s. 10.10.2.0 - 10.10.2.255) och de tv nten 10.10.2.0/24 och 17.22.0.0/16 kopplas ihop med en router, router 2, behver dator A knna till hur den kan n datorer p ntet 10.10.2.0/24. Router 2 ges IP-adressen 10.10.2.253 p ena sidan och 172.22.255.254 p andra sidan. Dator A kan nu n 10.10.2.0/24 via 172.22.255.254. Fr detta behvs en extra rad i dator A:s routingtabell som sger att ntet 10.10.2.0/24 (10.10.2.0 med ntmask 255.255.255.0) r nbart via routern som har IP-adress 172.22.255.254. En sdan rad i routingtabell i Linux kan se ut p fljande stt:
Destination 10.10.2.0 Gateway 172.22.255.254 Genmask 255.255.255.0 Flags Metric Ref UG 0 0 Use Iface 0 eth0

Datorerna p ntet 10.10.2.0/24 behver en rad fr sitt lokala ntverk och en default gateway fr allt vrigt (172.22.0.0/16 och Internet). Deras router mot vriga ntverk r 10.10.2.253. Dator B ska sledes ha 10.10.2.253 som default gateway.

5 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

Fr att paketfrmedlingen ska fungera genom routrar mste olika IP-adressintervall finnas p de olika fysiska ntverken som ansluts till routern. Det fungerar inte (inte bra i alla fall) att stta samma IP-nt p tv olika fysiska ntverk. Undvik drmed att koppla som i bilden nedan.

Dremot gr det utmrkt att ha olika IP-nt p samma fysiska ntverk. T.ex. kan man ha 172.22.0.0/16 p samma fysiska ntverk som 192.168.7.0/24. En brandvgg fungerar oftast som en router med det extra att den begrnsar vilken typ av trafik som ska f passera mellan de olika ntverken. En brandvgg kan ven ha annan extra funktionalitet som t.ex. std fr Virtuella Privata Ntverk (VPN), antivirusskydd etc.

TCP-frbindelse
Fr TCP upprttas en frbindelse mellan de tv parterna. Det gr till p fljande vis. Klienten skickar en uppkopplingsbegran till servern, ett SYN-paket. Servern skickar en uppkopplingsbegran till klienten, ett SYN-paket, och samtidigt en bekrftan p klientens uppkopplingsbegran, ack (skickas i samma datapaket som SYN). I klientens frsta datapaket till servern skickar klienten en bekrftelse p serverns uppkopplingsbegran, ack. Nu r datafrbindelsen frn klienten till servern och datafrbindelsen frn servern till klienten upprttade. Klienten skickar data till servern i "sin" datakanal och bekrftar samtidigt att den har tagit emot data frn servern, ack. Servern skickar data till klienten i "sin" datakanal och bekrftar samtidigt att den har tagit emot data frn klienten, ack. Om den ena parten inte har ngra data att skicka skickar den tomma datapaket med endast bekrftelser, ack, att den tagit emot den andra partens data. Nr parterna r frdiga skickar den ena av dem ett FIN-paket fr att tala om att nu bryter jag frbindelsen till dig. Den andra parten svarar med en bekrftelse, ack, att den tagit emot nedkopplingsbegran. Nu r frbindelsen i ena riktningen bruten. P samma stt gr sedan den andra parten fr att bryta ven " sin" frbindelse.

6 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

Genom att vi kan se varifrn det frsta SYN-paketet kom frn vet vi vem som startade frbindelsen (klienten ovan). Brandvggsskyddet i Linux (de gamla systemen och det nuvarande) har std fr att skilja p det frsta SYN-paketet (utan ack) och de vriga paketen.

Reset
I en TCP-frbindelse kan en ena parten skicka en RESET fr att bryta hela den dubbelriktade kommunikationen. I bilden nedan bryter servern all kontakt.

Tillstndsdiagram fr TCP
Tillstndsdiagrammet fr TCP:s alla tillstnd ser ut s hr (se RFC 793):
Transmission Control Protocol Functional Specification +---------+ ---------\ active OPEN | CLOSED | \ ----------+---------+<---------\ \ create TCB | ^ \ \ snd SYN passive OPEN | | CLOSE \ \ ------------ | | ---------\ \ create TCB | | delete TCB \ \ V | \ \ +---------+ CLOSE | \

7 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

| LISTEN | ---------- | | +---------+ delete TCB | | rcv SYN | | SEND | | ----------| | ------| V +---------+ snd SYN,ACK / \ snd SYN +---------+ | |<---------------------------------->| | | SYN | rcv SYN | SYN | | RCVD |<-----------------------------------------------| SENT | | | snd ACK | | | |------------------------------------| | +---------+ rcv ACK of SYN \ / rcv SYN,ACK +---------+ | -------------| | ----------| x | | snd ACK | V V | CLOSE +---------+ | ------| ESTAB | | snd FIN +---------+ | CLOSE | | rcv FIN V ------| | ------+---------+ snd FIN / \ snd ACK +---------+ | FIN |<---------------------------------->| CLOSE | | WAIT-1 |-----------------| WAIT | +---------+ rcv FIN \ +---------+ | rcv ACK of FIN ------| CLOSE | | -------------snd ACK | ------- | V x V snd FIN V +---------+ +---------+ +---------+ |FINWAIT-2| | CLOSING | | LAST-ACK| +---------+ +---------+ +---------+ | rcv ACK of FIN | rcv ACK of FIN | | rcv FIN -------------- | Timeout=2MSL -------------- | | ------x V -----------x V \ snd ACK +---------+delete TCB +---------+ ------------------------>|TIME WAIT|------------------>| CLOSED | +---------+ +---------+ TCP Connection State Diagram Figure 6.

En snyggare version av tillstndsdiagrammet finns i Stevens TCP/IP Illustrated Volume 1 och Volume 2. Detta diagram finns ven p bland annat: http://gmckinney.info/resources/TCPIP_State_Transition_Diagram.pdf.

UDP
Med UDP upprttas ingen frbindelse. Parterna skickar data till den andra och hoppas p att det kommer fram. Det r upp till applikationerna som anvnder UDP att skta om eventuell kontroll av att data kommit fram. UDP anvnds frmst till fr att frmedla sm datamngder och fr att skicka datastrmmar med till exempel ljud- eller bildinformation.

ICMP
ICMP anvnder sig inte av portar. ICMP r p samma stt som UDP frbindelsels. ICMP anvnds frmst fr att skicka felmeddelanden, meddelanden med en not om att ntverkstrafiken ska skickas en annan vg i fortsttningen och fr att se om en dator r uppe och lever. Programmet ping anvnder ICMP. Vid anvndandet av traceroute anvnds ven dr ICMP. Fr beskrivningar av ping och traceroute se avsnittet som beskriver de vanligaste ntverkstjnsterna. Istllet fr portar har

8 av 9

2010-10-26 12:20

Introduktion till TCP/IP

http://www.lysator.liu.se/~kjell-e/tekla/linux/security/tcpip.html

ICMP en typ och kod. Exempel: typ 8 kod 0, echo, och typ 0 kod 0, echo reply.

Copyright 2010 Kjell Enblom. This document is covered by the GNU Free Documentation License, Version 1.1

9 av 9

2010-10-26 12:20

Вам также может понравиться