Ennå litt mer detaljer: Flere detaljerte funksjoner i datanett Foreleser: Kjell Åge Bringsrud IP Adressering TCP, UDP Øvre lag Applikasjonsprotokoller INF1060 1 INF1060 2 Internett Best-effort overføring IP Nett IP Nett IP tjeneste-modellen forbindelsesfri transport (datagram transport) best-effort overføring ingen garanti for vellykket overføring: pakker kan bli borte (sjekksumfeil & rutefeil) pakker kan komme frem i gal rekkefølge pakker kan dupliseres pakker kan forsinkes unormalt Internett INF1060 3 INF1060 4 1
Formatet til IP-hodet Formatet til IP-hode 4 4 8 16 Vers. Hlen TOS Length Ident Flags Offset TTL Proto Checksum SourceAddr DestinationAddr Opsions (variable) Pad Version (4): = 4 Hlen (4): antall 32-bits ord i IP hode TOS (8): tjeneste type (type of service)(lite brukt) Length (16): antall bytes, inkludert hode Ident (16): sekvensno. for dette datagrammet Flags/Offset (16): benyttes ved fragmentering Protocol (8): demux nøkkel (TCP=6, UDP=17) Checksum (16): checksum av hele hode DestAddr & SourceAddr (32) Data INF1060 5 INF1060 6 IP adresser og vertsnavn Vertsnavn Mer nøyaktig fullstendig spesifiserte vertsnavn Ser ut som klodrik.ifi.uio.no Vert klodrik I subdomene ifi, Institutt for Informatik I domene uio, Universitetet i Oslo I toppnivå-domene no, Norge Hvem bestemmer dette?.no - IANA ga det til Uninett ( Internet Assigned Numbers Authority ).uio - Uninett ga det til UiO.ifi - USIT, UiO s drift, ga det til IFI klodrik - IFI drift ga det til maskinen INF1060 7 Adressestrukturer (IPv4) formatet; 32 bit (4 oktetter): uten struktur problematisk ruting globalt unike adresser hierarkisk: nettverks-id + vert-id 24 0 nett vert 16 10 nett vert 8 110 nett vert Klasse A Klasse B Klasse C Dot notasjon: 129.240.68.88 INF1060 8 2
Adressestrukturer (IPv4) Subnetting Nett 1 : 129.240.0.0 Destin-addr: 129.240.002.35 1110 Multicast Klasse D 224.0.0.1 adresserer alle systemer i et LAN 224.0.0.2 adresserer alle rutere i et LAN 224.0.0.5 adresserer alle OSPF-rutere i et LAN INF1060 9 subnett 1: 129.240.1.0 Nett-maske = 255.255.255.0 subnett 2: 129.240.2.0 subnett 3: 129.240.3.0 129.240.002.35 & 255.255.255.0 --> 129.240.002.0 subnetting innfører et nytt adressenivå nett-masken identifiserer subnett-adressen subnett er bare synlige innenfor lokalområdet det er fullt mulig med flere subnett på samme fysiske nett INF1060 10 Tilbakeblikk laget; egenskaper OSI Referansemodellen: lagdelt / abstraksjonslag et lag bygger på laget under og tilbyr en verdiøket tjeneste A Nett Link Fysisk Ende-til-ende 2 3 5 B Nett Link Fysisk Det nederste laget i referansemodellen med ende-tilende kontroll laget er hjertet i kommunikasjonen står som garantist for pålitelighet laget fjerner den siste rest av nettavhengighet Ende-til-ende Kommunikasjonsmedium INF1060 11 Datanett INF1060 12 3
Grunnleggende transport-protokoll problemer For at transport-protokollen skal kunne garantere pålitelighet, må den kunne takle de verst tenkelige situasjoner Pålitelig etablering av en forbindelse: Skille mellom gamle og nye instanser av en forbindelse kræsj -problematikker Pålitelig nedkopling av en forbindelse: Uten tap av data Halvt åpne forbindelser Flyt-kontroll Ende-til-ende maskin Maskin-til-nett Internett arkitekturen FTP HTTP NV TFTP TCP UDP ICMP IP ARP Nett 1 Nett 2 Nett 3 Applikasjon Internet Nettverk INF1060 13 INF1060 14 Funksjoner TCP Pålitelig byte-strøm TCP (Transmission Control Protocol) forbindelses-orientert støtter en oktett-strøm mellom to prosesser full dupleks flyt-kontroll hindrer sender å oversvømme mottaker demultipleksing metnings-kontroll hindrer sender å oversvømme nettet INF1060 15 INF1060 16 4
Segment format Pseudo-header SrcPort DestPort SequenceNum Acknowledgement HdrLen 0 Flags Adv.Window CheckSum UrgPointer Options (variable) Flags: SYN FIN ACK RESET PUSH URG Upålitelig overføring UDP (User Datagram Protocol) Data Checksum: pseudo header + tcp header + data INF1060 17 INF1060 18 Enkel multiplekser/ demultiplekser (UDP) tilbyr multipleksing og demultipleksing ved hjelp av Service aksess punkter kalt porter; ingen flytkontroll; tjener-siden lytter på velkjente porter checksum: valgbar Src-address Dest-address 0 Protocol Length Pseudo-hode SrcPort DestPort Checksum Length Data INF1060 19 UDP Standard overføringskvalitet forbindelsesfri transport (datagram transport) best-effort overføring ingen garanti for vellykket overføring: pakker kan bli borte (sjekksumfeil & rutefeil) pakker kan komme frem i gal rekkefølge pakker kan dupliseres pakker kan forsinkes unormalt INF1060 20 5
Nettverks-applikasjoner: noen begreper Oktett-strøm mellom applikasjonsprosesser En prosess er et program som kjører i en vertsmaskin. I samme vertsmaskin kommuniserer to prosesser vha. Interprosesskommunikasjon definert av operativsystemet. Prosesses som kjører i forskjellige vertsmaskiner kommuniserer vha. en applikasjonslags protokoll En brukeragent (user agent) er et grensesnitt mellom brukeren og nettverksapplikasjonen. Web: navigatør (browser) E-post: post-leser streaming audio/video: media-spiller Applik. pros TCP send buffer Applik. pros TCP receive buffer Segm. 3 Segm. 2 Segm. 1 INF1060 21 INF1060 22 Funksjonelle behov applikasjonsprosessenes behov: navning av maskiner og tjenester konvertering av navn til addresser tilgang til kommunikasjonstjenesten (API): service aksess punkt (SAP); virtuelt tilknytningspunkt mellom applikasjonsprosess og komm.hierarkiet etablering, bruk, og nedkopling av forbindelser spesifisere kvalitets-krav Overførings-syntaks inhomogene ende-systemer ulik hardware ulike operativsystemer ulike programerings-språk kommunikasjonen over nettet må foregå i en syntaks som begge sider oppfatter på samme måten INF1060 23 INF1060 24 6
Eksempel; maskinvare-forskjeller Integerverdien 34.677.374 Overføringssyntaks Applik. data Applik. data Mest signif. Minst signif. Presentasjons koding Presentasjons dekoding Big-endians 00000010 00010001 00100010 01111110 Pakke 1 Pakke 2 Pakke 3 Byte 4 Byte 1 Data må overføres i en overføringssyntaks som begge sider oppfatter på samme måte! Small-endians 01111110 00100010 00010001 00000010 Minst signifik. Mest signifik. INF1060 25 INF1060 26 Marshalling/serialisering ASN.1 eksempler Serialisering Applikasjonens datastruktur Marshalling konvertering serialisering innpakking Integer > 65 535 32-bits maskin; representert i et 32-bits ord 16-bits maskin; representert i to 16-bits ord Hver datatype kodes ved overføring: Type Lengde Verdi Type lengde type lengde verdi type lengde verdi Primitive typer: Bolean Integer Bit streng Oktett streng Null Objekt ID Objekt deskrip. Real INT 4 B1 B2 B3 B4 Struktur typer INF1060 27 INF1060 28 7
Web-en: http protokollen http protokollen: mer http: hypertext transfer protocol Web er en applikasjonslagsprotokoll klient/tjener modell klient: navigator som ber om, mottar og viser Web objekter tjener: Web tjener sender objekter som svar på forespørseler http1.0: RFC 1945 http1.1: RFC 2068 PC som kjører Explorer Mac som kjører Navigator Tjenermaskin Som kjører NCSA Web tjener Port 80 er default for http tjener. http er tilstandsløs Tjeneren vedlikeholder ingen informasjon om tidligere klientforespørseler INF1060 29 INF1060 30 Epost levering Noen viktige begreper databit samles i pakker (1000 10.000 bit) noder eller pakke-svitsjer mellom-lagring og fremsending asynkron kommunikasjon virtuelle linjer eller datagram minst to linjer ut fra hver node endesystemer med et stort antall tjenester INF1060 31 INF1060 32 8
Viktige funksjoner Viktige og nødvendige funksjoner adressering, ruting, og fremsending deteksjon og korreksjon av feil ende-til-ende pålitelighet metningskontroll multicasting overføringskvalitet INF1060 33 9