Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

MMT261 Publisering av digitale medier Uke 18: Klient- /tjenerinteraksjon.

Liknende presentasjoner


Presentasjon om: "MMT261 Publisering av digitale medier Uke 18: Klient- /tjenerinteraksjon."— Utskrift av presentasjonen:

1 MMT261 Publisering av digitale medier Uke 18: Klient- /tjenerinteraksjon

2 2 Agenda Klient/tjener-konseptet Hvordan klienter kommuniserer med tjenere Hvordan tjenere holder styr på klienter Koblingsorientert og koblingsfri kommunikasjon Socket-grensesnittet

3 3 Lokalnettverk vs. internettverk Lokalnettverk –LAN (Local Area Network) –Hub/svitsj –nettverksrammer Internettkommunikasjon –TCP/IP-stakken –IP-datagram –IP-ruting –TCP/UDP

4 4 Lokal datakommunikasjon: Point- to-point vs. delt medium Point-to-point-kommunikasjon –to datamaskiner koblet sammen via en datalinje –noen fordeler: stor fleksibilitet i forhold til overføringsprotokoll/hastighet, høy sikkerhet,... –noen ulemper: lite egnet ved behov for kommunikasjon mellom flere enn to datamaskiner Delt kommunikasjonskanal: –flere datamaskiner kobler seg til en felles datalinje (alle tilkoblede datamaskiner mottar samme data) –datamaskinene bruker den felles datalinjen etter tur for å sende fra seg datarammer (en sekvens med digitale bits)

5 5 Alle til alle? Direkte forbindelse mellom n punkter krever (n-1)n/2 koblinger

6 6 Problemstilling: Hvordan få to datamaskiner knyttet til et større felles nettverk til å kommunisere, uten å tvinge alle datamaskinene knyttet til nettverket til å motta og behandle hver eneste melding som passerer via det felles mediet? Løsning: Maskinvare adressering

7 7 Spesifisere en mottaker De fleste LAN-teknologier bruker et adresseringsskjema til å realisere direkte kommunikasjon –Hardware adressering (fysisk adresse, også kalt MAC adresse) –Fast i header på ramme (fields = felt): MAC adresse for mottaker og sender Destination address field Source address field –Grensesnittet mot lokalnettet (i praksis nettverkskortet) er i stand til å avgjøre om en ramme er ment for ens egen datamaskin

8 8 Pakkefiltrering med LAN-hardware (1) Nettverksgrensesnittet –Håndterer alle detaljer omkring sending/mottak av rammer på felles medium. Størrelse på innkommende rammer. CRC – feilsjekk Detektering av hvorvidt en ramme er ment til ens egen datamaskin. Sending av rammer til andre datamaskiner i nettverket. –Jobber uavhengig av CPU, slik at datamaskinen kan fortsette uavhengig av ”ventetid” mot nettverket.

9 9 Pakkefiltrering med LAN-hardware (2)

10 10 Repetisjon: Internettkommunikasjon Datakommunikasjon vha. IP-teknologi: R R R R R 158.38.25.125 209.132.177.50 FRATILDATA IP-datagram:

11 11 TCP/IP-stakken

12 12 UDP-pakker (Layer 4) Port: heltall som identifiserer hvilket av tjenerprogrammene på tjenermaskinen som skal ha datapakken Eksempel på data: DNS-spørring, videostream Koblingsfri

13 13 TCP-segmenter (Layer 4) SEQ/ACK-number: holder styr på at alle segmenter kommer fram og settes sammen i riktig rekkefølge Eksempel på data: HTTP-spørring, FTP, SMTP, POP, … ”progressive download” Koblingsorientert

14 14 IP-datagram (Layer 3) ”Address”: IP-adresser Eksempel på data: TCP-segment eller UDP-pakke

15 15 Nettverksrammer på felles medium (Layer 2) Eksempel på rammeformat: Ethernet ”Address”: MAC-adresser på nettverkskort Eksempel på ”Payload”: IP-datagram

16 16 TCP/IP-ruting IP-datagram Nettverksrammer Rutere

17 17 IP-adresser Klasse A-nettverk –128 nett, 16.777.216 adresser pr. nett –IP-adresser: 0.0.0.0 – 127.255.255.255 Klasse B-nettverk –16.384 nett, 65.536 adresser pr. nett –IP-adresser: 128.0.0.0 – 191.255.255.255 Klasse C-nettverk –2.097.152 nett, 256 adresser pr. nett –IP-adresser: 192.0.0.0 – 223.255.255.255 Klasse D-nettverk –Multicast-adresser –IP-adresser: 224.0.0.0 – 239.255.255.255 Klasse E-nettverk –Ikke i bruk –IP-adresser: 240.0.0.0 – 247.255.255.255

18 18 Spesielle IP-adresser Loopback-adresser: –127.0.0.0 – 127.255.255.255 Broadcast-adressen: –Siste adresse i nettverket –For eksempel 192.168.1.255 IANA har dessuten reservert enkelte adresser for private nett (er ikke i bruk som offisielle Internettadresser): –10.0.0.0 - 10.255.255.255 (1 A-klasse) –172.16.0.0 - 172.31.255.255 (15 B-klasser) –192.168.0.0 - 192.168.255.255 (255 C-klasser)

19 19 Multicast-adresser Unicast: en-til-en Broadcast: en-til-alle Multicast: en-til-mange Multicast-adresser: –224.0.0.0 – 244.0.0.255 Reservert for ”well-known” multicast-adresser http://www.iana.org/assignments/multicast-addresses –224.0.1.0 – 238.255.255.255 Globale (”normale”) multicast-adresser (Internett) –239.0.0.0 – 239.255.255.255 Lokale multicast-adresser

20 20 Layer 5, application Her finner vi kjente protokoller som HTTP, FTP, SMTP, POP, RTSP og RTMP Kan også lage oss egne klienter og tjenere, med egne protokoller klient transport internett nettverk tjener transport internett nettverk internett HTTP

21 21 Hva forbinder du med … Tjener Klient Klient/tjener-interaksjon Grensesnittet mellom klienten og tjeneren

22 22 Klienter Klienter – initierer kommunikasjon aktivt Karakteristika: Programmer blir klienter når de trenger informasjon som ligger på en annen datamaskin Startes direkte av brukerer og kjører én sesjon Kjøres lokalt på brukerens maskin Initierer kontakt med tjeneren aktivt Kan kontakte flere ulike tjenester om dette trengs, men en om gangen Trenger ingen spesiell maskinvare eller et avansert OS

23 23 Tjenere Tjenere – venter passivt på kontakt Karakteristika: Spesialisert og privilegert program som tilbyr én tjeneste, gjerne til flere klienter samtidig Startes automatisk ved systemstart (boot) og jobber med mange ulike sesjoner Kjører på en delt datamaskin (ikke en arbeidsstasjon) Venter passivt på å kontaktes av klienter Kan kontaktes av ulike klienter, men tilbyr én tjeneste Trenger kraftig maskinvare og spesialisert OS

24 24 Tjenere og tjenermaskiner Begrepsforvirring? Tjener – programvare som tilbyr tjenester i et nettverk Tjenermaskin – datamaskin som kjører en eller flere tjenere ”Server-class computer” – kraftig datamaskin; spesielt designet for å kjøre tjenere

25 25 Klienter, tjenere og tjenermaskiner KlientprogramvareTjenermaskin og tjenerprogramvare

26 26 Dataflyten: klient - tjener 2-veis kommunikasjon vanlig –Forespørsel fra klient medfører svar fra tjener Kontinuerlig strøm av data fra tjener –Børsinfo, værdata, Webcasts

27 27 Transport av data - Protokoller Klient og tjener kommuniserer via transportprotokoller (TCP/IP) klient transport internett nettverk tjener transport internett nettverk internett

28 28 Tjenere med flere tjenester Egne tjenerprogrammer for hver tjeneste på en enkelt tjenermaskin klient transport internett nettverk klient transport internett nettverk internett tjener transport internett nettverk tjener …

29 29 Hvem kommuniserer med hvem? Hvordan kjenner tjeneren og klienten hverandre? Transportprotokollen tilordner et unikt nummer til hver tjeneste (port nr.) Både klient og tjener angir identifikatoren: –Protokollprogramvaren bruker identifikatoren for å dirigere hver forespørsel til riktig tjener –Eksempler: 192.168.1.100:1250 (IP 192.168.1.100, port 1250) www.hint.no:80 (IP 158.38.25.13, port 80)

30 30 ”Well-known ports” For å forenkle bruken av tjenerprogram benyttes ofte faste portnr. på de mest brukte tjenestene: –http://www.iana.org/assignments/port-numbershttp://www.iana.org/assignments/port-numbers –Port 80: http/www –Port 443: https –Port 8080: http-alt –Port 21: ftp –Port 25: smtp –Port 110: pop3 –Port 23: telnet –Port 22: ssh –Port 553: rtsp –…

31 31 Samtidig utførelse Flere forespørsler til samme tjener fra flere klienter: –Hva om det etterspørres store datamengder? –Hva om det kommer veldig mange forespørsler? Løsning: –Hver enkelt forespørsel genererer en kopi av tjeneren (threads – tråder) –Kopiene kjører samtidig – concurrency

32 32 Koblingsorientert vs. koblingsfri Koblingsorientert transport betinger at klient og tjener blir enige om å kommunisere –TCP Koblingsfri transport gir en applikasjon anledning til å sende meldinger direkte til en hvilken som helst destinasjon på et hvilket som helst tidspunkt –UDP – User Datagram Protocol

33 33 Socket-grensesnittet (1) Hvordan gjøres en kobling egentlig? Hvordan er grensesnittet mellom applikasjon og protokollprogramvare?  Socket API (Application Program Interface)

34 34 Socket-grensesnittet (2) internett klient transport internett nettverk Socket API tjener transport internett nettverk Socket API

35 35 Sockets ”Sockets” ble opprinnelig utviklet som en del av I/O-systemet til operativsystemet BSD Unix Socket-API regnes for å være en ”de facto standard” som grensesnitt mellom applikasjon og kommunikasjons- protokollen De fleste operativsystemer (Windows, Mac, Linux, …) har derfor implementert sitt eget Socket(lignende) API

36 36 Hva Innebærer dette? Programmer ser Socket-API’et som et I/O system Åpne – Lese – Skrive – Lukke (Lage – Bruke – Ødelegge) En socket kan være koblet eller koblingsfri Socket - Stikkontakt

37 37 En socket-tjener og socket-klient Klient-/tjener- sekvens- diagram Tjener må kalle opp listen før klient kaller opp connect…

38 38 Java-Sockets (1) Programmeringsspråket Java tilbyr Socket- funksjonalitet gjennom klassene ServerSocket og Socket Leser og skriver til en socket på samme vis som man leser og skriver til en datafil! ServerSocket : accept() getInputStream() getOutputStream() close() : Socket : getInputStream() getOutputStream() close() : println() readLn() println() readLn() ServerSocket tjener = new ServerSocket(1250); Socket forbindelse = tjener.accept(); Socket forbindelse = new Socket("192.168.1.100", 1250); 192.168.1.100192.168.1.200

39 39 Java-Sockets (2) internett klient transport internett nettverk Socket API tjener transport internett nettverk Socket API Java (VM)


Laste ned ppt "MMT261 Publisering av digitale medier Uke 18: Klient- /tjenerinteraksjon."

Liknende presentasjoner


Annonser fra Google