Datakom høsten Datakommunikasjon høsten 2002 Forelesning nr 3, mandag 2. september Chapter 3, Transport Layer
Datakom høsten Øvingsoppgaver
Datakom høsten Aktiv og passiv FTP AKTIV: SERVERKLIENT 20 Data 21 Kom Kom Data
Datakom høsten Aktiv og passiv FTP PASSIV: SERVER KLIENT 20 Data 21 Kom Kom Data Port 2024
Datakom høsten IP-adresser 0 NettLokal Klasse A (0-127): 01 NettLokal Klasse B ( ): 011 NettLokal Klasse C ( ): RFC791
Datakom høsten IP-adresser zHvordan angis en IP-adresse? yfire desimale nummer, et pr. byte i adressen, separert med punktum yKalles for “dotted decimal notation” yEksempel
Datakom høsten IP-adresser zSpesielle adresser yBroadcast - en til alle Lokaladresse har alle bit satt til 1 yLoopback (tilgang til tjenester på egen maskin) yAlle bit 0; ukjent IP-adresse (eller default rute) zMåter å adressere yUnicast - en til en yBroadcast - en til alle yMulticast - en til mange
Datakom høsten Subnett zKlasseinndelingen er lite fleksibel, og gir mange ubrukte adresser zBedre utnyttelse av adresseområdet oppnås ved bruk av subnettmasker. zEn subnettmaske angir hvor stor del av adressen som er nettprefikset (nett+subnett) og dermed også hvor stor del lokaladressen er RFC950
Datakom høsten Subnett, eksempel RFC NettLokal Opprinnelig klasse B (1 nett med lokaladresser) Nå: 64 subnett, hvert med 1022 lokaladresser 01 NettSubnettLokal Subnettmaske: eller /22
Datakom høsten Tracert kommando zTraceroute, lister opp hvilke rutere som passeres på vei til mottaker zBenytter TTL (Time To Live) feltet i ICMP Echo Request zFår svar i form av ICMP Time Exceeded melding zTTL settes til 1 for så å økes med 1 hver gang
Datakom høsten Tracert
Datakom høsten Some Protocols in TCP/IP Suite
Datakom høsten
Datakom høsten Ipconfig kommando N:\>ipconfig /all Windows 2000 IP Configuration Host Name : bak3 Primary DNS Suffix : Node Type : Broadcast IP Routing Enabled : No WINS Proxy Enabled : No DNS Suffix Search List : 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 : DA-DD-2E-5E DHCP Enabled : No IP Address : Subnet Mask : Default Gateway : DNS Servers :
Datakom høsten netstat kommando N:\>netstat -rn Active Routes: Network Destination Netmask Gateway Interface Metric Default Gateway: Persistent Routes: None
Datakom høsten TCP/IP zEr egentlig en gruppe av protokoller som har fått navn etter to av disse. zLagdelt, 4 lag er definert i TCP/IP modellen yModellen er laget etter at protokollene ble tatt i bruk (i motsetning til ISO’s OSI-modell) yIkke alltid veldefinert i hvilket lag en protokoll befinner seg zIPv4 er den versjonen av IP som er i bruk idag
Datakom høsten Kommunikasjonslagene (referert til OSI) ApplicationPresentationSession Ethernet IP ARP ICMP TCPUDP NetworkTransportData LinkPhysicalApplicationTransportNetworkData Link PPP FTPHTTP DNS OSI Internet-TCP/IP SMTP
Datakom høsten Innkapsling IP Header Data TCP Header Data
Datakom høsten Innkapsling IP Header Data TCP Header Data
Datakom høsten Innkapsling IP Header Data TCP Header Data Ethernet Header Ethernet Checksum Data
Datakom høsten Ethernet Header Ethernet Checksum Data Innkapsling IP Header Data TCP Header Data ‘Protocoll type’ identifiserer neste protokoll som IP (=0800) ‘Protocol’ definerer neste protokoll som TCP (=6) ‘Destination port’ definerer applikasjon, f.eks. HTTP (=80)
Datakom høsten TCP & UDP zTransmission Control Protocol yForbindelsesorientert yRFC 793 zUser Datagram Protocol (UDP) yForbindelsesløs (datagram tjeneste) yRFC 768
Datakom høsten Eks. på brukere av TCP zTelnet yport 23 zFTP (File Transfer Program) yport 20 og 21 zSMTP (Simple Mail Transfer Program) yport 25 zDNS (Domain Name System) yport 53 zHTTP (WEB-trafikk) yport 80
Datakom høsten Eks. på brukere av UDP zTFTP (Trivial File Transfer Protocol) yport 69 zDHCP (Dynamic Host Configuration Protocol) yport 67 og 68 zNTP (Network Time Protocol) yport 123 zDNS (Domain Name Sytem) yport 53
Datakom høsten Sockets begrepet zSending socket yAvsender IP-adresse + port nummer zReceiving socket yMottaker IP-adresse + port nummer zBenyttes ifm API-er yAPI-Application Program Interface
Datakom høsten TCP zTCP overfører data mellom en klient og en tjener (client/server) zData overføres i segmenter zBrukerene av TCP leverer data som en strøm av data (stream oriented) zTCP sørger for feilretting og at data leveres videre til brukeren av TCP i korrekt rekkefølge zForbindelsesorientert yOppkoblingsfase yDataoverføringsfase yNedkoblingsfase
Datakom høsten TCP streams og segmenter TCP A B Segmenter Stream
Datakom høsten TCP pakke
Datakom høsten Oppgaver til TCP zAdressering zMultipleksing, en TCP prosess må kunne håndtere flere applikasjoner zFlytkontroll zFeilkontroll zOpp og nedkobling
Datakom høsten Adressering zApplikasjon adresseres med: xhost, port •Kalles en socket i TCP xPort representerer en bruker av TCP, dvs en applikasjon yTransport entity identifikasjon •TCP og UDP yHost og nettverksadresse, dvs IP-adresse
Datakom høsten Multipleksing zFlere applikasjoner kan benytte samme transport protokoll zApplikasjon identifiseres med port nummer eller service access point (SAP)
Datakom høsten Flytkontroll zVariabel transmissjonsforsinkelse yVanskeligjør bruk av timere zMå ha flytkontroll pga at: yMottaker ikke kan motta data så raskt som avsender sender zResulterer i buffere som fylles
Datakom høsten Håndtering av krav til flytkontroll (1) zGjør ingenting ySegmenter kastes yAvsender vil ikke motta ACK og vil retransmittere xResulterer i mer inndata zAvise segmenter når buffer er fullt yTrigger flytkontroll på lavere lag. yHvis flere transportforbindelser er multiplekset over en enkelt nettverksforbindelse foregår flytkontrollen “summen” av alle transportforbindelsene
Datakom høsten Håndtering av krav til flytkontroll (2) zBruke av fast sliding window protokoll yFungerer bra i pålitelige nett xManglende mottak av ACK håndteres som flytkontroll yFungerer dårlig i upålitelige nett xKan ikke skille mellom tapte pakker og flytkontroll zBruk av “credit scheme”
Datakom høsten Credit Scheme zVindusstørrelse og ACK er ikke lenger koblet sammen yKan gi ACK uten å gi kreditt og vice versa zHver oktett har et sekvensnummer zHvert transport segment har sekvens nummer, ack nummer og vindusstørrelse i header
Datakom høsten TCP oppkobling Maskin A Maskin B TID SYN (SYNchronize sequence numbers) SYN, ACK ACK Kalles for: Three-way handshake
Datakom høsten TCP sekvens nummer Maskin A Maskin B TID SYN=1, Sequence=X SYN=1, ACK=1, Sequence=Y, Ack no=X+1 ACK=1, Ack no=Y+1
Datakom høsten Netstat –s (gir protokollstatistikk) TCP Statistics Active Opens = 696 Passive Opens = 39 Failed Connection Attempts = 46 Reset Connections = 363 Current Connections = 3 Segments Received = Segments Sent = Segments Retransmitted = 285
Datakom høsten TCP - Transmission Control Protocol Source Port TCP Header Destination Port Sequence Number Acknowledge Number Header Length Reserved URGURG ACKACK PSHPSH RSTRST SYNSYN FINFIN Window Size TCP ChecksumUrgent Pointer Options RFC793
Datakom høsten URG (Urgent mode) flagg zUrgent mode yGir mulighet for den ene part å fortelle at ”urgent data” er sent innimellom den normale datastrømmen zUrgent mode aktiveres ved å yURG bit settes = 1 y16 bir urgent pointer settes til et positivt offset yUrgent data befinner er da i de oktettene som angis av sequence number + urgent pointer offset zBenyttes av telnet, rlogin og FTP.
Datakom høsten ACK – Acknowledge number zBenyttes til å si at dette er kvittering for mottatte data
Datakom høsten PSH (PUSH) flagg zAvsender side: yBrukeren 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. zMottaker side: yTCP skal sende de mottatte data umiddelbart til brukeren av TCP zEksempel på bruk er telnet
Datakom høsten RST (RESET) flagg zRESET flagg benyttes til å yresette en forbindelse yavbryte en forbindelse zOppsett til en ikke eksisterende port yTCP sender RESET yUDP sender ICMP port unreachable zEksempel telnet til en ikke eksisterende port
Datakom høsten SYN (SYNCHRONIZE) flagg zSynkronisering av sekvens nummer ifm initiering av en forbindelse zAvsender sender et SYN segment som inneholder ”initial sequence number” zMottaker returnerer et syn segment som også inneholder ”initial sequence number”
Datakom høsten FIN flagg zIndikerer at forbindelsen skal kobles ned, dvs det skal ikke overføres flere data zTCP avslutter forbindelsen zTCP foretar en såkalt ”half close” når en forbindelse kobles ned zDette betyr at selv om den ene siden har sendt FIN kan fortsatt den andre siden sende data
Datakom høsten TCP Mekanismer (1) zOppsett yThree way handshake yMellom to porter (source og destination port) zData transfer yLogisk strøm av oktetter yOktettene er nummerert modulo 2 23 yFlyt kontroll basert på kreditt av nummer av oktetter yData buffres hos avsender og mottaker
Datakom høsten TCP Mekanismer (2) zNedkobling yGraceful close yTCP bruker sender CLOSE primitive yTransport entity setter FIN flagg på siste segment som sendes yABORT primitive xAll sending og mottak av data opphører xRST sendes
Datakom høsten TCP - Sekvens opp- /nedkobling RFC793 SYN SYN, ACK ACK FIN ACK SYN, detaljer FIN ACK detaljer Sekvens detaljer - Data - FIN
Datakom høsten TCP half close - nedkobling FIN ACK FIN DATA Applikasjon avslutter Applikasjon sender data Applikasjon leser data A B
Datakom høsten Implementeringsopsjoner zSend zDeliver zAccept zRetransmit zAcknowledge
Datakom høsten Sending av data zHvis ikke PUSH flagget er satt kan TCP sende data når den synes det “passer” zData buffres i et sende buffer zKan vente med å sende til den har fått en viss mengde data
Datakom høsten Levering av data zHvis ikke PUSH flagg, levere når det passer zKAn levere data etter hvert som den mottar segmenter zKan lagre data i et buffer før det sendes videre
Datakom høsten Aksept av mottatte data zSegments kan ankomme ute av sekvens zSegmenter yAkseptere kun segmenter i riktig rekkefølge yForkaste segmenter som ikke kommer i riktig rekkefølge zInnenfor vindusstørrelsen yAkseptere alle segmenter innenfor mottakervindu
Datakom høsten Retransmisjon zTCP vedlikeholder en kø av de segmenter som er sendt og som ikke det er mottatt ack på zTCP vil retransmittere hvis det ikke er mottatt ACK innen en viss tid
Datakom høsten Acknowledgement zØyeblikkelig zKumulative, dvs mottar flere segmenter før ACK sendes
Datakom høsten TCP Slow Start zAlgoritme som skal sørge for at TCP tilpasser seg overføringskapasiteten i nettet zKalles ”Congestion window” eller cwnd zEr initielt satt til et segment hvor størrelsen av segmentet er den segmentstørrelsen som er annonsert av mottakeren zHver gang en ACK mottas økes cwnd med 1
Datakom høsten UDP zUser datagram protocol zRFC 768 zForbindelsesløs tjeneste yDet settes ikke opp noen forbindelse mellom avsender og mottaker som med TCP yUpålitelig yGaranterer ikke at data kommer frem zLite overhead
Datakom høsten UDP og fragmentering zEt UDP datagram resulterer hos avsender i et IP datagram zEt IP datagram kan imidlertid bli fragmentert dersom MTU (Maximum Transfer Unit) er mindre enn størrelsen på IP datagrammet zDette settes i sammen hos mottakeren, men hvis det er feil forkastes alle fragmenter zIP ber ikke om retransmisjon, og heller ikke UDP zTjenesten som benytter UDP må derfor ta ansvar for all retransmisjon
Datakom høsten UDP - User Datagram Protocol UDP Header Source PortDestination Port RFC768 Eksempel UDP length UDP length = lengden av hele datagrammet UDP checksum UDP checksum = sjekksum av hele datagrammet