Presentation laddar. Vänta.

Presentation laddar. Vänta.

NÄTVERKSPROTOKOLL Föreläsning 7 - 22.9.2008 INNEHÅLL - Transportskiktet - TCP - UDP.

Liknande presentationer


En presentation över ämnet: "NÄTVERKSPROTOKOLL Föreläsning 7 - 22.9.2008 INNEHÅLL - Transportskiktet - TCP - UDP."— Presentationens avskrift:

1 NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Transportskiktet - TCP - UDP

2 Transportskiktet  Här sköts all transport av allt data  Har som ansvar att se till att:  data kommer från sändare till mottagare  Det finns en tillförlitlig förbindelse  Paketen kommer fram i rätt ordning och att ingenting förloras  Tillförlitlighet på transportskiktet inkluderar bl.a. omsändningar och checksummor  Felkontroller och checksummor osv. Har redan förekommit på lägre nivåer, varför igen?

3 Transportskiktet  Kan uppstå problem vid routingen  Köer kan bli fulla  Paket kan kastas bort  Osv.

4 Transportskiktet  Transportskiktet erbjuder tjänster direkt åt tillämpningar  Måste därför finnas ett sätt för transportskiktet att särskilja mellan tillämpningarna  Ett vanligt sätt att göra detta är med datakanaler (sockets) och portar  En socket är ett gränssnitt mellan en tillämpning och transportskiktet  En port är en adress inom ett datorsystem som anges i kommunikationen mellan sändare och mottagare

5 Transportskiktet  En tillämpning som vill använda en viss port binder en socket till denna port  Genom bindningen vet transportskiktet att alla paket adresserade till en viss port skall skickas via socketen till en viss tillämpning på andra sidan  Exempel: alla paket adresserade till port 80 skickas till webservern

6 Transportskiktet – Förbindelselös komm.  Tjänster på transportskiktet kan vara  Förbindelselösa  förbindelseorienterade  I förbindelselös kommunikation innebär transporttjänsten i princip endast hantering av portar och sockets  Ett exempel på ett förbindelselöst transportprotokoll är UDP (User Datagram Protocol)‏

7 Transportskiktet – Förbindelseorienterad komm.  Vid förbindelseorienterad kommunikation måste sändaren och mottagaren på något sätt komma överens om att upprätta en förbindelse bl.a.:  den passiva sidan måste på någåt sätt kunna tala om att den är beredd att ta emot förbindelser (LISTEN)‏  den aktiva sidan måste tala om att den vill koppla upp en förbindelse (CONNECT)‏  den passiva sidan måste accetpera och vänta på en förbindelse (ACCEPT)‏  när en förbindelse avslutas måste den kopplas ner (DISCONNECT)‏  Ett exempel på ett förbindelseorienterat transportprotokoll är TCP(Tansport Control Protocol)‏

8 TCP (Transmission Control Protocol)‏  Ett förbindelseorienterat dataöverföringsprotokoll som används för huvuddelen av all kommunikation över Internet  Tillhandahåller en pålitlig dataström mellan två noder och används t.ex. För:  HTTP  FTP  E-post (SMTP, IMAP POP3)‏  Är mindre lämpligt för tillämpningar där dess felkorrigerande egenskaper kan orsaka oönskade fördröjningar  Datorspel är ett exempel på en sådan tillämpning och använder därför ofta i stället UDP protokollet för överföring

9 TCP (Transmission Control Protocol)‏  TCP erbjuder kommunikationsservice mellan applikationsprogram och Internet Protocol (IP)‏  Används egentligen tillsammans med IP för att sända data över Internet  IP skickar data i form av paket  Varje paket innehåller en liten mängd data (ofta 1500 bytes) samt avsändarens och mottagarens adresser  Ger inga garantier för att paket som skickas över nätverket kommer fram  Paket som skickas behöver inte nödvändigtvis komma fram i samma ordning som de skickades

10 TCP (Transmission Control Protocol)‏  När TCP skickar data delas det upp i lämpliga stycken (brukar kallas segment) där varje segment skickas i ett eget IP-paket  När IP paketet komer fram till mottagaren skickar denna ett ACK- segment tillbka till sändare för att indikera att datat kommit fram  Om sändaren inte får tillbaka ett ACK-segement inom en viss tid antas det att datapaketet försvunnit i nätet och datapaketet skickas pånytt  På detta sätt uppnås pålitlighet hos TCP

11 TCP (Transmission Control Protocol)‏  För att se till att IP-paket kommer tas emot på mottagarsidan i rätt ordning anvnder TCP sekvensnummer  Varje paket som skickas tilldelas ett 32-bitars nummer vilket används av mottagaren för att sortera de mottagna datapaketen  TCP innehåller också mekanismer för att begränsa hur fort data skickas för att inte överbelasta nätet  Varje gång nätverket tappar ett datapaket antas detta bero på att nätverket ligger på gränsen för att överbelastas  TCP drar då ned på sändningstakten till hälften av den nuvarande  När inga datapaket går förlorade ökar protokollet takten igen

12 TCP - Anslutning  En TCP-session innehåller tre faser  Anslutning  Dataöverföring  Nedkoppling  Det krävs tre steg för att ansluta två datorer (brukar även kallas för trestegshandskakning)‏  Som första steg, skickar den anslutande datorn (klienten) ett så kallat SYN segment till den dator som förbindelsen skall sättas upp mot (servern)‏  I SYN segmentet är SYN-flaggen aktiverad

13 TCP - Anslutning  SYN segmentet kan innehålla ett antal optioner som beskriver vilka specialfunktioner som klienten stöder, samt den maximala paketstorleken som klienten är beredd att ta emot.  SYN-segmentet innehåller dessutom sekvensnumret för den första databyte som klienten skickar över förbindelsen  Om servern är villig att ta emot förbindelsen svarar den med ett SYNACK-segment.  I ett SYNACK-segment är både SYN- och ACK-flaggorna aktiverade

14 TCP - Anslutning  SYNACK-segmentet innehåller sekvensnummern för den första databyte som servern skickar, samt sekvensnumern som klienten skickade + 1  Detta synkroniserar sekvensnummern så att båda parter vet vilken sekvensnummer som motparten använder sej av  SYNACK-segmenten kan också innehålla svar på de optioner som klienten skickade, om servern stöder dem  Om servern inte accepterar den inkommande förbindelsen svarar den i stället med ett RST-segment vilket avbryter förbindelseförsöket med klienten  När SYNACK-segmentet når klienten skickar klienten i sin tur ett ACK- segment och förbindelsen övergår till dataöverföringsfasen

15 TCP - Dataöverföring  I denna fas finns det inte längre någon skillnad mellan rollerna hos klient och server, denna skillnad finns endast i anslutningsfasen  All data som skickas delas upp i segment och skcikas i var sitt IP- paket  När mottagaren tar emot ett datasegment svarar den med ett ACK-segment till avsändaren för att indikera att segmentet har kommit fram  Om sändaren inte får tillbaka ett ACK-segment inom en viss tid så har paketet troligen tappats bort av nätverket och sändaren skickar om segmentet.

16 TCP – Nerkoppling  En TCP-förbindelse kan kopplas ned av båda eller endast den ena av ändpuntkerna av förbindelsen  När en av endpunkterna (klienten eller servern) inte vill avsluta en förbindelse skickar den ett FIN-segment  FIN-segmentet bekräftas av mottageren med ett ACK-segment  Vanligen stänger då även mottagaren sin del av föbindelsen genom att skicka ett FIN-segment men det finns inget krav på detta  Ett vanligt programmeringsfel är att man glömmer att stänga avena endan av förbindelsen!!

17 TCP segment  Ett TCP segment består, liksom ett IP-paket, av  Huvud (header)‏  Data

18 TCP segment  Source port (16 bitar) – Definierar den port via vilken TCP segmentet avsänds  Destination port (16 bitar) – Definierar den port via vilken TCP segmentet tas emot på mottagarsidan  Sequence number (32 bitar) – Anger ordningen på segmenten  Om SYN flaggan är aktiv är sekvensnummern den begynnande sekvensnummern och sekvensnummern för första databyte är denna sekvensnummer + 1  Om SYN flaggan ej är aktiv så är detta sekvensnummern för den första databyten  Acknowledgment number (32 bitar) – Om ACK-flaggan är aktiv är värdet i detta fält sekvensnummern för nästa byte som mottagaren förväntar sej få

19 TCP segment  Data offset (4 bitar) – Definierar storleken på TCP huvdet angett i words  Data offset (4 bitar) – För framtida ändamål, bör vara 0  Flaggor (8 bitar):  CWR (1 bit) – Congestion Window Reduced flaggan aktiveras av en dator för att indikera att den tagit emot ett TCP segment med ECE flaggan aktiverad  ECE (1 bit) – Indikerar att en nod är ECN kapabel under trestegshandskakningen  URG (1 bit) – Är satt till 1 om URG-pekaren är i bruk. En URG-pekare (Urgent Pointer) ger offset för sekvensnumret var brådskande data kan hittas  ACK (1 bit) – Är 1 om segmentet i fråga är ett ACK-segment. ACK- segment används för att kvittera uppkoppling och emottagande av datapaket  PSH (1 bit) – Push funktion

20 TCP segment  Flaggor (...forts)‏  RST (1 bit) – Reset. Överföringen kommer att återkopplas, vanligen p.g.a. något problem  SYN (1 bit) – Används vid uppkoppling tillsammans med ACK-flaggan för att synkronisera sekvensnummren  FIN (1 bit) – Meddelar att det ej finns mera data att sända → sessionen skall kopplas ner

21 UDP (User Datagram Protocol)‏  Används för att skicka datagram mellan två applikationer på två nätverksdatorer  Är ett förbindelselöst protokoll  Garanterar inte pålitlighet som TCP  Skapar inte kvitterad (säker) överföring  Ger ingen garanti för att paket kommer fram  UDP prioriterar i stället snabbhet

22 UDP (User Datagram Protocol)‏  Vanliga nätverksapplikationer som använder UDP protokollet är:  DNS  Streming media applikationer såsom IPTV och VoIP  Online spel  UDP använder sig av portar för att möjliggöra applikation-till- applikation kummunikation  En port representeras i UDP av ett 16 bitars värde vilket gör att portarna kan variera mellan 0 och  Port nr 0 är reserverad men kan användas om den applikation som skickar data inte förväntar sig ett svarsmeddelande

23 UDP (User Datagram Protocol)‏  Portarna 1 till 1023 är s.k. “well-known” portar och i Unix-baserade operativsystem krävs dett root-rättigheter för att kunna binda en UDP förbindelse till en sådan port  Portarna är registrerade portar som är registrerade av Internet Corporation for Assigned Named and Numbers (ICANN)‏  Portarna – är temporära portar som närmast används av klienter när de kommunicerar med servrar

24 UDP - Paketstrukturen  Source port (16 bitar) – Definierar porten för avsändaren, eventuellt svarsdata skall skickas tillbaka till denna port. Om inget svarsdata förväntas skall värdet vara 0  Destination port (16 bitar) – Identifierar destinationsporten och är obligatorisk

25 UDP - Paketstrukturen  Length (16 bitar) – Definierar längden I bytes för hela paketet (huvud + data  Checksum (16 bitar) – Används för feldetektering för hela paketet

26 TCP vs. UDP  TCP  Förbindelseorienterat  För att kunna kommunicera krävs hanskakning för att sätta upp en end-to-end förbindelse mellan en klient och en server  Pålitligt  Meddelandekvittans, omskickning och timeout  Paketen organsierade I rätt ordning  Tungt  Krävs tre paket endast för att sätta upp en förbindelse och före det kan sändas nåt data överhuvudtaget. Kvittanspaketen kräver extra kommunikation  Streaming  Data läses som en ström där inget indikerar var ett paket slutar och var ett annat börjar. Datapaket kan bli spjälkta upp I mindre delar eller förenade till större paket

27 TCP vs. UDP  UDP  Förbindelselöst  Ingen förbindelse behöver sättas upp och kommunikationen behöver inte ske mellan en klient och en server  Opålitligt  När data sänds kan man inte veta om det når sin destination eller inte  Finns inga koncept för kvittans, omskickning eller timeout  Paketen ej organiserade  Smidigt  Eftersom ingen felkontroll eller paketkvittans förekommer  Datagram  Paket sänds individuellt och garanteras vara I sin helhet om de kommer fram. Data kan inte spjälkas upp I mindre delar eller förenas med andra paket


Ladda ner ppt "NÄTVERKSPROTOKOLL Föreläsning 7 - 22.9.2008 INNEHÅLL - Transportskiktet - TCP - UDP."

Liknande presentationer


Google-annonser