Forelesning 3
Transcription
Forelesning 3
Datakommunikasjon høsten 2002 Forelesning nr 3, mandag 2. september Chapter 3, Transport Layer Datakom høsten 2002 1 Øvingsoppgaver Datakom høsten 2002 2 Aktiv og passiv FTP AKTIV: SERVER 21 20 Kom. Data KLIENT 1026 Kom. 1027 Data 1 2 3 4 Datakom høsten 2002 3 Aktiv og passiv FTP PASSIV: SERVER KLIENT 21 Kom. 20 Data Port 2024 1026 Kom. 1027 Data 1 2 3 4 Datakom høsten 2002 4 RFC791 IP-adresser Klasse A (0-127): 0 Nett Lokal Klasse B (128-191): 1 0 Nett Lokal Klasse C (192-223): 1 1 0 Nett Datakom høsten 2002 Lokal 5 IP-adresser Hvordan angis en IP-adresse? fire desimale nummer, et pr. byte i adressen, separert med punktum Kalles for “dotted decimal notation” Eksempel 193.69.136.36 Datakom høsten 2002 6 IP-adresser Spesielle adresser Broadcast - en til alle Lokaladresse har alle bit satt til 1 Loopback (tilgang til tjenester på egen maskin) 127.0.0.1 Alle bit 0; ukjent IP-adresse (eller default rute) Måter å adressere Unicast - en til en Broadcast - en til alle Multicast - en til mange Datakom høsten 2002 7 Subnett RFC950 Klasseinndelingen er lite fleksibel, og gir mange ubrukte adresser Bedre utnyttelse av adresseområdet oppnås ved bruk av subnettmasker. En subnettmaske angir hvor stor del av adressen som er nettprefikset (nett+subnett) og dermed også hvor stor del lokaladressen er Datakom høsten 2002 8 Subnett, eksempel RFC791 Opprinnelig klasse B (1 nett med 65.536 lokaladresser) 1 0 Nett Lokal Nå: 64 subnett, hvert med 1022 lokaladresser 1 0 Nett Subnett Lokal Subnettmaske: 255.255.252.0 eller /22 Datakom høsten 2002 9 Tracert kommando Traceroute, lister opp hvilke rutere som passeres på vei til mottaker Benytter TTL (Time To Live) feltet i ICMP Echo Request Får svar i form av ICMP Time Exceeded melding TTL settes til 1 for så å økes med 1 hver gang Datakom høsten 2002 10 Tracert Datakom høsten 2002 11 Some Protocols in TCP/IP Suite Datakom høsten 2002 12 Datakom høsten 2002 13 Ipconfig kommando N:\>ipconfig /all Windows 2000 IP Configuration Host Name . . . . . . . . . . . . Primary DNS Suffix . . . . . . . Node Type . . . . . . . . . . . . IP Routing Enabled. . . . . . . . WINS Proxy Enabled. . . . . . . . DNS Suffix Search List. . . . . . : bak3 : : Broadcast : No : No : halden.scandpower.no Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : halden.scandpower.no Description . . . . . . . . . . . : 3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX) Physical Address. . . . . . . . . : 00-50-DA-DD-2E-5E DHCP Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 193.69.136.78 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 193.69.136.54 DNS Servers . . . . . . . . . . . : 193.69.136.53 193.69.136.34 Datakom høsten 2002 14 netstat kommando N:\>netstat -rn Active Routes: Network Destination 0.0.0.0 127.0.0.0 193.69.136.0 193.69.136.78 193.69.136.255 224.0.0.0 255.255.255.255 Default Gateway: Netmask Gateway 0.0.0.0 255.0.0.0 255.255.255.0 255.255.255.255 255.255.255.255 224.0.0.0 255.255.255.255 193.69.136.54 127.0.0.1 193.69.136.78 127.0.0.1 193.69.136.78 193.69.136.78 193.69.136.78 Interface 193.69.136.78 127.0.0.1 193.69.136.78 127.0.0.1 193.69.136.78 193.69.136.78 193.69.136.78 Metric 1 1 1 1 1 1 1 193.69.136.54 Persistent Routes: None Datakom høsten 2002 15 TCP/IP Er egentlig en gruppe av protokoller som har fått navn etter to av disse. Lagdelt, 4 lag er definert i TCP/IP modellen Modellen er laget etter at protokollene ble tatt i bruk (i motsetning til ISO’s OSI-modell) Ikke alltid veldefinert i hvilket lag en protokoll befinner seg IPv4 er den versjonen av IP som er i bruk idag Datakom høsten 2002 16 Kommunikasjonslagene (referert til OSI) FTP HTTP SMTP Internet-TCP/IP OSI Application Application DNS Presentation Session TCP UDP Transport Transport Network Network Data Link Data Link ICMP IP ARP PPP Ethernet Physical Datakom høsten 2002 17 Innkapsling IP Header TCP Header Data Data Datakom høsten 2002 18 Innkapsling IP Header TCP Header Data Data Datakom høsten 2002 19 Innkapsling Ethernet Header IP Header TCP Header Data Data Data Ethernet Checksum Datakom høsten 2002 20 Innkapsling ‘Protocoll type’ identifiserer neste protokoll som IP (=0800) Ethernet Header ‘Protocol’ definerer neste protokoll som TCP (=6) IP Header ‘Destination port’ definerer applikasjon, f.eks. HTTP (=80) TCP Header Data Data Data Datakom høsten 2002 Ethernet Checksum 21 TCP & UDP Transmission Control Protocol Forbindelsesorientert RFC 793 User Datagram Protocol (UDP) Forbindelsesløs (datagram tjeneste) RFC 768 Datakom høsten 2002 22 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 Datakom høsten 2002 23 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 Datakom høsten 2002 24 Sockets begrepet Sending socket Avsender IP-adresse + port nummer Receiving socket Mottaker IP-adresse + port nummer Benyttes ifm API-er API-Application Program Interface Datakom høsten 2002 25 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 Datakom høsten 2002 26 TCP streams og segmenter A B Stream TCP Stream Segmenter Datakom høsten 2002 TCP 27 TCP pakke Datakom høsten 2002 28 Oppgaver til TCP Adressering Multipleksing, en TCP prosess må kunne håndtere flere applikasjoner Flytkontroll Feilkontroll Opp og nedkobling Datakom høsten 2002 29 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 Datakom høsten 2002 30 Multipleksing Flere applikasjoner kan benytte samme transport protokoll Applikasjon identifiseres med port nummer eller service access point (SAP) Datakom høsten 2002 31 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 Datakom høsten 2002 32 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 Datakom høsten 2002 33 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” Datakom høsten 2002 34 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 Datakom høsten 2002 35 TCP oppkobling Maskin A Maskin B SYN (SYNchronize sequence numbers) SYN, ACK ACK TID Kalles for: Three-way handshake Datakom høsten 2002 36 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 Datakom høsten 2002 37 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 Datakom høsten 2002 38 TCP - Transmission Control Protocol RFC793 TCP Header Source Port Destination Port Sequence Number Acknowledge Number Header Length Reserved U A P R S F R C S S Y I G K H T N N TCP Checksum Window Size Urgent Pointer Options Datakom høsten 2002 39 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. Datakom høsten 2002 40 ACK – Acknowledge number Benyttes til å si at dette er kvittering for mottatte data Datakom høsten 2002 41 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 Datakom høsten 2002 42 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 Datakom høsten 2002 43 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” Datakom høsten 2002 44 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 Datakom høsten 2002 45 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 Datakom høsten 2002 46 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 Datakom høsten 2002 47 TCP - Sekvens opp- /nedkobling RFC793 SYN SYN, detaljer SYN, ACK ACK - Data FIN ACK FIN ACK detaljer FIN ACK Sekvens detaljer Datakom høsten 2002 48 TCP half close - nedkobling A Applikasjon avslutter B FIN ACK DATA Applikasjon leser data Applikasjon sender data FIN ACK Datakom høsten 2002 49 Implementeringsopsjoner Send Deliver Accept Retransmit Acknowledge Datakom høsten 2002 50 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 Datakom høsten 2002 51 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 Datakom høsten 2002 52 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 Datakom høsten 2002 53 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 Datakom høsten 2002 54 Acknowledgement Øyeblikkelig Kumulative, dvs mottar flere segmenter før ACK sendes Datakom høsten 2002 55 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 Datakom høsten 2002 56 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 Datakom høsten 2002 57 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 Datakom høsten 2002 58 UDP - User Datagram Protocol RFC768 UDP Header Source Port Destination Port UDP length UDP checksum UDP length = lengden av hele datagrammet UDP checksum = sjekksum av hele datagrammet Eksempel Datakom høsten 2002 59