DIG IN TO Nätverksteknologier
CCNA 1 Transportskiktet
Agenda Transportskiktets syfte Kommunikationskontroller Tillförlitligt och otillförlitlig transport protokoll TCP och UDP protokoll TCP Header TCP Initiering och stängning TCP flödeskontroll Portadressering Datasegmentering UDP server-klient process
CCNA 1 Inledning
Transportskiktets syfte tillhandahålla datasegmentering och styra hur segmenten sätts ihop på destinationen. följa upp varje enskild kommunikation genom att behålla aktiva alla kommunikationsströmmar. beskriva tjänster för datainkapsling och dess associationer. specificera rätt applikation vid destinationen. Leverera dataströmmar till rätt program via rätt portnummer. 1
Kommunikationskontroller Transportskiktet etablerar först en session mellan kommunicerande applikationer innan data överförs. Kommunikationskontroller möjliggör felfria leveranser. Det gäller att ha ordning i leveranser. Flödeskontrollen reglerar sändarens och mottagarens överföringsresurser: bandbredden buffertminnet. 2
Felhantering Flera applikationer kan kommunicera med varandra samtidigt (multiplexering) och enskilda dataströmmar kan identifieras. Segmentering möjliggör multiplexering. Fel kan uppstå och det måste identifieras för att reglera dataflöde återsända felaktiga leveranser. 3
Datasegmentering Program kan generera stora datamängder som inte kan direkt transporteras. Begränsningar i nätverkshanterare och eventuella fel skulle komplicera överföringen samt öka rejält leveranstiden. Data segmenteras så att de kan multiplexeras. Styrinformation i headern hjälper till att dataströmmar sätts ihop i rätt ordning. UDP och TCP tillhandahåller hantering av styrinformation 17
CCNA 1 Transportskiktets protokoll
Tillförlitliga och otillförlitliga transportprotokoll Tillförlitliga: Följer upp varje dataström Kvitterar felfria leveranser Återsänder icke kvitterade leveranser. Otillförlitliga: Är snabba Mindre styrinformation Kvitterar inte leveranser Återsänder inte Levererar utan ordning Programmerare väljer protokoll associerat till applikationen. 4
TCP header TCP är ett förbindelseorienterat protokoll därmed kan det garantera felfria leveranser. Kontrollmekanismer specificeras i varje segments header. Avsändaren och destinationen identifieras via portnummer. Segment sätts ihop med hjälp av sekvensnummer. Leveranser i byte kvitteras. Headerns längd specificeras och dataflödet regleras. Felkontroll Alternativ 0101 ACK RST SYN FIN 6
UDP header UDP är ett förbindelselöst protokoll som är snabbare än TCP men det verifierar inte dataleveranser. Om tillförlitlighet krävs när UDP används som transportprotokoll, måste det hanteras av applikationen. En av de viktigaste kraven för att leverera live video och röst över nätverket är att data fortsätter att flöda snabbt. Live video- och röstprogram kan tolerera viss dataförlust med minimal eller ingen märkbar effekt och passar utmärkt för UDP. UDP segment kallas datagram och dess header är inte större än 8 byte. 6
Portadressering TCP och UDP baserade tjänster identifierar kommunicerande applikationer med hjälp av deras portnummer. I tillhörande headern på varje segment eller datagram finns avsändarens och destinationens portnummer. Portnummer tilldelas beroende på meddelandets typ (request/replay). IP adress kombinerat med portnummer kallas "socket" 192.168.1.20:80 13
Portadressering Portnummer genereras med 16 bitar (2 ^16 =65536). System Ports: 0 1023. wellknown ports används av välkända kommunikationsprotokoll. User Ports: 1024 49151 (Registered Ports) Dynamic/Private Ports: 49152-65535 Servrar använder systemportnummer (0 1023). Klienter använder slumpartade portnummer över 1 023. Systemportnummer tilldelas av IETF Användarportnummer och Privata portnummer tilldelas av IANA. 14
Portadressering 172.39.1.55 80 NAT 1150 2250 172.39.1.65 110 181.171.161.51 192.168.10.22 Till Från begär 172.39.1.55:80 181.171.161.51:1150 HTTP 172.39.1.65:110 181.171.161.51:2250 POP3 Till Från Svar 181.171.161.51:1150 172.39.1.55:80 HTTP 181.171.161.51:2250 172.39.1.65:110 POP3 15
Netstat Netstat returnerar en tabell med de aktiva portar Adressen 0.0.0.0 innebär att datorn tar emot anrop från vilken annan adress som helst. Adress 127.0.0.1 innebär att programmet bara accepterar anrop från den egna maskinen. Port scanning: nslookup www.astar.se Online port scanning 16
CCNA 1 TCP och UDP
Tillförlitlig kommunikation Tillförlitligheten i TCP kommunikation utförs av förbindelseorienterade sessioner. En session etableras först där sändaren och destinationen sammanbinds innan någon dataöverföring sker. Efter en session har etablerats, sänder destinationen bekräftelser till källan för de segment som den tar emot. 7
TCP sessions initiering TCP sessioner startas av klienter i en trestegsprocess som kallas handskakning: 1. Klienten skickar ett segment som identifieras med en sekvensnummer 2. Servern svarar med en ACK signal (samma SN + 1), samt synkroniseringstiden 3. Klienten svarar med en ACK signal Klient server 3 1 Send SYN SEQ=100 CTL=SYN SYN received Established (SEQ=101 ACK=301 CTL=ACK) SYN received Send SYN, ACK SEQ=300 ACK=101 CTL=SYN, ACK ACK received 2 8
TCP sessions terminering För att avsluta uppkopplingen används en två vägs handskakning. 1. När klienten inte har mer data att sända skickar till server ett segment med flaggan FIN satt till ett. 2. Servern svarar med ett ACK signal 3. Server skickar ett segment med flaggan FIN 4. Klienten svarar med en ACK signal. 4 1 Send FIN ACK received FIN received Send ACK FIN received Send ACK Send FIN ACK received 3 2 9
Flödeskontroll - Windowing Mottagare använder kvittensnumret för att verifiera leveranser av bytes och för att indikera att den är redo att ta emot nästa bitgrupp i sessionen Avsändaren förväntas sända ett segment identifierat med ett sekvensnummer som är lika med kvittensnumret. Sekvensnummer och kvittensnummer utbyts i båda riktningarna. För många kvittenser, istället kan flera segment sändas och bekräftas med en enda TCP-meddelande. 10
Flödeskontroll window size Flödeskontrollen hjälper att justera dataöverföring under en session så att ingen återsändning behövs göra det. Detta kallas fönsterstorlek (Window Size). Fönsterstorleken specificeras i ett fält i TCP-huvudet. När avsändaren verifierar att mottagaren klarar av att ta emot den överförda datamängden, fortsätter dataöverföringen. Den ursprungliga fönsterstorleken bestäms i sessionens handskakning. 11
Flödeskontroll dynamisk justering Fönsterstorleken kan dimensioneras dynamiskt genom att avsändaren kräver fler kvittenser. Det gör att dataöverföringens takt sänks eftersom avsändaren måste vänta för en kvittens innan en ny överföring skickas ut. Mottagaren kan också skicka en kvittens som indikerar mindre buffertkapacitet. Avsändaren sänker då fönsterstorleken enligt mottagarens kvittens. När det inte verifieras någon dataförlust kan avsändaren öka fönsterstorlek successivt tills det uppstår dataförlust. 12
TCP datasegmentering För att det ursprungliga meddelandet ska kunna förstås av mottagaren måste alla segment sättas ihop i rätt ordning. Segmenten anländer till destinationen i olika ordning. Detta kan göras med segmentets sekvensnummer. Den mottagande TCP process placerar mottagna kopior i sitt mottagningsbuffert. Där placeras segmenten i rätt ordning innan de skickas till applikationsskiktet. 18
TCP sekvensnummer Under en session ställs in en initial sekvensnummer (ISN). ISN representerar utgångsvärde för varje överförd byte. Sekvensnumret ökar under dataöverföringen motsvarande med det antal byte som har levererats. Denna sekvens av databyten gör att varje segment kan identifieras och monteras i rätt ordning vid destinationen. Saknade segment kan identifieras och återsändas. 19
TCP återsändning Mottagaren kvitterar endast mottagna leveranser av bytes. En kopia av överförda segment läggs i avsändarens buffert. Varje kopia stämplas med en timer. Segmenten tas bort från bufferten när kvittenser ankommer, annars återsänds de. Diskontinuerliga kvittensen kan accepteras om funktionen "Selective Acknowledgements" stödjas, sänds åter endast de borttappade segment. 20
UDP datagramhantering Eftersom UDP är förbindelselöst protokoll föregås inte några uppkopplingar innan någon kommunikation sker. Program som använder UDP skickar små mängder data som kan passa i ett segment. Dock kommer vissa program att skicka större mängder data som behöver segmenteras, dessa segment kallas datagram. När flera datagram skickas till en destination, kan de ta olika vägar och komma fram i fel ordning. UDP slår samman alla mottagna datagram utan ordning och vidarebefordrar den till högre skikt i kommunikationsmodellen. 21
UDP datagramhantering UDP är ett enkelt transportprotokoll som saknar säkerhetsmekanismer för återsändning, flödeskontroll. Säkerhetsmekanismer kan tillhandahållas av andra protokoll. Även om den totala mängden av UDP- trafik är ofta relativt låg finns flera populära nätverkstjänster och applikationer som använder UDP exempelvis: Domain Name System (DNS) Simple Network Management Protocol (SNMP) Dynamic Host Configuration Protocol (DHCP) Routing Information Protocol (RIP) Trivial File Transfer Protocol ( TFTP ) Online-spel 22
UDP serverprocess Liksom TCP-baserade applikationer tilldelas UDP-baserade serverprogram välkända eller Registrerade portnummer. När dessa program eller processer körs kommer de att acceptera data som matchar med den tilldelade portnummer. UDP tar emot ett datagram avsedda för någon av dessa program/tjänst och vidarebefordrar den till rätt applikation. 23
UDP klientprocess UDP klientprocessen väljer slumpmässigt ett portnummer från de dynamiska portnummer. UDP serverprocessen använder en av de välkända eller registrerade portnummer. Randomiserade portnummer ökar säkerheten. Dessa tilldelade portnummer används för alla datagram i transaktionen. 24
Sammanfattning Transportsskiktets primära syfte är datasegmentering och datarekonstruktion. Eftersom data ankommer till destinationen i olika tider behövs ett sekvensnummer för rekonstruktionen. UDP är ett enkelt förbindelselös protokoll som är snabbare än TCP men saknar säkerhetsmekanismer. TCP använder kvittensnumret för att verifiera leveranser av bytes och för att välkomma nästa bitgrupp i sessionen (expectational acknowledgement). Flödeskontrollen hjälper att justera dataöverföring under en session så att ingen återsändning behövs. Fönsterstorleken kan dimensioneras genom att avsändaren kräver fler kvittenser. 25