Download
datakommunikasjon h sten 2001 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Datakommunikasjon Høsten 2001 PowerPoint Presentation
Download Presentation
Datakommunikasjon Høsten 2001

Datakommunikasjon Høsten 2001

106 Views Download Presentation
Download Presentation

Datakommunikasjon Høsten 2001

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Datakommunikasjon Høsten 2001 Forelesning nr 10, 29. oktober 2001Chapter 17 Transport Protocols + DNS og SNMP

  2. Øvingsoppgaver • Ingen • Obligatorisk oppgave nr 2 deles ut onsdag 31. oktober. • Innleveringsfrist onsdag 14. oktober • Prøveekasamen deles ut mandag 19. november • Gjennomgang onsdag 28. november • Eksamen tirsdag 4. desember

  3. Pensum Chapter 19 Distributed Applications • Følgende er IKKE pensum: • Kapittel 19.1 ASN.1 • Forelesning 12. november: Network Security (selvkomponert) • Forelesning 19. november: Repitisjon

  4. Dagens tekst: • Transportlaget • TCP – Transmission Control Protocol • UDP – User Datagram Protocol • DNS – Domain Name System • SNMP – Simple Network Management Protocol (?)

  5. TCP – Transmission Control Protocol

  6. Application Application Presentation Session Transport Transport Network Network Data Link Data Link Physical Kommunikasjonslagene (referert til OSI) OSI Internet-TCP/IP FTP HTTP SMTP DNS TCP UDP ICMP IP ARP PPP Ethernet

  7. TCP & UDP • Transmission Control Protocol • Forbindelsesorientert • RFC 793 • User Datagram Protocol (UDP) • Forbindelsesløs (datagram tjeneste) • RFC 768

  8. Eks. på brukere av TCP • Telnet • port 23 • FTP (File Transfer Program) • port 20 og 21 • SMTP (Simple Mail Transfer Program) • port 25 • DNS (Domain Name System) • port 53 • HTTP (WEB-trafikk) • port 80

  9. Eks. på brukere av UDP • TFTP (Trivial File Transfer Protocol) • port 69 • DHCP (Dynamic Host Configuration Protocol) • port 67 og 68 • NTP (Network Time Protocol) • port 123 • DNS (Domain Name Sytem) • port 53

  10. Sockets begrepet • Sending socket • Avsender IP-adresse + port nummer • Receiving socket • Mottaker IP-adresse + port nummer • Benyttes ifm API-er • API-Application Program Interface

  11. TCP • TCP overfører data mellom en klient og en tjener (client/server) • Data overføres i segmenter • Brukerene av TCP leverer data som en strøm av data (stream oriented) • TCP sørger for feilretting og at data leveres videre til brukeren av TCP i korrekt rekkefølge • Forbindelsesorientert • Oppkoblingsfase • Dataoverføringsfase • Nedkoblingsfase

  12. TCP streams og segmenter A B Stream Stream Segmenter TCP TCP

  13. TCP pakke

  14. Oppgaver til TCP • Adressering • Multipleksing, en TCP prosess må kunne håndtere flere applikasjoner • Flytkontroll • Feilkontroll • Opp og nedkobling

  15. Adressering • Applikasjon adresseres med: • host, port • Kalles en socket i TCP • Port representerer en bruker av TCP, dvs en applikasjon • Transport entity identifikasjon • TCP og UDP • Host og nettverksadresse, dvs IP-adresse

  16. Multipleksing • Flere applikasjoner kan benytte samme transport protokoll • Applikasjon identifiseres med port nummer eller service access point (SAP)

  17. Flytkontroll • Variabel transmissjonsforsinkelse • Vanskeligjør bruk av timere • Må ha flytkontroll pga at: • Mottaker ikke kan motta data så raskt som avsender sender • Resulterer i buffere som fylles

  18. Håndtering av krav til flytkontroll (1) • Gjør ingenting • Segmenter kastes • Avsender vil ikke motta ACK og vil retransmittere • Resulterer i mer inndata • Avise segmenter når buffer er fullt • Trigger flytkontroll på lavere lag. • Hvis flere transportforbindelser er multiplekset over en enkelt nettverksforbindelse foregår flytkontrollen “summen” av alle transportforbindelsene

  19. Håndtering av krav til flytkontroll (2) • Bruke av fast sliding window protokoll • Fungerer bra i pålitelige nett • Manglende mottak av ACK håndteres som flytkontroll • Fungerer dårlig i upålitelige nett • Kan ikke skille mellom tapte pakker og flytkontroll • Bruk av “credit scheme”

  20. Credit Scheme • Vindusstørrelse og ACK er ikke lenger koblet sammen • Kan gi ACK uten å gi kreditt og vice versa • Hver oktett har et sekvensnummer • Hvert transport segment har sekvens nummer, ack nummer og vindusstørrelse i header

  21. TCP oppkobling Maskin A Maskin B SYN (SYNchronize sequence numbers) SYN, ACK ACK Kalles for: Three-way handshake TID

  22. TCP sekvens nummer Maskin A Maskin B SYN=1, Sequence=X SYN=1, ACK=1, Sequence=Y, Ack no=X+1 ACK=1, Ack no=Y+1 TID

  23. Credit Allocation

  24. Sending and Receiving Perspectives

  25. Three WayHandshake:Examples

  26. Three Way Handshake:State Diagram

  27. Netstat –s (gir protokollstatistikk) TCP Statistics Active Opens = 696 Passive Opens = 39 Failed Connection Attempts = 46 Reset Connections = 363 Current Connections = 3 Segments Received = 265696 Segments Sent = 275847 Segments Retransmitted = 285

  28. TCP - Transmission Control Protocol RFC793 TCP Header Source Port Destination Port Sequence Number Acknowledge Number Header Length URG ACK PSH RST SYN FIN Reserved Window Size TCP Checksum Urgent Pointer Options

  29. URG (Urgent mode) flagg • Urgent mode • Gir mulighet for den ene part å fortelle at ”urgent data” er sent innimellom den normale datastrømmen • Urgent mode aktiveres ved å • URG bit settes = 1 • 16 bir urgent pointer settes til et positivt offset • Urgent data befinner er da i de oktettene som angis av sequence number + urgent pointer offset • Benyttes av telnet, rlogin og FTP.

  30. ACK – Acknowledge number • Benyttes til å si at dette er kvittering for mottatte data

  31. PSH (PUSH) flagg • Avsender side: • Brukeren av TCP setter PUSH flagget for at TCP skal sende data som er mottatt med en gang, dvs ikke vente til at bufferet f.eks. er fullt. • Mottaker side: • TCP skal sende de mottatte data umiddelbart til brukeren av TCP • Eksempel på bruk er telnet

  32. RST (RESET) flagg • RESET flagg benyttes til å • resette en forbindelse • avbryte en forbindelse • Oppsett til en ikke eksisterende port • TCP sender RESET • UDP sender ICMP port unreachable • Eksempel telnet til en ikke eksisterende port

  33. SYN (SYNCHRONIZE) flagg • Synkronisering av sekvens nummer ifm initiering av en forbindelse • Avsender sender et SYN segment som inneholder ”initial sequence number” • Mottaker returnerer et syn segment som også inneholder ”initial sequence number”

  34. FIN flagg • Indikerer at forbindelsen skal kobles ned, dvs det skal ikke overføres flere data • TCP avslutter forbindelsen • TCP foretar en såkalt ”half close” når en forbindelse kobles ned • Dette betyr at selv om den ene siden har sendt FIN kan fortsatt den andre siden sende data

  35. SYN SYN, ACK ACK FIN ACK FIN ACK TCP - Sekvens opp- /nedkobling RFC793 SYN, detaljer - Data - FIN ACK detaljer Sekvens detaljer

  36. FIN ACK FIN DATA ACK TCP half close Applikasjon avslutter Applikasjon senderdata Applikasjon leserdata

  37. TCP Mekanismer (1) • Oppsett • Three way handshake • Mellom to porter (source og destination port) • Data transfer • Logisk strøm av oktetter • Oktettene er nummerert modulo 223 • Flyt kontroll basert på kreditt av nummer av oktetter • Data buffres hos avsender og mottaker

  38. TCP Mekanismer (2) • Nedkobling • Graceful close • TCP bruker sender CLOSE primitive • Transport entity setter FIN flagg på siste segment som sendes • ABORT primitive • All sending og mottak av data opphører • RST sendes

  39. Implementeringsopsjoner • Send • Deliver • Accept • Retransmit • Acknowledge

  40. Sending av data • Hvis ikke PUSH flagget er satt kan TCP sende data når den synes det “passer” • Data buffres i et sende buffer • Kan vente med å sende til den har fått en viss mengde data

  41. Levering av data • Hvis ikke PUSH flagg, levere når det passer • KAn levere data etter hvert som den mottar segmenter • Kan lagre data i et buffer før det sendes videre

  42. Aksept av mottatte data • Segments kan ankomme ute av sekvens • Segmenter • Akseptere kun segmenter i riktig rekkefølge • Forkaste segmenter som ikke kommer i riktig rekkefølge • Innenfor vindusstørrelsen • Akseptere alle segmenter innenfor mottakervindu

  43. Retransmisjon • TCP vedlikeholder en kø av de segmenter som er sendt og som ikke det er mottatt ack på • TCP vil retransmittere hvis det ikke er mottatt ACK innen en viss tid

  44. Acknowledgement • Øyeblikkelig • Kumulative, dvs mottar flere segmenter før ACK sendes

  45. TCP Slow Start • Algoritme som skal sørge for at TCP tilpasser seg overføringskapasiteten i nettet • Kalles ”Congestion window” eller cwnd • Er initielt satt til et segment hvor størrelsen av segmentet er den segmentstørrelsen som er annonsert av mottakeren • Hver gang en ACK mottas økes cwnd med 1

  46. UDP • User datagram protocol • RFC 768 • Forbindelsesløs tjeneste • Det settes ikke opp noen forbindelse mellom avsender og mottaker som med TCP • Upålitelig • Garanterer ikke at data kommer frem • Lite overhead

  47. UDP og fragmentering • Et UDP datagram resulterer hos avsender i et IP datagram • Et IP datagram kan imidlertid bli fragmentert dersom MTU (Maximum Transfer Unit) er mindre enn størrelsen på IP datagrammet • Dette settes i sammen hos mottakeren, men hvis det er feil forkastes alle fragmenter • IP ber ikke om retransmisjon, og heller ikke UDP • Tjenesten som benytter UDP må derfor ta ansvar for all retransmisjon

  48. UDP length UDP checksum UDP length = lengden av hele datagrammet UDP checksum = sjekksum av hele datagrammet UDP - User Datagram Protocol RFC768 UDP Header Source Port Destination Port Eksempel

  49. DNS - Domain Name System RFC1034, RFC1035 • Mapper mellom hostnavn og IP-adresse(og omvendt) • Benyttes av TCP/IP applikasjoner • Distribuert, hierarkisk • Benytter både TCP og UDP som transport, port nummer 53 • Eksempler • DNS Query • DNS Reply

  50. DNS - Domain Name System RFC1034, RFC1035 • Distribuert • Ingen navneserver har lagret all informasjon • Et nett (firma, organisasjon o.l) har en eller flere navneservere • Inneholder hele eller deler av egne definisjoner • Håndterer også forespørsler utenfra • Hierarkisk • Hvis egen server ikke har nødvendig informasjon, sendes forespørselen til nivået over • Et overliggende nivå vil gjenkjenne nok til å kunne velge underliggende nivå for forespørsel.