Ennå litt mer detaljer: Flere detaljerte funksjoner i datanett Foreleser: Kjell Åge Bringsrud Adressering TCP, UDP Øvre lag Applikasjonsprotokoller 16.11.2004 1 16.11.2004 2 Nettlaget Tasks of the Network Layer Server Disk Disk Client Responsible for end-to-end transport Addressing of machines Forwarding Connectionless datagram; no fixed path through the network Connection-oriented (e.g. X.25 or ATM) link Three phases: connection establishment, data transmission, teardown Fixed path through the network Relatively reliable and ordered transmission Flow control 16.11.2004 3 16.11.2004 4 1
Adresseringogruting hver ting vi vil finne frem til, må ha en adresse! adresse: en streng av bytes som enhetlig identifiserer tingen adressetyper: unicast; identifiserer et endepunkt (ting) kringkasting; identifiserer alle gruppe-kringasting; identifiserer alle i en gruppe Multicast Definition Unicast: 1:1 communication Multicast: 1:n communication Tasks To send data to a group of end systems one-time sending instead of multiple sending To maintain the overall load at a low level Results Lower network load Lower load on the sender Condition: group addressing Multicast Group membership may change, managed for example by Sender Sender Receiver Receiver Receiver Receiver Receiver Receiver 16.11.2004 5 16.11.2004 6 Task Routing: Foundations To define the route of packets through the network From the source To the destination system Routing algorithm Defines on which outgoing line an incoming packet will be transmitted Routing Routing tables can be computed based on state information about the network Data exchanged between nodes: Between neighbour nodes (distance vector routing; R) Between all nodes in the network (link state routing; OSPF, IS-IS) Route determination Datagram Routing algorithm makes individual decision for each packet Virtual circuit Routing algorithm runs only during connect (session routing) 16.11.2004 7 16.11.2004 8 2
Protokoll-arkitekturen Ruting H1 H5 1 2 4 3 TCP Ether R1 R2 Eth PTP PTP Eth TCP Ether 1 2 3 Pre- Pross. Ruting prosess Rutetabell 1 2 3 Ether 1 Ether 2 PtP 4 Fremsender 4 16.11.2004 9 16.11.2004 10 Fremsending Krav til et moderne datanett A LAN-A R R LAN-B B nodene skal ha Plug and play egenskaper ingen konfigurering ved innkopling av noder automatisk oppdage hvem som er nabo-noder hvilke naboer er operative, ikke operative utveksling av topologi informasjon på det grunnlag, beregne ruter (korteste vei) til alle andre noder i nettet 16.11.2004 11 16.11.2004 12 3
Internett Best-effort overføring Nett Internett Nett tjeneste modellen forbindelsesfri transport (datagram transport) et -datagram er ende-til-ende invariant 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 16.11.2004 13 16.11.2004 14 Formatet til -hodet Formatet til -hode 4 4 8 16 Vers. Hlen TOS Length Ident Flags Offset TTL Proto Checksum SoursAddr DestinationAddr Opsions (variable) Pad Version (4): = 4 Hlen (4): antall 32-bits ord i 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 16.11.2004 15 16.11.2004 16 4
addresses and hostnames Hostnames More exactly fully qualified host names Look like niu.ifi.uio.no Host niu In subdomain ifi, Institutt for Informatik In domain uio, Universitet i Oslo In top level domain no, Norway Who decided this?.no - IANA gave it to Uninett ( Internet Assigned Numbers Authority ).uio - Uninett gave it to UiO.ifi - USIT, UiO s drift, gave it to IFI niu - IFI drift gave it to the machine 16.11.2004 17 Adressestrukturer (v4) 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 16.11.2004 18 Adressestrukturer (v4) 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 16.11.2004 19 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 16.11.2004 20 5
Subnetting innfører et nytt adressenivå innenfor et domene [Nett-addr; Subnett-addr; Host-addr] utenfor domenet: Host-add: 129.240.128.88 Netmask: 255.255.0.0 129.240.0.0 (rutegrunnlaget utenfor domenet) innenfor domenet: Host-addr: 129.240.128.88 Netmask: 255.255.224.0 129.240.128.0 (rutegrunnlag innenfor domenet; subnet no 4) Tilbakeblikk OSI Referansemodellen: lagdelt / abstraksjonslag et lag bygger på laget under og tilbyr en verdiøket tjeneste A Transport Nett Link Fysisk Ende-til-ende 2 3 5 Kommunikasjonsmedium B Transport Nett Link Fysisk 16.11.2004 21 16.11.2004 22 Transportlaget; egenskaper Det nederste laget i referansemodellen med ende-tilende kontroll Transportlaget er hjertet i kommunikasjonen står som garantist for pålitelighet Transportlaget fjerner den siste rest av nettavhengighet Transport Ende-til-ende Datanett Transport 16.11.2004 23 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 krasj -problematikker Pålitelig nedkopling av en forbindelse: Uten tap av data Halvt åpne forbindelser Flyt-kontroll Ende-til-ende maskin Maskin-til-nett krasj -problemer 16.11.2004 24 6
Internett arkitekturen FTP HTTP NV TFTP Applikasjon Pålitelig byte-strøm TCP ICMP UDP Transport Internet TCP (Transmission Control Protocol) ARP Nett 1 Nett 2 Nett 3 Nettverk 16.11.2004 25 16.11.2004 26 Funksjoner TCP Segment format 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 16.11.2004 27 Pseudo-header SrcPort DestPort SequenceNum Acknowledgement HdrLen 0 Flags Adv.Window CheckSum UrgPointer Options (variable) Data Flags: SYN FIN ACK RESET PUSH URG Checksum: pseudo header + tcp header + data 16.11.2004 28 7
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 16.11.2004 29 Upålitelig overføring UDP (User Datagram Protocol) 16.11.2004 30 UDP Standard overføringskvalitet System arkitektur 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 Tjener LAN Disk Komm. Prog. vare Navne tjener Disk Komm. Prog. vare Klient LAN B r u k e r Internett 16.11.2004 31 16.11.2004 32 8
Network applications: some jargon Vanlige applikasjons-behov A process is a program that is running within a host. Within the same host, two processes communicate with interprocess communication defined by the OS. Processes running in different hosts communicate with an application-layer protocol A user agent is an interface between the user and the network application. Web:browser E-mail: mail reader streaming audio/video: media player garantere avlevering av pakker tillate vilkårlige pakkestørrelser avlevere pakker i riktig sekvens avlevere kun en kopi av hver pakke synkronisere samarbeidende prosesser til hverandre utøver flytkontroll støtte mange applikasjonsprosesser i hver vert 16.11.2004 33 16.11.2004 34 Oktett-strøm mellom applikasjonsprosesser Funksjonelle behov (1) Applik. pros TCP send buffer Applik. pros TCP receive buffer Segm. 3 Segm. 2 Segm. 1 applikasjonsprosessenes behov: navning av maskiner og tjenester konvertering av navn til addressering tilgang til kommunikasjonstjenesten (API): service aksess punkt (SAP); virtuelt tilknytningspunkt mellom applikasjonsprosess og komm.hierarkiet Etablering, bruk, og nedkopling av forbindelser spesifisere kvalitets-krav 16.11.2004 35 16.11.2004 36 9
Overførings-syntaks inhomogene ende-systemer ulik hardware ulike operativsystemer ulike programerings-språk Eksempel; hardwareforskjeller Integerverdien 34.677.374 Mest signif. Minst signif. Big-endians 00000010 00010001 00100010 01111110 kommunikasjonen over nettet må foregå i en syntaks som begge sider oppfatter på samme måten Small-endians Byte 4 Byte 1 01111110 00100010 00010001 00000010 Minst signifik. Mest signifik. 16.11.2004 37 16.11.2004 38 Overføringssyntaks Marshalling/serialisering Applik. data Applik. data Presentasjons koding Pakke 1 Pakke 2 Pakke 3 Presentasjons dekoding Data må overføres i en overføringssyntaks som begge sider oppfatter på samme måte Serialisering Applikasjonens datastruktur Marshalling konvertering serialisering innpakking 16.11.2004 39 16.11.2004 40 10
ASN.1 eksempler 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 INT 4 B1 B2 B3 B4 Primitive typer: Bolean Integer Bit streng Oktett streng Null Objekt ID Objekt deskrip. Real Struktur typer 16.11.2004 41 Remote Procedure Call (RPC) Directory(Name) Server import export Client (3) (1) Server (2) (7) Client stub stub proc (12) (8) (11) (4) (6) (9) transp transp net net (5) (10) 16.11.2004 42 The Web: the http protocol The http protocol: more http: hypertext transfer protocol Web s application layer protocol client/server model client: browser that requests, receives, displays Web objects server: Web server sends objects in response to requests http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Navigator http request http response http request http response Server running NCSA Web server Port 80 is default for http server. http is stateless server maintains no information about past client requests 16.11.2004 43 16.11.2004 44 11
Email delivery 16.11.2004 45 12