Datakommunikasjon Høsten 2001 Forelesning nr 10, 29. oktober 2001 Chapter 17 Transport Protocols + DNS og SNMP
Øvingsoppgaver zIngen zObligatorisk oppgave nr 2 deles ut onsdag 31. oktober. zInnleveringsfrist onsdag 14. oktober zPrøveekasamen deles ut mandag 19. november zGjennomgang onsdag 28. november zEksamen tirsdag 4. desember
Pensum Chapter 19 Distributed Applications zFølgende er IKKE pensum: zKapittel 19.1 ASN.1 zForelesning 12. november: Network Security (selvkomponert) zForelesning 19. november: Repitisjon
Dagens tekst: zTransportlaget zTCP – Transmission Control Protocol zUDP – User Datagram Protocol zDNS – Domain Name System zSNMP – Simple Network Management Protocol (?)
TCP – Transmission Control Protocol
Kommunikasjonslagene (referert til OSI) ApplicationPresentationSession Ethernet IP ARP ICMP TCPUDP NetworkTransportData LinkPhysicalApplicationTransportNetworkData Link PPP FTPHTTP DNS OSI Internet-TCP/IP SMTP
TCP & UDP zTransmission Control Protocol yForbindelsesorientert yRFC 793 zUser Datagram Protocol (UDP) yForbindelsesløs (datagram tjeneste) yRFC 768
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
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
Sockets begrepet zSending socket yAvsender IP-adresse + port nummer zReceiving socket yMottaker IP-adresse + port nummer zBenyttes ifm API-er yAPI-Application Program Interface
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
TCP streams og segmenter TCP A B Segmenter Stream
TCP pakke
Oppgaver til TCP zAdressering zMultipleksing, en TCP prosess må kunne håndtere flere applikasjoner zFlytkontroll zFeilkontroll zOpp og nedkobling
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
Multipleksing zFlere applikasjoner kan benytte samme transport protokoll zApplikasjon identifiseres med port nummer eller service access point (SAP)
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
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
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”
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
TCP oppkobling Maskin A Maskin B TID SYN (SYNchronize sequence numbers) SYN, ACK ACK Kalles for: Three-way handshake
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
Credit Allocation
Sending and Receiving Perspectives
Three Way Handshake: Examples
Three Way Handshake: State Diagram
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
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
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.
ACK – Acknowledge number zBenyttes til å si at dette er kvittering for mottatte data
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
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
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”
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
TCP - Sekvens opp- /nedkobling RFC793 SYN SYN, ACK ACK FIN ACK SYN, detaljer FIN ACK detaljer Sekvens detaljer - Data - FIN
TCP half close FIN ACK FIN DATA Applikasjon avslutter Applikasjon sender data Applikasjon leser data
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
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
Implementeringsopsjoner zSend zDeliver zAccept zRetransmit zAcknowledge
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
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
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
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
Acknowledgement zØyeblikkelig zKumulative, dvs mottar flere segmenter før ACK sendes
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
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
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
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
DNS - Domain Name System zMapper mellom hostnavn og IP-adresse (og omvendt) zBenyttes av TCP/IP applikasjoner zDistribuert, hierarkisk zBenytter både TCP og UDP som transport, port nummer 53 zEksempler yDNS QueryDNS Query yDNS ReplyDNS Reply RFC1034RFC1034, RFC1035RFC1035
DNS - Domain Name System RFC1034RFC1034, RFC1035RFC1035 zDistribuert yIngen navneserver har lagret all informasjon yEt nett (firma, organisasjon o.l) har en eller flere navneservere xInneholder hele eller deler av egne definisjoner xHåndterer også forespørsler utenfra zHierarkisk yHvis egen server ikke har nødvendig informasjon, sendes forespørselen til nivået over yEt overliggende nivå vil gjenkjenne nok til å kunne velge underliggende nivå for forespørsel.
DNS - Domain Name System RFC1034RFC1034, RFC1035RFC1035 Top Level Domains Second Level Domains Unnamed root IN- ADDR YAHOO PEOPLE NO SCANDPOWER WWW Generic DomainsCountry Domains ARPA - Special Domain for address-to-name mappings COMEDUGOVMILNETORGARPAAENOZW
DNS - Domain Name System RFC1034RFC1034, RFC1035RFC1035 zResultat fra en ekstern forespørsel kan lagres i lokal navneserver til senere bruk zEn DNS respons vil inneholde informasjon om kilden er autoritativ eller ikke.
ARP – Address Resolution Prottocol N:\>arp -a Interface: on Interface 0x2 Internet Address Physical Address Type da-4f-31-8c dynamic c-8e dynamic fe-29 dynamic N:\>arp -a Internet Address Physical Address Type b0-3d dynamic a dynamic c ce dynamic da-4f-31-8c dynamic c-8e dynamic fe-29 dynamic
SNMP zSimple Network Management Protocol
55 Network Management Model Request Response Unsolicited trap ManagerAgent Network Management Station Network Management ProtocolManaged Node (Management Information)
56 Managed Nodes Hosts WS, PC, Terminal Server, Printer Routers Media Devices Bridge, HUB, Repeater, SDH equipment
57 Managed Node Komponenter Management Protocol “Useful” Protocols “Hooks” (Management Instrumentation) Network
58 Network Management Agent Protokoll maskin implementerer Network Management protokollen “peer”-prosess med Manager applikasjonen Management profil autentisering og aksesskontroll MIB View
59 Administrativt Rammeverk SNMPv1 definerer en community som en relasjon mellom en Manager og en Agent Implementert som en string som overføres (i klartekst) i hver SNMP melding Autorisasjon skjer via comunity string og transport adresse til Manager Aksesskontroll til Managed Objects håndteres via MIB views
60 Network Management Station Overvåking og kontroll protokollmaskin tilsvarende agentene Network Operations Centre Network Management Functions FCAPS (Fault-, Configuration-, Accounting-, Performance-, og Security Management)
61 Structure of Management Information (SMI) Spesifiserer hvordan Management Informasjonen er strukturert - ASN.1 Spesifiserer internet sub-treet i det globale treet Definerer datatyper som kan benyttes Definerer regler for MIB dokumenter Definerer format for definisjon av Managed Objects
62 SNMPv1 RFCs rfc Structure and Identification of Management Information for TCP/IP based Internets rfc1156/ Management Information Base for Network Management of TCP/IP based Internets rfc Simple Network Management Protocol
63 SNMP protokollen Baserte seg på Simple Gateway Monitor Protocol (SGMP) SNMP ble Internet standard i 1990 Hovedhensikten var å lage en enkel management protokoll som krever få ressurser av utstyret den implementeres i Benytter UDP som transportprotokoll
64 SNMP Operasjoner SNMPv1 omfatter få operasjoner: Get GetNext Set Trap SNMPv1 omfatter kun en svarmelding: GetResponse
65 SNMP protokollen ManagerAgent GetRequest, GetNextRequest, SetRequest GetResponse Trap Port 161 Port 162
66 SNMP innkapsling LLC/MAC header IP header UDP header SNMP melding LLC/MAC trailer Data Link nivåNettverks- nivå Transport- nivå Applikasjons- nivå SNMP innkapsling:
67 SNMPv1 melding En SNMPv1 melding består av 3 deler: Versjons nummer Community string En av de 5 SNMP PDUene
68 SNMPv1 PDU PDU type Request Id Error status Error index Variable Bindings name1:value1name2:value
69 SNMPv1 Trap PDU PDU type enterpriseagent address generic trap type specific trap type timestampvariable bindings name1 : value1name2 : value
Distribuert Network Management kongigurasjon