Käännös Mirja Hosionaho 100%

Koko: px
Aloita esitys sivulta:

Download "Käännös Mirja Hosionaho 100%"

Transkriptio

1 Kappale 2 Käännös Mirja Hosionaho 100% Application Layer 2-1

2 Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) that you mention their source (after all, we d like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Application Layer 2-2

3 Kappale 2 Sovelluskerros A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) that you mention their source (after all, we d like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Application Layer 2-3

4 Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-4

5 Kappale 2: sisältö 2.1 verkkosovellusten periaatteet 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Pakettiohjelmointi UDP:llä ja TCP:llä Application Layer 2-5

6 Chapter 2: application layer our goals: conceptual, implementation aspects of network application protocols transport-layer service models client-server paradigm peer-to-peer paradigm learn about protocols by examining popular application-level protocols HTTP FTP SMTP / POP3 / IMAP DNS creating network applications socket API Application Layer 2-6

7 Kappale 2: sovelluskerros Tavoitteet: asiayhteys, verkon sovelluskerroksen protokollat toteutuksen näkökulmasta kuljetuskerroksen palvelumallit asiakas-palvelin esimerkki vertaisverkkoesimerkki oppia protokollista tutkimalla suosittuja sovelluskerroksen protokollia HTTP FTP SMTP / POP3 / IMAP DNS luomalla verkkosovelluksia kanta API Application Layer 2-7

8 Some network apps web text messaging remote login P2P file sharing multi-user network games streaming stored video (YouTube, Hulu, Netflix) voice over IP (e.g., Skype) real-time video conferencing social networking search Application Layer 2-8

9 Jotain verkkosovelluksia sähköposti web tekstiviestit etäyhteys vertaisverkkojen (P2P) tiedostojen jako useiden käyttäjien verkkopelit video-streaming (YouTube, Hulu, Netflix) äänen siirto IP (e.g., Skype) video konferenssit some-palvelut haku Application Layer 2-9

10 Creating a network app write programs that: run on (different) end systems communicate over network e.g., web server software communicates with browser software no need to write software for network-core devices network-core devices do not run user applications applications on end systems allows for rapid app development, propagation application transport network data link physical application transport network data link physical application transport network data link physical Application Layer 2-10

11 Verkkosovelluksen luominen tehdään ohjelmia jotka: toimivat (erilaisissa) loppujärjestelmissä viestivät verkon välityksellä esim. serverin verkkoohjelma viestii selainohjelman kanssa ei tarvetta tehdä ohjelmia verkon ytimen laitteille verkon ytimen laitteet eivät käytä käyttäjien sovelluksia loppujärjestelmien sovellukset mahdollistavat nopean sovelluskehityksen application transport network data link physical application transport network data link physical application transport network data link physical Application Layer 2-11

12 Application architectures possible structure of applications: client-server peer-to-peer (P2P) Application Layer 2-12

13 Sovellusarkkitehtuurit mahdolliset rakenteet sovelluksille: asiakas-palvelin vertaisverkot (P2P) Application Layer 2-13

14 Client-server architecture server: always-on host permanent IP address data centers for scaling client/server clients: communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other Application Layer 2-14

15 Asiakas-palvelin arkkitehtuuri client/server palvelin: aina valmiudessa pysyvä IP-osoite datakeskukset skaalaavat asiakkaat: viestivät palvelimen kanssa tarvittaessa kytkettäviä saattaa olla vaihtuvia IPosoitteita eivät viesti suoraan Application Layer 2-15

16 P2P architecture no always-on server arbitrary end systems directly communicate peers request service from other peers, provide service in return to other peers self scalability new peers bring new service capacity, as well as new service demands peers are intermittently connected and change IP addresses complex management peer-peer Application Layer 2-16

17 P2P arkkitehtuuri ei jatkuvaa valmiustilaa serverillä loppujärjestelmät voivat mielivaltaisesti viestiä keskenään päätteet pyytävät palvelua toisiltaan, ja tuottavat palvelua toisilleen itsestään skaalautuva uudet päätteet tuovat uutta palvelinkapasiteettia, kuten myös palvelupyyntöjä päätteet ovat vain ajoittain kytkettyinä, ja IP-osoitteet ovat vaihtuvia hallinta monimutkaista peer-peer Application Layer 2-17

18 Processes communicating process: program running within a host within same host, two processes communicate using inter-process communication (defined by OS) processes in different hosts communicate by exchanging messages clients, servers client process: process that initiates communication server process: process that waits to be contacted aside: applications with P2P architectures have client processes & server processes Application Layer 2-18

19 Prosessien viestintä prosessi: ohjelma pyörii isäntäkoneella sama isäntä viestii kahta prosessia käyttämällä prosessin sisäinen viestintä (käyttöjärjestelmä määrittelee) eri isäntien prosessit viestivät vaihtamalla viestejä Asiakkaat, palvelimet asiakasprosessi: aloittaa viestinnän palvelinprosessi: odottaa yhteydenottoa sivussa: P2Parkkitehtuurin sovelluksilla on asiakasprosessit ja serveriprosessit Application Layer 2-19

20 Sockets process sends/receives messages to/from its socket socket analogous to door sending process shoves message out door sending process relies on transport infrastructure on other side of door to deliver message to socket at receiving process application process socket application process controlled by app developer transport network link physical Internet transport network link physical controlled by OS Application Layer 2-20

21 Suoritinkanta prosessi lähettää/ vastaanottaa viestejä suoritinkannasta se on vähän kuin ovi prosessien lähetys työntää viestit ulos ovesta prosessien lähetys riippuu oven toisella puolella olevasta kuljetusinfrastruktuurista, että viesti lähtee vastaanottoprosessiin application process socket application process controlled by app developer transport network link physical Internet transport network link physical controlled by OS Application Layer 2-21

22 Addressing processes to receive messages, process must have identifier host device has unique 32- bit IP address Q: does IP address of host on which process runs suffice for identifying the process? A: no, many processes can be running on same host identifier includes both IP address and port numbers associated with process on host. example port numbers: HTTP server: 80 mail server: 25 to send HTTP message to gaia.cs.umass.edu web server: IP address: port number: 80 more shortly Application Layer 2-22

23 Osoittamisprosessi että voi vastaanottaa viestejä, pitää olla jokin yksilöivä tekijä isäntälaitteella on uniikki 32-bittinen IP-osoite Q: Tietääkö isännän IPosoite mitä prosesseja käytetään tunnistamiseen? A: ei, yksi isäntä voi hoitaa useita prosesseja yksilöintitieto sisältää molemmat, isännän Iposoitteen ja porttinumerot. esim. porttinumeroista: HTTP-serveri: 80 serveri: 25 lähettääkseen HTTPviestin gaia.cs.umass.edu:n verkkoserverille: IP-osoite: porttinumero: 80 lyhyemmin Application Layer 2-23

24 App-layer protocol defines types of messages exchanged, e.g., request, response message syntax: what fields in messages & how fields are delineated message semantics meaning of information in fields rules for when and how processes send & respond to messages open protocols: defined in RFCs allows for interoperability e.g., HTTP, SMTP proprietary protocols: e.g., Skype Application Layer 2-24

25 Sovelluskerroksen protokollat määrittelevät viestien tyypin, e.g., pyyntö, vastaus viestin muodostustavan: mitä kenttiä viesteissä & miten kentät muotoillaan viestin merkitys kenttien tiedon merkitys säännöt, koska ja miten prosessit lähetetään & miten vastataan avoimet protokollat: määritetään RFC:ssä sallivat yhteentoimivuuden e.g., HTTP, SMTP sovelluskohtaiset protokollat: e.g., Skype Application Layer 2-25

26 What transport service does an app need? data integrity some apps (e.g., file transfer, web transactions) require 100% reliable data transfer other apps (e.g., audio) can tolerate some loss timing some apps (e.g., Internet telephony, interactive games) require low delay to be effective throughput some apps (e.g., multimedia) require minimum amount of throughput to be effective other apps ( elastic apps ) make use of whatever throughput they get security encryption, data integrity, Application Layer 2-26

27 Mitä kuljetuspalvelua sovellus tarvitsee? tiedon eheytys jotkut sovellukset (esim tiedonsiirto, verkkoliiketoiminta) vaativat 100% luotettavan datasiirron muut sovellukset (e.g., ääni) kestää häviötä ajoitus jotkut sovellukset (esim Internet-puhelut, interaktiiviset pelit) vaativat pienen viiveen ollakseen tehokkaita läpimeno jotkut sovellukset (esim multimedia) vaatii tarpeeksi suoritustehoa ollakseen tehokkaita toiset sovellukset ( joustavat sovellukset ) hyötyvät mistä tahansa suoritustehosta turvallisuus salaus, datan eheys, Application Layer 2-27

28 Transport service requirements: common apps application data loss throughput time sensitive file transfer Web documents real-time audio/video stored audio/video interactive games text messaging no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5mbps same as above few kbps up elastic no no no yes, 100 s msec yes, few secs yes, 100 s msec yes and no Application Layer 2-28

29 Kuljetuspalvelun vaatimukset: yleiset sovellukset sovellus tiedonsiirto verkkodokumentit real-time ääni/video tallennettu audio/video interaktiiviset pelit tekstiviestit data häviö Ei yhtään Ei yhtään Ei yhtään kestää kestää Ei yhtään suorituskyky joustava joustava joustava ääni: 5kbps-1Mbps video:10kbps-5mbps Pari kbps enemmän joustava aikaherkkyys Ei ole Ei ole Ei ole kyllä, 100 s mse Kyllä, pari seck Kyllä, 100 s Kyllä ja ei Application Layer 2-29

30 Internet transport protocols services TCP service: reliable transport between sending and receiving process flow control: sender won t overwhelm receiver congestion control: throttle sender when network overloaded does not provide: timing, minimum throughput guarantee, security connection-oriented: setup required between client and server processes UDP service: unreliable data transfer between sending and receiving process does not provide: reliability, flow control, congestion control, timing, throughput guarantee, security, orconnection setup, Q: why bother? Why is there a UDP? Application Layer 2-30

31 Internet-kuljetusprotokollien palvelut TCP-palvelu: luotettava siirto: lähettävän ja vastaanottavan prosessin välillä vuon valvonta: lähettäjä ei tuki vastaanottajaa ruuhkan valvonta: hallita lähettäjää kun verkko ylikuormittunut ei tarjoa: ajoitusta, min. läpimenon takuita, turvaa yhteysorientoitunut: vaaditaan yhteiset asetukset asiakas ja serveriprosesseille UDP-palvelu: epäluotettava datasiirto: lähetys- ja vastaanottoprosessien välillä ei tarjoa: luotettavuutta, vuon valvontaa, ruuhkan valvontaa, ajoitusta, läpimenon takuita, turvaa tai yhteydenmuotostusta, Q: miksi siis UDP on olemassa? Application Layer 2-31

32 Internet apps: application, transport protocols application remote terminal access Web file transfer streaming multimedia Internet telephony application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e.g., YouTube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) underlying transport protocol TCP TCP TCP TCP TCP or UDP TCP or UDP Application Layer 2-32

33 Internet-sovellukset: sovellus, kuljetus protokollat application remote terminal access Web file transfer streaming multimedia Internet telephony application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e.g., YouTube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) underlying transport protocol TCP TCP TCP TCP TCP or UDP TCP or UDP Application Layer 2-33

34 Securing TCP TCP & UDP no encryption cleartext passwds sent into socket traverse Internet in cleartext SSL provides encrypted TCP connection data integrity end-point authentication SSL is at app layer Apps use SSL libraries, which talk to TCP SSL socket API cleartext passwds sent into socket traverse Internet encrypted See Chapter 7 Application Layer 2-34

35 TCP:n turvallisuus TCP & UDP ei salausta suojaamattomat salasanat lähetetään suoritinkannalle SSL tarjoaa salatun TCPyhteyden datan eheys loppupisteen tunnistus SSL on sovelluskerroksella Sovellukset käyttävät SSLkirjastoja, jotka juttelevat TCP:lle SSL-suoritinkannan API suojaamattomat salasanat lähetetään suoritinkannalle Internetsalattuina ks. Kpl 7 Application Layer 2-35

36 Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-36

37 Kappale 2: sisältö 2.1 verkkosovellusten periaatteet 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Pakettiohjelmointi UDP:llä ja TCP:llä Application Layer 2-37

38 Web and HTTP First, a review web page consists of objects object can be HTML file, JPEG image, Java applet, audio file, web page consists of base HTML-file which includes several referenced objects each object is addressable by a URL, e.g., host name path name Application Layer 2-38

39 Verkko ja HTTP Ensin arvio verkkosivu muodostuu objekteista se voi olla HTML-tiedosto, JPEG kuva, Java sovelluksista, audiotiedostoista, verkkosivu sisältää HTML-tiedoston johon kuuluu useita objekteja jokaisella on URL-osoite, e.g., host name path name Application Layer 2-39

40 HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol client/server model client: browser that requests, receives, (using HTTP protocol) and displays Web objects server: Web server sends (using HTTP protocol) objects in response to requests PC running Firefox browser iphone running Safari browser server running Apache Web server Application Layer 2-40

41 HTTP katsaus HTTP: hypertext transfer protocol Verkon sovelluskerroksen protokolla asiakas/palvelinmalli asiakas: selain joka pyytää, vastaanottaa, (käyttää HTTP-prot.) ja näyttää Web-objektit palvelin: Web-serveri lähettää (käyttää HTTP protokollaa) objektin pyynnän seurauksena PC running Firefox browser iphone running Safari browser server running Apache Web server Application Layer 2-41

42 HTTP overview (continued) uses TCP: client initiates TCP connection (creates socket) to server, port 80 server accepts TCP connection from client HTTP messages (application-layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) TCP connection closed HTTP is stateless server maintains no information about past client requests aside protocols that maintain state are complex! past history (state) must be maintained if server/client crashes, their views of state may be inconsistent, must be reconciled Application Layer 2-42

43 HTTP katsaus jatkuu Käyttää TCP:tä: asiakas aloittaa TCPyhteyden (luo suoritinkannan) serverille, portti 80 serveri hyväksyy TCPyhteyden asiakkaalta HTTP-viestit (sovelluskerroksen protokollaviestit) vaihtavat selain (HTTP-asiakas) ja Web serveri (HTTP-serveri) TCP yhteys suljetaan HTTP on vaiheeton Serveri ei säilytä tietoa menneist pyynnöistä aside Protokollat jotka säilyttävät vaiheet ovat monimutkaisia! historia (vaiheet) pitää säilyttää jos serveri/asiakas kaatuu, niiden näkemykset vaiheesta voivat olla erilaiset, ja ne joudutaan sovittaa yhteen Application Layer 2-43

44 HTTP connections non-persistent HTTP at most one object sent over TCP connection connection then closed downloading multiple objects required multiple connections persistent HTTP multiple objects can be sent over single TCP connection between client, server Application Layer 2-44

45 HTTP-yhteydet ei-pysyvä HTTP yksi objekti lähetetään TCPyhteyden aikana yhteys suljetaan useiden objektien lataaminen vaatii useita yhteyksiä pysyvä HTTP useita objekteja yhden yhteyden aikana Application Layer 2-45

46 Non-persistent HTTP suppose user enters URL: time 1a. HTTP client initiates TCP connection to HTTP server (process) at on port HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object somedepartment/home.index (contains text, references to 10 jpeg images) 1b. HTTP server at host waiting for TCP connection at port 80. accepts connection, notifying client 3. HTTP server receives request message, forms response message containing requested object, and sends message into its socket Application Layer 2-46

47 Ei pysyvä HTTP suppose user enters URL: time 1a. HTTP-asiakas aloittaa TCP yhteyden HTTP serverille (prosessi) at on port HTTP-asiakas lähettää HTTP r pyyntöviestin (sisältää URLin) TCPyhteyden kantaan. Viesti keroo, että asiaskas haluaa objektin: somedepartment/home.index (contains text, references to 10 jpeg images) 1b. HTTP server palvelimella odottaa TCP-yhteyttä portissa 80. hyväksyy yhteyden, ilmoittaa asiakkaalle 3. HTTP serveri vastaanottaa pyynnön, muodostaa vastausviestin jossa on pyydetty objekti, ja lähettää viestin kantaan Application Layer 2-47

48 Non-persistent HTTP (cont.) 5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 4. HTTP server closes TCP connection. time 6. Steps 1-5 repeated for each of 10 jpeg objects Application Layer 2-48

49 Ei-pysyvä HTTP (jatkuu) 5. HTTP asiakas vastaanottaa viestin, jossa on html-tiedosto. Jäsentää tiedoston ja löytää 10 pyydettyä jpeg-objektia. 4. HTTP serveri sulkee TCP yhteyden. time 6.Vaiheet 1-5 toistetaan jokaiselle kymmenelle objektille Application Layer 2-49

50 Non-persistent HTTP: response time RTT (definition): time for a small packet to travel from client to server and back HTTP response time: one RTT to initiate TCP connection one RTT for HTTP request and first few bytes of HTTP response to return file transmission time non-persistent HTTP response time = 2RTT+ file transmission time initiate TCP connection RTT request file RTT file received time time time to transmit file Application Layer 2-50

51 Ei pysyvä HTTP: vastausaika RTT (määritelmä): aika, jona paketti matkustaa asiakkaalta serverille ja takaisin HTTP vastausaika: yksi RTT TCP-yhteyden aloittamiseen yksi RTT HTTP-pyyntöön ja HTTP-vastauksen muutaman ensimmäisen tavun saapumiseen tiedoston lähetysaika ei-pysyvän HTTPyhteyden vasteaika = 2RTT + tiedoston siirtoaika initiate TCP connection RTT request file RTT file received time time time to transmit file Application Layer 2-51

52 Persistent HTTP non-persistent HTTP issues: requires 2 RTTs per object OS overhead for each TCP connection browsers often open parallel TCP connections to fetch referenced objects persistent HTTP: server leaves connection open after sending response subsequent HTTP messages between same client/server sent over open connection client sends requests as soon as it encounters a referenced object as little as one RTT for all the referenced objects Application Layer 2-52

53 Pysyvä HTTP ei-pysyvän ongelmat: vaatii 2 RTT:tä per objekti käyttöjärjestelmän joutuu avaamaan jokaisen TCPyhteyden selaimet monesti avaavat rinnakkaisia TCP-yhteyksiä hakeakseen pyydettyjä objekteja pysyvä HTTP: palvelin jättää yhteyden auki vastauksen jälkeen myöhemmät HTTPviestit asiakaspalvelinyhteydessä lähetetään avoimella yhteydellä asiakas lähettää pyynnöt heti kun se löytää tarvittavat objektit vain yksi RTT kaikille pyydetyille objekteille Application Layer 2-53

54 HTTP request message two types of HTTP messages: request, response HTTP request message: ASCII (human-readable format) request line (GET, POST, HEAD commands) header lines carriage return, line feed at start of line indicates end of header lines carriage return character line-feed character GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO ,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n Application Layer 2-54

55 HTTP pyyntöviesti on kahdenlaisia HTTP-viestejä: pyynnöt ja vastaukset HTTP-pyyntö: ASCII (ihmisen luettavassa muodossa) request line (GET, POST, HEAD commands) header lines carriage return, line feed at start of line indicates end of header lines carriage return character line-feed character GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO ,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n Application Layer 2-55

56 HTTP request message: general format method sp URL sp version cr lf header field name value ~~ ~ cr lf request line header lines header field name value cr lf cr lf entity body ~ ~ ~ body Application Layer 2-56

57 HTTP-pyyntöviesti: yleinen muoto method sp URL sp version cr lf header field name value ~~ ~ cr lf pyyntörivi otsikkorivit header field name value cr lf cr lf entity body ~ ~ ~ Body/teksti Application Layer 2-57

58 Uploading form input POST method: web page often includes form input input is uploaded to server in entity body URL method: uses GET method input is uploaded in URL field of request line: Application Layer 2-58

59 Latauksen syöte POST metodi: Web-sivuilla on usein lomakesyöte Syöte ladataan serverille kokonaisuudessaan URL metodi: käyttää GET metodia Syöte ladataan URLkentän pyyntörivistä: Application Layer 2-59

60 Method types HTTP/1.0: GET POST HEAD asks server to leave requested object out of response HTTP/1.1: GET, POST, HEAD PUT uploads file in entity body to path specified in URL field DELETE deletes file specified in the URL field Application Layer 2-60

61 Eri tavat HTTP/1.0: GET POST HEAD Pyytää serveriä jättämään pyydetyt objektit pois vastauksesta HTTP/1.1: GET, POST, HEAD PUT Lataa tiedoston kokonaisuudessaan polun määrittelemän URL-kenttään DELETE Poistaa URL_ssa määritellyn tiedoston Application Layer 2-61

62 HTTP response message status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/ OK\r\n Date: Sun, 26 Sep :09:20 GMT\r\n Server: Apache/ (CentOS)\r\n Last-Modified: Tue, 30 Oct :00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=iso \r\n \r\n data data data data data... Application Layer 2-62

63 HTTP-vastausviesti statusrivi (protokollan statuskoodi statuslauseke) Otsikko rivit data, e.g., Pyydetty HTML-tiedosto HTTP/ OK\r\n Date: Sun, 26 Sep :09:20 GMT\r\n Server: Apache/ (CentOS)\r\n Last-Modified: Tue, 30 Oct :00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=iso \r\n \r\n data data data data data... Application Layer 2-63

64 HTTP response status codes status code appears in 1st line in server-toclient response message. some sample codes: 200 OK request succeeded, requested object later in this msg 301 Moved Permanently requested object moved, new location specified later in this msg (Location:) 400 Bad Request request msg not understood by server 404 Not Found requested document not found on this server 505 HTTP Version Not Supported Application Layer 2-64

65 HTTP-vastauksen statuskoodit statuskoodi on 1. rivillä serveri-asiakas vastausviestissä. muutamia esimerkkikoodeja: 200 OK pyyntö onnistui, pyydetty objekti viestissä mukana 301 Moved Permanently pyydetty objekti poistettu, uusi sijainti määritelty myöhemmin tässä viestissä (Sijainti:) 400 Bad Request serveri ei ymmärtänyt viestin pyyntöä 404 Not Found pyydettyä objektia ei löytynyt serveriltä 505 HTTP Version Not Supported Application Layer 2-65

66 Trying out HTTP (client side) for yourself 1. Telnet to your favorite Web server: telnet cis.poly.edu 80 opens TCP connection to port 80 (default HTTP server port) at cis.poly.edu. anything typed in sent to port 80 at cis.poly.edu 2. type in a GET HTTP request: GET /~ross/ HTTP/1.1 Host: cis.poly.edu by typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server 3. look at response message sent by HTTP server! (or use Wireshark to look at captured HTTP request/response) Application Layer 2-66

67 Kokeile (asiakaspuoli) itse 1. Telnet sinun suosikki Web server: telnet cis.poly.edu 80 opens TCP connection to port 80 (default HTTP server port) at cis.poly.edu. anything typed in sent to port 80 at cis.poly.edu 2. kirjoita GET HTTP pyyntö: GET /~ross/ HTTP/1.1 Host: cis.poly.edu by typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server 3. katso HTTP serverin vastaus (tai käytä Wiresharkia katosaksesi HTTP pyyntöä/vastausta) Application Layer 2-67

68 User-server state: cookies many Web sites use cookies four components: 1) cookie header line of HTTP response message 2) cookie header line in next HTTP request message 3) cookie file kept on user s host, managed by user s browser 4) back-end database at Web site example: Susan always access Internet from PC visits specific e-commerce site for first time when initial HTTP requests arrives at site, site creates: unique ID entry in backend database for ID Application Layer 2-68

69 Käyttäjä-serveri vaihe: keksit monet sivustot käyttävät keksejä (cookies) neljä osaa: 1) keksin otsikkorivi HTTPvastausviestissä 2) keksin otsikkorivi seuraavassa HTTP pyyntöviestissä 3) keksitiedosto pidetään käyttäjän koneella, selain hallinnoi sitä 4) back-end tietokanta verkkosivulla esim: Susan käyttää aina PC:tä netissä käydessään hän käy tietyssä verkkokaupassa ensimmäistä kertaa kun HTTP-pyynnöt saapuvat sivulle, sivu luo: uniikin ID:n pääsyn back-end tietokantaan ID:lle Application Layer 2-69

70 Cookies: keeping state (cont.) client server ebay 8734 cookie file ebay 8734 amazon 1678 usual http request msg usual http response set-cookie: 1678 Amazon server creates ID 1678 for user create entry backend database usual http request msg cookie: 1678 usual http response msg cookiespecific action access one week later: ebay 8734 amazon 1678 usual http request msg cookie: 1678 usual http response msg cookiespecific action access Application Layer 2-70

71 Keksit: pysyvät muodossaan asiakas serveri ebay 8734 cookie file ebay 8734 amazon 1678 usual http request msg usual http response set-cookie: 1678 Amazon server creates ID 1678 for user create entry backend database usual http request msg cookie: 1678 usual http response msg cookiespecific action access one week later: ebay 8734 amazon 1678 usual http request msg cookie: 1678 usual http response msg cookiespecific action access Application Layer 2-71

72 Cookies (continued) what cookies can be used for: authorization shopping carts recommendations user session state (Web ) aside cookies and privacy: cookies permit sites to learn a lot about you you may supply name and to sites how to keep state : protocol endpoints: maintain state at sender/receiver over multiple transactions cookies: http messages carry state Application Layer 2-72

73 Keksit (jatkuu) mihin keksejä voidaan käyttää: sisäänpääsyyn ostoskoreihin suosituksiin käyttäjän seuraamiseen (web & ) miten pitää muoto : protokollien loppupisteet: säilyttää lähettäjä/vastaanottaja vaiheet useiden toimintojen jälkeen keksit: http-viestit kuljettavat vaiheet aside keksit ja yksityisyys: keksit antavat sivujen oppia sinusta paljon saatat antaa myös nimesi ja osoitteesi sivuille Application Layer 2-73

74 Web caches (proxy server) goal: satisfy client request without involving origin server user sets browser: Web accesses via cache browser sends all HTTP requests to cache object in cache: cache returns object else cache requests object from origin server, then returns object to client client client proxy server origin server origin server Application Layer 2-74

75 Verkon välimuistit (välityspalvelin) tavoite: vastata asiakkaan pyyntöön ilman alkuperäistä serveriä käyttäjä asettaa selaimeen: Web-pääsy välimuistin kautta selain lähettää kaikki HTTP-pyynnöt välimuistiin objekti välimuistissa: välimuisti palauttaa objektin välimuisti pyytää alkuperäiseltä serveriltä tiedostot, ja toimittaa ne asiakkaalle client client proxy server origin server origin server Application Layer 2-75

76 More about Web caching cache acts as both client and server server for original requesting client client to origin server typically cache is installed by ISP (university, company, residential ISP) why Web caching? reduce response time for client request reduce traffic on an institution s access link Internet dense with caches: enables poor content providers to effectively deliver content (so too does P2P file sharing) Application Layer 2-76

77 Lisää verkon välimuistista välimuisti toimii sekä asiakkaana ja serverinä serveri asiakkaan alkuperäisille pyynnöille asiakas alkuperäiselle serverille yleensä välimuisti on palveluntarjoajaila (yliopisto, yritys, kodin yhteydentarjoaja) miksi välimuisti? vähentää asiakaspyyntöjen vastausaikaa vähentää liikennettä Organisaation pääsylinkeissä Internet tyhmentyy välimuistilla: se mahdollistaa huonoille sisällöntarjoajille sisällön tehokkaan toimituksen (kuten tekee myös P2P tiedostonjako) Application Layer 2-77

78 Caching example: assumptions: avg object size: 100K bits avg request rate from browsers to origin servers:15/sec avg data rate to browsers: 1.50 Mbps RTT from institutional router to any origin server: 2 sec access link rate: 1.54 Mbps consequences: LAN utilization: 15% problem! access link utilization = 99% total delay = Internet delay + access delay + LAN delay = 2 sec + minutes + usecs institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN Application Layer 2-78

79 Esimerkki välimuistin käytöstä: oletukset: keskim. objektin koko: 100K bits keskim pyyntötaso selaimilta alkuperäisille servereille: 15/sec keskim. datan siirtotaso selaimille: 1.50 Mbps RTT organisaation reitittimeltä mihin tahansa serverille: 2 sec linkin pääsytaso: 1.54 Mbps seuraukset: problem! LAN käyttö: 15% linkin pääsytason käyttö = 99% viive = Internet viive + pääsyviive + LAN viive = 2 se + minutes + usecs institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN Application Layer 2-79

80 Välimuistin esim: paksumpi pääsylinkki oletukset: keskim. objektin koko: 100K bits keskim pyyntötaso selaimilta alkuperäisille servereille: 15/sec keskim. datan siirtotaso selaimille: 1.50 Mbps RTT organisaation reitittimeltä mihin tahansa serverille: 2 sec linkin pääsytaso: 1.54 Mbps seuraukset: LAN käyttö: 15% 9.9% linkin pääsytason käyttö = 99% viive = Internet viive + pääsyviive +LAN viive = 2 se + minutes msecs + usecs 1.54 Mbps access link origin servers 154 Mbps 154 Mbps institutional network public Internet Cost: increased access link speed (not cheap!) 1 Gbps LAN Application Layer 2-80

81 Caching example: install local cache assumptions: avg object size: 100K bits avg request rate from browsers to origin servers:15/sec avg data rate to browsers: 1.50 Mbps RTT from institutional router to any origin server: 2 sec access link rate: 1.54 Mbps consequences: LAN utilization: 15% access link utilization = 100%? total delay = Internet? delay + access delay + LAN delay How to compute link = 2 sec + minutes + usecs utilization, delay? Cost: web cache (cheap!) institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN local web cache Application Layer 2-81

82 Välimuistin esim: asenna pkvälimuisti oletukset: keskim. objektin koko: 100K bits keskim pyyntötaso selaimilta alkuperäisille servereille: 15/sec keskim. datan siirtotaso selaimille: 1.50 Mbps RTT organisaation reitittimeltä mihin tahansa serverille: 2 sec linkin pääsytaso: 1.54 Mbps consequences: LAN käyttö: 15%? Linkin pääsytason käyttö= 100%? total delay = Internet delay + access delay How + LAN to delay compute link = 2 sec utilization, + minutes + delay? usecs Kulu: välimuisti (halpa!) institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN local web cache Application Layer 2-82

83 Caching example: install local cache Calculating access link utilization, delay with cache: suppose cache hit rate is % requests satisfied at cache, 60% requests satisfied at origin access link utilization: 60% of requests use access link data rate to browsers over access link = 0.6*1.50 Mbps =.9 Mbps utilization = 0.9/1.54 =.58 total delay = 0.6 * (delay from origin servers) +0.4 * (delay when satisfied at cache) = 0.6 (2.01) (~msecs) = ~ 1.2 secs less than with 154 Mbps link (and cheaper too!) institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN local web cache Application Layer 2-83

84 Välimuistin esim: asenna pkvälimuisti Lasketaan pääsylinkin käyttö ja viive välimuistilla: oletetaan, että välimuistin taso on % pyynnöistä saadaan toimitettua välimuistilla, 60% pyynnöistä alkuperäisellä serverillä pääsylinkin käyttö: 60% pyynnöistä käyttää pääsylinkkiä datan nopeus selaimille pääsylinkin kautta = 0.6*1.50 Mbps =.9 Mbps käyttö = 0.9/1.54 =.58 viive = 0.6 * (viive alkup. serveriltä) +0.4 * (viive välimuistilta) = 0.6 (2.01) (~msecs) = ~ 1.2 secs Vähemmän kuin 154 Mbps linkki (ja halvempi!) institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN local web cache Application Layer 2-84

85 Ehdollinen GET Tavoite: älä lähetä objektia, jos välimuistissa on ajantasalla oleva versio ei objektien siirtoviivettä alempi linkkien käyttö välimuisti: tarkenna välimuistin kopion päivä HTTP-pyynnössä If-modified-since: <date> serveri: vastaus ei sisällä objektia jos kopio on ajantasalla: HTTP/ Not Modified client HTTP request msg If-modified-since: <date> HTTP response HTTP/ Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/ OK <data> server object not modified before <date> object modified after <date> Application Layer 2-85

86 Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-86

87 Kappale 2: sisällys 2.1 verkkosovellusten periaatteet sovellusarkkitehtuurit sovellusten vaatimukset 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Paketointiohjelmointi UDP:llä ja TCP:llä Application Layer 2-87

88 FTP: the file transfer protocol user at host FTP user interface FTP client local file system file transfer FTP server remote file system transfer file to/from remote host client/server model client: side that initiates transfer (either to/from remote) server: remote host ftp: RFC 959 ftp server: port 21 Application Layer 2-88

89 FTP: tiedonsiirtoprotokolla user at host FTP user interface FTP client local file system file transfer FTP server remote file system siirtää tiedostoja palvelimelle/-lta asiakas/palvelinmalli asiakas: aloittaa siirron (palvelimelle/-lta) palvelin: etäisäntä ftp: RFC 959 ftp serveri: port 21 Application Layer 2-89

90 FTP: separate control, data connections FTP client contacts FTP server at port 21, using TCP client authorized over control connection client browses remote directory, sends commands over control connection when server receives file transfer command, server opens 2 nd TCP data connection (for file) to client after transferring one file, server closes data connection FTP client TCP control connection, server port 21 TCP data connection, server port 20 FTP server server opens another TCP data connection to transfer another file control connection: out of band FTP server maintains state : current directory, earlier authentication Application Layer 2-90

91 FTP: erillinen hallinta ja datayhteydet FTP-asiakaskontakti FTPserverillä portissa 21, käyttää TCP:tä asiakas hyväksytty hallitun yhteyden kautta asiakas selaa etähakemistoa, lähettää pyyntöjä hallintayhteyden yli kun palvelin vastaanottaa tiedonsiirtokäskyn, palvelin avaa 2nd TCP datayhteyden (tiedostolle) asiakkaan suuntaan tidoston siirron jälkeen, server sulkee datayhteyden FTP client TCP control connection, server port 21 TCP data connection, server port 20 FTP server palvelin avaa toisen TCPdatayhteyden siirtääkseen toisen tiedoston yhteydenhallinta: kaista lopussa FTP-serveri säilyttää maintains vaiheensa : nykyinen hakemisto, aiemmin tunnistus Application Layer 2-91

92 FTP commands, responses sample commands: sent as ASCII text over control channel USER username PASS password LIST return list of file in current directory RETR filename retrieves (gets) file STOR filename stores (puts) file onto remote host sample return codes status code and phrase (as in HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file Application Layer 2-92

93 FTP komennot, vastaukset esimerkkikäskyt: lähetetään ASCII tekstinä hallintakanavan yli USER username PASS password LIST palauttaa listan hakemiston tiedostoista RETR filename palauttaa (hakee) tiedoston STOR filename säilyttää (laittaa) tiedoston etäpalvelimelle Esimerkki palautuskoodit status code and phrase (as in HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file Application Layer 2-93

94 Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-94

95 Kappale 2: sisällys 2.1 verkkosovellusten periaatteet sovellusarkkitehtuurit sovellusten vaatimukset 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Pakettiohjelmointi UDP:llä ja TCP:llä Application Layer 2-95

96 Electronic mail Three major components: user agents mail servers simple mail transfer protocol: SMTP User Agent a.k.a. mail reader composing, editing, reading mail messages e.g., Outlook, Thunderbird, iphone mail client outgoing, incoming messages stored on server mail server SMTP mail server user agent user agent SMTP SMTP user agent outgoing message queue mail server user mailbox user agent user agent user agent Application Layer 2-96

97 Sähköposti Kolme pääosaa: käyttäjät postipalvelimet yksinkertainen postin siirtoprotokolla: SMTP Käyttäjät (agentit) a.k.a. postin lukijat luovat, editoivat, lukevat sähköposteja e.g., Outlook, Thunderbird, iphone sähköpostiohjelma lähtevät, saapuvat viestit säilytetään serverillä mail server SMTP mail server user agent user agent SMTP SMTP user agent outgoing message queue mail server user mailbox user agent user agent user agent Application Layer 2-97

98 Electronic mail: mail servers mail servers: mailbox contains incoming messages for user message queue of outgoing (to be sent) mail messages SMTP protocol between mail servers to send messages client: sending mail server server : receiving mail server mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent Application Layer 2-98

99 Sähköposti: postipalvelimet postin palvelimet: postilaatikko sisältää käyttäjälle saapuvat viestit viestijono lähtevistä viesteistä (tullaan lähettämään) SMTP-protokolla postipalvelimen ja viestin lähetyksen välillä asiakas: lähettää viestin palvelimelle palvelin : vastaanottaa viestin palvelimella mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent Application Layer 2-99

100 Electronic Mail: SMTP [RFC 2821] uses TCP to reliably transfer message from client to server, port 25 direct transfer: sending server to receiving server three phases of transfer handshaking (greeting) transfer of messages closure command/response interaction (like HTTP, FTP) commands: ASCII text response: status code and phrase messages must be in 7-bit ASCI Application Layer 2-100

101 Sähköposti: SMTP [RFC 2821] käyttää TCP:tä luotettavaan postin siirtoon asiakkaalta serverille, portti 25 suora siirto: lähettäjän serveri vastaanottajan serverille kolme siirron vaihetta kättely (tervehtiminen) viestien siirto lopetus käsky/vastaus viestintä (like HTTP, FTP) käskyt: ASCII text vastaukset: statustilanne ja lauseet viestien pitää olla 7-bit ASCI Application Layer 2-101

102 Scenario: Alice sends message to Bob 1) Alice uses UA to compose message to 2) Alice s UA sends message to her mail server; message placed in message queue 3) client side of SMTP opens TCP connection with Bob s mail server 4) SMTP client sends Alice s message over the TCP connection 5) Bob s mail server places the message in Bob s mailbox 6) Bob invokes his user agent to read message 1 user agent mail server mail server 6 user agent Alice s mail server 5 Bob s mail server Application Layer 2-102

103 Tilanne: Alice lähettää viestin Bobille 1) Alice käyttää UA:ta kirjoittakseen viestin 2) Alicen UA lähettää viestin hänen meiliserverilleen; viesti on laitettu viestijonoon 3) asiakaspuolen SMTP avaa TCP-yhteyden Bobin meilipalvelimelle 1 user agent mail server 2 3 Alice s mail server 4 4) SMTP asiakas lähettää Alicen viestin TCPyhteyden yli 5) Bobin meilipalvelin sijoittaa viestin Bobin postilaatikkoon 6) Bob avaa sähköpostiohjelman lukeakseen viestin mail server 5 Bob s mail server 6 user agent Application Layer 2-103

104 Sample SMTP interaction S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: 250 Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection Application Layer 2-104

105 Esimerkki SMTP keskustelu S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: 250 Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection Application Layer 2-105

106 Try SMTP interaction for yourself: telnet servername 25 see 220 reply from server enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send without using client (reader) Application Layer 2-106

107 Kokeile SMTP toimintaa itse: telnet servername 25 ks 220 vastaus serveriltä laita HELO, MAIL FROM, RCPT TO, DATA, QUIT käskyt toiminta yllä antaa sinun lähettä Application Layer 2-107

108 SMTP: final words SMTP uses persistent connections SMTP requires message (header & body) to be in 7-bit ASCII SMTP server uses CRLF.CRLF to determine end of message comparison with HTTP: HTTP: pull SMTP: push both have ASCII command/response interaction, status codes HTTP: each object encapsulated in its own response msg SMTP: multiple objects sent in multipart msg Application Layer 2-108

109 SMTP: lopuksi SMTP käyttää jatkuvia yhteyksiä SMTP vaatii viestin olevan (otsikko & teksti) 7-bit ASCII-muodossa SMTP-serveri käyttää CRLF.CRLF määrittääkseen viestin lopun vertailu HTTP: vetää SMTP: työntää molemmat käyttävät ASCII käsky/vastaus kommunikointia, statuskoodeja HTTP: jokainen objekti on kapseloitu omaan vastausviestiin SMTP: useita objekteja lähetetään osina Application Layer 2-109

110 Mail message format SMTP: protocol for exchanging msgs RFC 822: standard for text message format: header lines, e.g., To: From: Subject: different from SMTP MAIL FROM, RCPT TO: commands! Body: the message ASCII characters only header body blank line Application Layer 2-110

111 Sähköpostin muoto SMTP: protokolla sähköpostin vaihtoon RFC 822: standardi tekstiviestin muodoksi: otsikkorivit, e.g., Vastaanottaja: Lähettäjä: Aihe: erilainen kuin SMTP MAIL FROM, RCPT TO: käskyt Teksti: itse viesti vain ASCII-merkkejä header body blank line Application Layer 2-111

112 Mail access protocols user agent SMTP SMTP mail access protocol (e.g., POP, IMAP) user agent sender s mail server receiver s mail server SMTP: delivery/storage to receiver s server mail access protocol: retrieval from server POP: Post Office Protocol [RFC 1939]: authorization, download IMAP: Internet Mail Access Protocol [RFC 1730]: more features, including manipulation of stored msgs on server HTTP: gmail, Hotmail, Yahoo! Mail, etc. Application Layer 2-112

113 Sähköpostin pääsyprotokollat user agent SMTP SMTP mail access protocol (e.g., POP, IMAP) user agent sender s mail server receiver s mail server SMTP: lähetys/varastointi vastaanottajan serverille Meilin pääsyprotokolla: palautetaan serveriltä POP: Post Office Protocol [RFC 1939]: tunnistus, lataus IMAP: Internet Mail Access Protocol [RFC 1730]: enemmän ominaisuuksia, mm. säilytettävien viestin muokkaus serverillä HTTP: gmail, Hotmail, Yahoo! Mail, etc. Application Layer 2-113

114 POP3 protocol authorization phase client commands: user: declare username pass: password server responses +OK -ERR transaction phase, client: list: list message numbers retr: retrieve message by number dele: delete quit S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on C: list S: S: S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server signing off Application Layer 2-114

115 POP3 protokolla tunnistusvaihe asiakkaan käskyt: user: declare username pass: password palvelimen vastaukset +OK -ERR toimintavaihe, asiakas: list: listaa viestien numerot retr: palauttaa tietyn viestin numeron perusteella dele: delete S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on C: list S: S: S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server signing off Application Layer 2-115

116 POP3 (more) and IMAP more about POP3 previous example uses POP3 download and delete mode Bob cannot re-read e- mail if he changes client POP3 download-andkeep : copies of messages on different clients POP3 is stateless across sessions IMAP keeps all messages in one place: at server allows user to organize messages in folders keeps user state across sessions: names of folders and mappings between message IDs and folder name Application Layer 2-116

117 POP3 (lisää) ja IMAP Lisää POP3:sta aiemmat esimerkit käyttävät POP3 lataa ja poista moodia Bob ei voi lukea uudelleen postia, jos hän vaihtaa laitetta POP3 lataa ja pidä : viestien kopiot latautuvat eri laitteille POP3 on käyntien välillä vaiheeton IMAP pitää kaikki viestit yhdessä paikassa: serverillä sallii käyttäjien organisoida viestejä kansioihin pitää käyttäjien käyntien vaiheet tallella: kansioiden nimet ja kansioinnit viestien ID-numeroiden ja kansioiden nimet Application Layer 2-117

118 Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-118

119 Kappale 2: sisällys 2.1 verkkosovellusten periaatteet sovellusarkkitehtuurit sovellusten vaatimukset 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Pakettiohjelmointi UDP:llä and TCP:llä Application Layer 2-119

120 DNS: domain name system people: many identifiers: SSN, name, passport # Internet hosts, routers: IP address (32 bit) - used for addressing datagrams name, e.g., - used by humans Q: how to map between IP address and name, and vice versa? Domain Name System: distributed database implemented in hierarchy of many name servers application-layer protocol: hosts, name servers communicate to resolve names (address/name translation) note: core Internet function, implemented as applicationlayer protocol complexity at network s edge Application Layer 2-120

121 DNS: domain name system ihmiset: useita tunnisteita: sotu, nimi, passinro # Internet-isännät, reitittimet: IP-osoitteet (32 bit) - käytetään datagrammien osoittamiseen nimi, e.g., com - ihmiset käyttävät Q: miten kartoittaa IP-osoite nimeen ja toisinpäin Domain Name System: jaettu tietokanta useiden nimipalvelimien hierarkia sovelluskerroksen protokolla: isännät, nimipalvelimet viestivät selvittääkseen nimet (osoite/nimen käännös) huom: Internetin ydintoiminto, tehty sovelluskerroksen protokollana verkon reunan monimutkaisuus Application Layer 2-121

122 DNS: services, structure DNS services hostname to IP address translation host aliasing canonical, alias names mail server aliasing load distribution replicated Web servers: many IP addresses correspond to one name why not centralize DNS? single point of failure traffic volume distant centralized database maintenance A: doesn t scale! Application Layer 2-122

123 DNS: palvelut, rakenne DNS palvelut käännös isäntänimestä IPosoitteeksi isännän nimeäminen kanoniset, aliasnimet serverin nimeäminen jakelun kuormitus Web-palvelimien monistaminen, useita IP-osoitteita samalle nimelle miksei keskitetä DNS:ää? yksi häiriöpiste liikenteen volyymi etäkeskitetty tietokanta ylläpito A: ei skaalaudu! Application Layer 2-123

124 DNS: a distributed, hierarchical database Root DNS Servers com DNS servers org DNS servers edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu umass.edu DNS serversdns servers client wants IP for 1 st approx: client queries root server to find com DNS server client queries.com DNS server to get amazon.com DNS server client queries amazon.com DNS server to get IP address for Application Layer 2-124

125 DNS: jaettu, hierarkinen tietokanta Root DNS Servers com DNS servers org DNS servers edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu umass.edu DNS serversdns servers asiakas haluaa IP:n 1st noin: asiakas tekee pyynnön queries kantapalvelimelle löytääkseen. com DNS serverin asiakas hakee.com DNS serverin saadakseen amazon.com:in DNS serverin asiakas hakee amazon.com DNS serverin saadakseen IP osoitteen Application Layer 2-125

126 DNS: root name servers contacted by local name server that can not resolve name root name server: contacts authoritative name server if name mapping not known gets mapping returns mapping to local name server e. NASA Mt View, CA f. Internet Software C. Palo Alto, CA (and 48 other sites) c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) a. Verisign, Los Angeles CA (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) m. WIDE Tokyo (5 other sites) 13 root name servers worldwide Application Layer 2-126

127 DNS: kantanimipalvelimet pk nimipalvelin, joka ei voi selvittää nimeä, ottaa yhteyttä kantanimipalvelin: ottaa yhteyttä viralliseen nimipalvelimeen jos nimien kartoitusta ei tiedetä se kartoitetaan palauttaa kartoituksen pk nimipalvelimelle c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) e. NASA Mt View, CA f. Internet Software C. Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles CA (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) m. WIDE Tokyo (5 other sites) 13 root name servers worldwide Application Layer 2-127

128 TLD, authoritative servers top-level domain (TLD) servers: responsible for com, org, net, edu, aero, jobs, museums, and all top-level country domains, e.g.: uk, fr, ca, jp Network Solutions maintains servers for.com TLD Educause for.edu TLD authoritative DNS servers: organization s own DNS server(s), providing authoritative hostname to IP mappings for organization s named hosts can be maintained by organization or service provider Application Layer 2-128

129 TLD, viralliset palvelimet ylätason domainpalvelimet (TLD): vastuussa: com, org, net, edu, aero, jobs, museums, ja kaikki maadomainit, e.g.: uk, fr, ca, jp Network Solutions ylläpitää.com TLD:tä Educause ylläpitää.edu TLD:tä viralliset DNS-palvelimet: organisaation omat DNS serveri(t), tuottavat viralliset isäntänimen IP-kartoituksille organisaatioiden nimitetyille isännille voi olla organisaation tai palveluntarjoajan ylläpitämä Application Layer 2-129

130 Local DNS name server does not strictly belong to hierarchy each ISP (residential ISP, company, university) has one also called default name server when host makes DNS query, query is sent to its local DNS server has local cache of recent name-to-address translation pairs (but may be out of date!) acts as proxy, forwards query into hierarchy Application Layer 2-130

131 Paikalliset DNS nimipalvelimet ei kuulu suoraan hierarkiaan jokaisella ISP:llä (asumapaikan ISP, yritys, yliopisto) on yksi kutsutaan myös vakionimipalvelimeksi kun isäntä tekee DNS kyselyn, se lähetetään paikalliselle DNS serverille paikallinen välimuisti viimeisimmistä nimiosoitekäännöspareista (voivat olla vanhentuneita) toimii edustajan, välittää kyselyn hierarkiassa eteenpäin Application Layer 2-131

132 DNS name resolution example root DNS server host at cis.poly.edu wants IP address for gaia.cs.umass.edu TLD DNS server iterated query: contacted server replies with name of server to contact I don t know this name, but ask this server local DNS server dns.poly.edu 1 8 requesting host cis.poly.edu 7 6 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu Application Layer 2-132

133 DNS nimen selvitys - root DNS server esimerkki isäntä cis.poly.edu haluaa IP-osoitteen gaia.cs.umass.edu:lle luodaan kysely: yhdistetään serverille, joka vastaa ilmoittamalla kyseisen serverin nimen En tiedä tätä nimeä, mutta kysy tältä serveriltä local DNS server dns.poly.edu requesting host cis.poly.edu TLD DNS server 6 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu Application Layer 2-133

134 DNS name resolution example root DNS server recursive query: puts burden of name resolution on contacted name server local DNS server dns.poly.edu 5 4 TLD DNS server heavy load at upper levels of hierarchy? 1 8 requesting host cis.poly.edu authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu Application Layer 2-134

135 DNS nimen selvitys -esimerkki root DNS server toistuva haku: kuormittaa nimen jatkuvaa selvitystä ko. nimipalvelimella raskas taakka hierarkian ylemmillä tasoilla local DNS server dns.poly.edu requesting host cis.poly.edu TLD DNS server authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu Application Layer 2-135

136 DNS: caching, updating records once (any) name server learns mapping, it caches mapping cache entries timeout (disappear) after some time (TTL) TLD servers typically cached in local name servers thus root name servers not often visited cached entries may be out-of-date (best effort name-to-address translation!) if name host changes IP address, may not be known Internet-wide until all TTLs expire update/notify mechanisms proposed IETF standard RFC 2136 Application Layer 2-136

137 DNS: haku, tietojen päivitys kun kerran joku nimipalvelimista oppii kartoituksen, se laittaa sen välimuistiin välimuistin sisäänpääsyt poistetaan jonkin ajan kuluttua (TTL) TLD serverit ovat yleensä pk-nimipalvelimien välimuistissa toki kantapalvelimilla ei usein käydä välimuistin merkinnät voivat olla vanhentuneita (paras yritys nimestä osoitteeksi -käännöksessä) jos nimen isäntä vaihtaa IP-osoitteen, se ei päivity nettiin ennen kuin kaikki TTL:t vanhentuvat päivitys/ilmoitus-systeemit ehdotettu IETFstandardissa RFC 2136 Application Layer 2-137

138 DNS records DNS: distributed db storing resource records (RR) RR format: (name, value, type, ttl) type=a name is hostname value is IP address type=ns name is domain (e.g., foo.com) value is hostname of authoritative name server for this domain type=cname name is alias name for some canonical (the real) name is really servereast.backup2.ibm.com value is canonical name type=mx value is name of mailserver associated with name Application Layer 2-138

139 DNS tiedot DNS: jaettu db varasto tallentaa (RR) RR format: (name, value, type, ttl) type=a name is isäntänimi value is IP-osoite type=ns name on domain (e.g., foo.com) value on domainin Virallisen nimipalvelimen isäntänimi type=cname name on aliasnimi, joillekin kanoninen (oikea) nimi on oikeasti servereast.backup2.ibm.com value is kanoninen nimi type=mx value on postipalvelimen nimi, joka yhdistyy name-tiedon kanssa Application Layer 2-139

140 DNS protocol, messages query and reply messages, both with same message format 2 bytes 2 bytes msg header identification: 16 bit # for query, reply to query uses same # flags: query or reply recursion desired recursion available reply is authoritative identification flags # questions # answer RRs # authority RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Application Layer 2-140

141 DNS protokolla, viestit kysely ja vastaus viestit, molemmat samassa viestimuodossa viestin otsikko tunnistus: 16 bit # nro haulle, vastaus kyselyyn käyttää samaa numeroa # liput: kysely tai vastaus halutaan rekursio rekursio on saatavilla vastaus on virallinen 2 bytes 2 bytes identification # questions # authority RRs flags # answer RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Application Layer 2-141

142 DNS protocol, messages 2 bytes 2 bytes identification # questions flags # answer RRs name, type fields for a query RRs in response to query records for authoritative servers additional helpful info that may be used # authority RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Application Layer 2-142

143 DNS protokolla, viestit 2 bytes 2 bytes identification # questions flags # answer RRs Nimi, kyselyn kirjoituskentät RR:ä kyselyn vastaukseen allentaa virallisille palvelimille Lisänä avustava tieto, Jota voidaan käyttää # authority RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Application Layer 2-143

144 Inserting records into DNS example: new startup Network Utopia register name networkuptopia.com at DNS registrar (e.g., Network Solutions) provide names, IP addresses of authoritative name server (primary and secondary) registrar inserts two RRs into.com TLD server: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, , A) create authoritative server type A record for type MX record for networkutopia.com Application Layer 2-144

145 Tietojen syöttö DNS:ään esim: uusi startup Network Utopia rekisteröi nimen networkuptopia.com DNS rekisteriin (e.g., Network Solutions) tarjoaa nimet, IP-osoitteet viralliselle nimipalvelimelle (ensi- ja toissijaisen) rekisteröijä syöttää kaksi RR:ää.com TLD serverille: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, , A) luo virallisen palvelintyyppi A:n tiedot www. networkuptopia.com:lle; tyypin MX tiedot networkutopia.com:lle Application Layer 2-145

146 Hyökkäykset DNS:ään DDoS hyökkäykset Pommittaa kantapalvelimia liikenteellä Ei onnistunutta Liikenteen filtteröinti Pk-nimipalvelimet tallentavat IP:t välimuistiin, sallien kantapalvelimen ohituksen Pommitus TLD palvelimille Vaarallisempaa Hyökkäysten uudelleenohjaus Joku välissä Keskeyttää haut DNS-myrkytys Lähettää vääriä tietoja to DNS-serverille, jotka jäävät välimuistiin Hyödyntää DNS:ää DDoS:iin Lähetä kyselyjä väärennetyllä osoitteella: kohde IP Vaatii vahvistuksen Application Layer 2-146

147 Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-147

148 Kappale 2: sisällys 2.1 verkkosovellusten periaatteet sovellusarkkitehtuurit sovellusten vaatimukset 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Pakettiohjelmointi UDP:llä ja TCP:llä Application Layer 2-148

149 Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses examples: file distribution (BitTorrent) Streaming (KanKan) VoIP (Skype) Application Layer 2-149

150 Puhdas P2P arkkitehtuuri ei jatkuvaa yhteyttä serveriin mielivaltaiset loppujärjestelmät viestivät keskenään koneet ovat ajoittain yhteydessä keskenään, vaihtavia IP-osoiteita esim: tiedostojen jako (BitTorrent) streaming (KanKan) VoIP (Skype) Application Layer 2-150

151 File distribution: client-server vs P2P Question: how much time to distribute file (size F) from one server to N peers? peer upload/download capacity is limited resource u s : server upload capacity file, size F server u s u 1 d 1 u 2 d 2 d i : peer i download capacity u N d N network (with abundant bandwidth) d i u i u i : peer i upload capacity Application Layer 2-151

152 Tiedostojen jako: asiakas-serveri vs. P2P kysymys: Kauanko aikaa kestää jakaa tiedosto (koko F) yhdeltä serveriltä N -määrän koneille? loppukoneiden serverille/-ltä latauskapasiteetti on rajallinen u s : server upload capacity file, size F server u s u 1 d 1 u 2 d 2 d i : peer i download capacity u N d N network (with abundant bandwidth) d i u i u i : peer i upload capacity Application Layer 2-152

153 File distribution time: client-server server transmission: must sequentially send (upload) N file copies: F u s time to send one copy: F/u s network d i time to send N copies: NF/u s u i client: each client must download file copy d min = min client download rate min client download time: F/d min time to distribute F to N clients using client-server approach D c-s > max{nf/u s,,f/d min } increases linearly in N Application Layer 2-153

154 File distribution time: client-server serverille lähetys: lähetetään (ladataan) peräkkäin N kopiota tiedostosta: aika yhdelle lähetykselle: F/us aika N lähetykselle: NF/us asiakas: jokaisen asiakkaan täytyy ladata kopio dmin = min asiakkaan latausnopeus min asiakkaan latausaika: F/dmin F u s network d i u i Aika jakeluun F N asiakkaalle Asiakas-server tavalla D c-s > max{nf/u s,,f/d min } increases linearly in N Application Layer 2-154

155 File distribution time: P2P server transmission: must upload at least one copy F u s time to send one copy: F/u s client: each client must download file copy min client download time: F/d min clients: as aggregate must download NF bits network d i u i max upload rate (limting max download rate) is u s + Su i time to distribute F to N clients using P2P approach D P2P > max{f/u s,,f/d min,,nf/(u s + Su i )} increases linearly in N but so does this, as each peer brings service capacity Application Layer 2-155

156 Tiedostojen jatkoaika: P2P serverille lähetys: täytyy ladata ainakin yksi kopio aika yhdelle lähetykselle: F/us asiakas: joka asiakas lataa kopion min asiakkaan latausaika: F/dmin asiakkaat: yhdessä täytyy ladata NF bits maks. latausnopeus (rajoittaa) on us + Σui F u s network d i u i aika mikä kuluu F:n jakamiseen Nmäärälle asiakkaita P2P-tavalla D P2P > max{f/u s,,f/d min,,nf/(u s + Su i )} increases linearly in N but so does this, as each peer brings service capacity Application Layer 2-156

157 Client-server vs. P2P: example client upload rate = u, F/u = 1 hour, u s = 10u, d min u s Minimum Distribution Time P2P Client-Server N Application Layer 2-157

158 Asiakas-serveri vs. P2P: esimerkki Asiakkaan lataustaso = u, F/u = 1 hour, u s = 10u, d min u s Minimum Distribution Time P2P Client-Server N Application Layer 2-158

159 P2P file distribution: BitTorrent file divided into 256Kb chunks peers in torrent send/receive file chunks tracker: tracks peers participating in torrent torrent: group of peers exchanging chunks of a file Alice arrives obtains list of peers from tracker and begins exchanging file chunks with peers in torrent Application Layer 2-159

160 P2P tiedostojenjako: BitTorrent tiedosto jaetaan 256Kb paloihin koneet/linkit torrentissa lähettävät/vastaanottavat palat seuranta: seuraa torrentiin osallistuvia linkkejä/ koneita torrent: linkkien ryhmittymä vaihtaa tiedoston paloja Alice saapuu saa listan linkeistä Ja seurannasta ja alkaa vaihtaa tiedoston Paloja muiden linkkien kanssa Application Layer 2-160

161 P2P file distribution: BitTorrent peer joining torrent: has no chunks, but will accumulate them over time from other peers registers with tracker to get list of peers, connects to subset of peers ( neighbors ) while downloading, peer uploads chunks to other peers peer may change peers with whom it exchanges chunks churn: peers may come and go once peer has entire file, it may (selfishly) leave or (altruistically) remain in torrent Application Layer 2-161

162 P2P tiedostonjako: BitTorrent linkki liittyy torrentiin: ei omaa paloja, mutta kerää niitä ajan mittaan muilta linkeiltä rekisteröityy seurantaan saadakseen listan linkeistä, ja yhdistää linkkien osajoukon ( naapurit ) ladatessa tiedostoja, linkki välittää tiedoston paloja muille linkeille käyttäjä vaihtaa voi paloja välittävien koneiden kanssa linkkejä kirnu: linkit tulevat ja menevät kun linkillä on koko tiedosto, se voi (itsekkäästi) lähteä, tai (epäitsekkäästi) pysyä torrentissa Application Layer 2-162

163 BitTorrent: requesting, sending file chunks requesting chunks: at any given time, different peers have different subsets of file chunks periodically, Alice asks each peer for list of chunks that they have Alice requests missing chunks from peers, rarest first sending chunks: tit-for-tat Alice sends chunks to those four peers currently sending her chunks at highest rate other peers are choked by Alice (do not receive chunks from her) re-evaluate top 4 every10 secs every 30 secs: randomly select another peer, starts sending chunks optimistically unchoke this peer newly chosen peer may join top 4 Application Layer 2-163

164 BitTorrent: tiedoston palojen pyytäminen ja lähettäminen palojen pyytäminen: jatkuvasti muuttuen, eri linkeillä on eri tiedostovalikoima kausittain, Alice pyytää jokaiseltä linkiltä listaa paloista, mitä heillä on Alice pyytää puuttuvat palat linkeiltä, harvinaisimmat ensin palojen lähetys: samalla mitalla takaisin Alice lähettää paloja neljälle linkille, jotka lähettävät hänelle paloja korkeimmalla nopeudella muut linkit ovat Alicelle vihaisia (älkää vastaanottako paloja häneltä) uudelleenarvio top 4 joka kymmenes sekunti joka 30. sekunti: valitaan umpimähkään uusi linkki, aletaan lähettää paloja optimistinen toiminta tällä linkillä uusin valittu linkki voi liittyä top 4: ään Application Layer 2-164

165 BitTorrent: tit-for-tat (1) Alice optimistically unchokes Bob (2) Alice becomes one of Bob s top-four providers; Bob reciprocates (3) Bob becomes one of Alice s top-four providers higher upload rate: find better trading partners, get file faster! Application Layer 2-165

166 BitTorrent: samalla mitalla takaisin (1) Alice optimistisesti vapauttaa Bobin (2) Alicesta tulee yksi Bobin top-4 jakelijasta; Bob vastaa (3) Bobista tulee yksi Alicen top-4 jakelijasta korkeampi latausnopeus: löydä parempia vaihtokumppaneita, ja saat tiedoston nopeammin! Application Layer 2-166

167 Distributed Hash Table (DHT) Hash table DHT paradigm Circular DHT and overlay networks Peer churn

168 Distributed hajautustaulu(dht) Hajautustaulu DHT paradigm DHT kehässä ja peittävät verkot Linkkien arviointi

169 Simple Database Simple database with(key, value) pairs: key: human name; value: social security # Key Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal Linda Cohen Lisa Kobayashi key: movie title; value: IP address

170 Yksinkertainen tietokanta Yksinkertainen tietokanta arvoilla (key, value): key: ihmisen nimi; value: sotu # Key Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal Linda Cohen Lisa Kobayashi key: elokuvan otsikko; value: IP-osoite

171 Hash Table More convenient to store and search on numerical representation of key key = hash(original key) Original Key Key Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal Linda Cohen Lisa Kobayashi

172 Hajautustaulu Mukavampi varastoida ja etsiä tietoja numeroilla esitettynä key = hash(original key) Original Key Key Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal Linda Cohen Lisa Kobayashi

173 Distributed Hash Table (DHT) Distribute (key, value) pairs over millions of peers pairs are evenly distributed over peers Any peer can query database with a key database returns value for the key To resolve query, small number of messages exchanged among peers Each peer only knows about a small number of other peers Robust to peers coming and going (churn)

174 Jaettu hajautustaulu (DHT) Jakaa (key, value) pareja miljoonien linkkien kautta linkit jakelevat tietoja tasapuolisesti Mikä tahansa linkki voi tehdä haun tietokannasta keyinfolla tietokanta palauttaa key:n arvon selvittääkseen haun, linkit vaihtavat keskenään muutamia viestejä Joka linkki tietää vain pienen määrän muita linkkejä Kestävä jatkuvasti vaihtuville linkeille

175 Aseta key-value-parit linkeille sääntö: aseta key-value-pari linkille, jolla on lähin ID-numero. sopimus: lähin on key-arvon välitön seuraaja e.g., ID-tila {0,1,2,3,,63} oletettavasti on 8 linkkiä: 1,12,13,25,32,40,48,60 If key = 51, then assigned to peer 60 If key = 60, then assigned to peer 60 If key = 61, then assigned to peer 1

176 Circular DHT each peer only aware of immediate successor and predecessor overlay network

177 DHT ringissä joka linkki on tietoinen vain välittömästä seuraajasta ja edeltäjästä päällekkäinen verkko

178 Resolving a query value 1 12 What is the value associated with key 53? O(N) messages on avgerage to resolve query, when there are N peers

179 Kyselyn selvittäminen arvo 1 12 Mikä on key 53:lle asetettu arvo? O(N) viestiä kyselyn Selvittämiseksi, kun on N linkkiä

180 Circular DHT with shortcuts 60 value 1 12 What is the value for key each peer keeps track of IP addresses of predecessor, successor, short cuts. reduced from 6 to 3 messages. possible to design shortcuts with O(log N) neighbors, O(log N) messages in query

181 Kiertävä DHT oikoteillä 60 arvo 1 12 Mikä on key 53:n arvo? joka linkki kirjaa ylös edeltävän ja seuraavan IP-osoitteet ja oikotiet. vähentyy kuudesta viestistä kolmeen on mahdollista suunnitella oikoteitä O(log N) naapureiden kesken, O(log N) viestit kyselyssä 32

182 Peer churn example: peer 5 abruptly leaves handling peer churn: peers may come and go (churn) each peer knows address of its two successors each peer periodically pings its two successors to check aliveness if immediate successor leaves, choose next successor as new immediate successor

183 Linkkien kirnu Esim.: linkki 5 yhtäkkiä lähtee linkkikirnun käsittely: linkit voi tulla ja mennä (kirnuun) jokainen linkki tietää sen seuraajiensa osoitteet jokainen linkki signaloi seuraajilleen tietyin väliajoin tarkistaakseen elossaolon jos välitön seuraaja lähtee, sitä seuraavasta seuraajasta tulee uusi välitön seuraaja

184 Peer churn handling peer churn: peers may come and go (churn) each peer knows address of its two successors each peer periodically pings its two successors to check aliveness if immediate successor leaves, choose next successor as new immediate successor 8 example: peer 5 abruptly leaves peer 4 detects peer 5 s departure; makes 8 its immediate successor 4 asks 8 who its immediate successor is; makes 8 s immediate successor its second successor.

185 Linkkien kirnu linkkikirnun käsittely: 1 linkit voi tulla ja mennä (kirnuun) jokainen linkki tietää sen 3 seuraajiensa osoitteet 15 jokainen linkki signaloi 4 seuraajilleen tietyin väliajoin tarkistaakseen elossaolon 12 jos välitön seuraaja lähtee, sitä seuraavasta seuraajasta tulee 10 8 uusi välitön seuraaja esim.: linkki 5 yhtäkkiä lähtee linkki 4 huomaa, että linkki 5 on lähtenyt; se tekee 8:sta välittömän sueraajansa 4 kysyy 8:lta, kuka sen välitön seuraaja on; se tekee kasin välittömästä seuraajasta toisen seuraajansa.

186 Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP Application Layer 2-186

187 Kappale 2: sisällys 2.1 verkkosovellusten periaatteet sovellusarkkitehtuurit sovellusten vaatimukset 2.2 Verkko ja HTTP 2.3 FTP 2.4 sähköposti SMTP, POP3, IMAP 2.5 DNS 2.6 P2P sovellukset 2.7 Pakettiohjelmointi UDP:llä ja TCP:llä Application Layer 2-187

188 Socket programming goal: learn how to build client/server applications that communicate using sockets socket: door between application process and endend-transport protocol application process socket application process controlled by app developer transport transport network link Internet network link controlled by OS physical physical Application Layer 2-188

189 Pakettiohjelmointi tavoite: oppia, miten rakentaa asiakas/serveri sovelluksia, jotka viestivät pakettien avulla paketti: ovi sovelluksen prosessin ja loppupisteiden kuljetusprotokollan välillä application process socket application process controlled by app developer transport transport network link Internet network link controlled by OS physical physical Application Layer 2-189

190 Socket programming Two socket types for two transport services: UDP: unreliable datagram TCP: reliable, byte stream-oriented Application Example: 1. Client reads a line of characters (data) from its keyboard and sends the data to the server. 2. The server receives the data and converts characters to uppercase. 3. The server sends the modified data to the client. 4. The client receives the modified data and displays the line on its screen. Application Layer 2-190

191 Pakettiohjelmointi Kaksi pakettityyppiä kahdelle kuljetuspalvelulle: UDP: epäluotettava datagrammi TCP: luotettava, tavu-virta-orientoitunut Sovellusesimerkki: 1. Asiakas lukee merkkiriviä (dataa) näppäimistöltään ja lähetttää datan palvelimelleen. 2. Serveri vastaanottaa dataa ja muuntaa merkit isoiksi kirjaimiksi. 3. Serveri lähettää muokatun datan asiakkaalle. 4. Asiakas vastaanottaa muokatun datan ja näyttää rivin näytöllä. Application Layer 2-191

192 Socket programming with UDP UDP: no connection between client & server no handshaking before sending data sender explicitly attaches IP destination address and port # to each packet rcvr extracts sender IP address and port# from received packet UDP: transmitted data may be lost or received out-of-order Application viewpoint: UDP provides unreliable transfer of groups of bytes ( datagrams ) between client and server Application Layer 2-192

193 Pakettiohjelmointi UDP:llä UDP: ei yhteyttää asiakkaan & serverin välillä ei kättelyä ennen datan lähetystä lähettäjä nimenomaan liittää kohteen IP osoitteen ja porttinumeron jokaiseen pakettiin rcvr erottaa lähettäjän IP osoitteen ja porttinumeron vastaanotetusta paketista UDP: lähetetty data voidaan menettää tai vastaanottaa epäjärjestyksessä Sovelluksen näkökulmasta: UDP tarjoaa epäluotettavan siirron asiakkaalta serverille Application Layer 2-193

194 Client/server socket interaction: UDP server (running on serverip) create socket, port= x: serversocket = socket(af_inet,sock_dgram) read datagram from serversocket write reply to serversocket specifying client address, port number client create socket: clientsocket = socket(af_inet,sock_dgram) Create datagram with server IP and port=x; send datagram via clientsocket read datagram from clientsocket close clientsocket Application 2-194

195 Asiakas/serveri-pakettiviestintä: UDP serveri (käyttö serverin IP:llä) Luo paketti, portti= x: serversocket = socket(af_inet,sock_dgram) lue datagrammi serversocket:ista clien Luo paketti: clientsocket = socket(af_inet,sock_dgram) Luo datagrammi serverin IP:llä ja portti=x; lähetä datagrammi clientsocket Kirjoita vastaus serversocket:lle Tarkentaen asiakkaan osoite ja porttinumero lue datagrammi clientsocket:lta sulje clientsocket Application 2-195

196 Example app: UDP client Python UDPClient include Python s socket library from socket import * servername = hostname serverport = create UDP socket for server get user keyboard input Attach server name, port to message; send into socket read reply characters from socket into string print out received string and close socket clientsocket = socket(socket.af_inet, socket.sock_dgram) message = raw_input( Input lowercase sentence: ) clientsocket.sendto(message,(servername, serverport)) modifiedmessage, serveraddress = clientsocket.recvfrom(2048) print modifiedmessage clientsocket.close() Application Layer 2-196

197 Esim. sovellus: UDP asiakas Python UDPClient include Python s socket library from socket import * servername = hostname serverport = create UDP socket for server get user keyboard input Attach server name, port to message; send into socket read reply characters from socket into string print out received string and close socket clientsocket = socket(socket.af_inet, socket.sock_dgram) message = raw_input( Input lowercase sentence: ) clientsocket.sendto(message,(servername, serverport)) modifiedmessage, serveraddress = clientsocket.recvfrom(2048) print modifiedmessage clientsocket.close() Application Layer 2-197

198 Example app: UDP server create UDP socket bind socket to local port number loop forever Read from UDP socket into message, getting client s address (client IP and port) send upper case string back to this client Python UDPServer from socket import * serverport = serversocket = socket(af_inet, SOCK_DGRAM) serversocket.bind(('', serverport)) print The server is ready to receive while 1: message, clientaddress = serversocket.recvfrom(2048) modifiedmessage = message.upper() serversocket.sendto(modifiedmessage, clientaddress) Application Layer 2-198

199 Esim. sovellus: UDP asiakas create UDP socket bind socket to local port number loop forever Read from UDP socket into message, getting client s address (client IP and port) send upper case string back to this client Python UDPServer from socket import * serverport = serversocket = socket(af_inet, SOCK_DGRAM) serversocket.bind(('', serverport)) print The server is ready to receive while 1: message, clientaddress = serversocket.recvfrom(2048) modifiedmessage = message.upper() serversocket.sendto(modifiedmessage, clientaddress) Application Layer 2-199

200 Socket programming with TCP client must contact server server process must first be running server must have created socket (door) that welcomes client s contact client contacts server by: Creating TCP socket, specifying IP address, port number of server process when client creates socket: client TCP establishes connection to server TCP when contacted by client, server TCP creates new socket for server process to communicate with that particular client allows server to talk with multiple clients source port numbers used to distinguish clients (more in Chap 3) application viewpoint: TCP provides reliable, in-order byte-stream transfer ( pipe ) between client and server Application Layer 2-200

201 Pakettiohjelmointi TCP:llä asiakkaan täytyy ottaa yhteys serveriin serveriprosessi pitää käynnistää ensin serverin pitää luoda ensin paketti (ovi), mikä ottaa vastaan asiakkaan yhteystiedot asiakas ottaa yhteyttä serveriin: Luomalla TCP-paketin, tarkentamalla IP-osoitteen, porttinumeron serveriprosessille kun asiakas luo paketin: asiakkaan TCP luo yhteyden serverin TCP:hen kun asiakas ottaa yhteyttä, serverin TCP luo uuden paketin serveriprosessille viestiäkseen juuri tämän asiakkaan kanssa sallii serverin jutella useiden asiakkaiden kanssa lähteen porttinumerot karkottivat ennen asiakkaita (enemmän kappaleessa 3) Sovelluksen näkökulmasta: TCP tuottaa luotettavan, järjestelmällisen tavu-virtasiirron ( putki )asiakkaan ja serverin välille Application Layer 2-201

202 Client/server socket interaction: TCP server (running on hostid) client create socket, port=x, for incoming request: serversocket = socket() wait for incoming connection request connectionsocket = serversocket.accept() read request from connectionsocket write reply to connectionsocket close connectionsocket TCP connection setup create socket, connect to hostid, port=x clientsocket = socket() send request using clientsocket read reply from clientsocket close clientsocket Application Layer 2-202

203 Asiakas/serveri pakettiviestintä: TCP serveri (toimii hosted:llä) asiakas create socket, port=x, for incoming request: serversocket = socket() wait for incoming connection request connectionsocket = serversocket.accept() read request from connectionsocket write reply to connectionsocket close connectionsocket TCP connection setup create socket, connect to hostid, port=x clientsocket = socket() send request using clientsocket read reply from clientsocket close clientsocket Application Layer 2-203

204 Example app: TCP client create TCP socket for server, remote port No need to attach server name, port Python TCPClient from socket import * servername = servername serverport = clientsocket = socket(af_inet, SOCK_STREAM) clientsocket.connect((servername,serverport)) sentence = raw_input( Input lowercase sentence: ) clientsocket.send(sentence) modifiedsentence = clientsocket.recv(1024) print From Server:, modifiedsentence clientsocket.close() Application Layer 2-204

205 Esimerkkisovellus: TCP asiakas create TCP socket for server, remote port No need to attach server name, port Python TCPClient from socket import * servername = servername serverport = clientsocket = socket(af_inet, SOCK_STREAM) clientsocket.connect((servername,serverport)) sentence = raw_input( Input lowercase sentence: ) clientsocket.send(sentence) modifiedsentence = clientsocket.recv(1024) print From Server:, modifiedsentence clientsocket.close() Application Layer 2-205

206 Example app: TCP server Python TCPServer create TCP welcoming socket server begins listening for incoming TCP requests loop forever server waits on accept() for incoming requests, new socket created on return read bytes from socket (but not address as in UDP) close connection to this client (but not welcoming socket) from socket import * serverport = serversocket = socket(af_inet,sock_stream) serversocket.bind((,serverport)) serversocket.listen(1) print The server is ready to receive while 1: connectionsocket, addr = serversocket.accept() sentence = connectionsocket.recv(1024) capitalizedsentence = sentence.upper() connectionsocket.send(capitalizedsentence) connectionsocket.close() Application Layer 2-206

207 Esimerkkisovellus: TCP asiakas Python TCPServer create TCP welcoming socket server begins listening for incoming TCP requests loop forever server waits on accept() for incoming requests, new socket created on return read bytes from socket (but not address as in UDP) close connection to this client (but not welcoming socket) from socket import * serverport = serversocket = socket(af_inet,sock_stream) serversocket.bind((,serverport)) serversocket.listen(1) print The server is ready to receive while 1: connectionsocket, addr = serversocket.accept() sentence = connectionsocket.recv(1024) capitalizedsentence = sentence.upper() connectionsocket.send(capitalizedsentence) connectionsocket.close() Application Layer 2-207

208 Chapter 2: summary our study of network apps now complete! application architectures client-server P2P application service requirements: reliability, bandwidth, delay Internet transport service model connection-oriented, reliable: TCP unreliable, datagrams: UDP specific protocols: HTTP FTP SMTP, POP, IMAP DNS P2P: BitTorrent, DHT socket programming: TCP, UDP sockets Application Layer 2-208

209 Kappale 2: tiivistelmä Verkkosovellusten opiskelu on tehty! sovellusarkkitehtuurit asiakas-serveri P2P Sovellusten palveluvaatimukset: luotettavuus, kaistanleveys, viive Internet-kuljetus-palvelumalli yhteys-orientoitunut, luotettava: TCP epäluotettava, datagrammit: UDP tietyt protokollat: HTTP FTP SMTP, POP, IMAP DNS P2P: BitTorrent, DHT pakettiohjelmointi: TCP, UDP paketit Application Layer 2-209

210 Chapter 2: summary most importantly: learned about protocols! typical request/reply message exchange: client requests info or service server responds with data, status code message formats: headers: fields giving info about data data: info being communicated important themes: control vs. data msgs in-band, out-of-band centralized vs. decentralized stateless vs. stateful reliable vs. unreliable msg transfer complexity at network edge Application Layer 2-210

211 Kappale 2: tiivistelmä tärkeintä: opimme protokollista! tyypillinen pyyntö/ vastaus viestinvaihto: asiakas pyytää tietoa tai palvelua serveri vastaa datalla, statuksella viestin muodot: otsikot: kentät antavat tietoa datasta data: tieto siirretään tärkeät teemat: kontrolli vs. data viestit kaistalla, ei-kaistalla keskitetty vs. ei-keskitetty vaiheeton vs. vaiheellinen luotettava vs. epäluotettava viestin siirto monimutkaisuus verkon reunalla Application Layer 2-211

212 Chapter 1 Additional Slides Introduction 1-212

213 packet analyzer packet capture (pcap) copy of all Ethernet frames sent/receive d application (www browser, client) application OS Transport (TCP/UDP) Network (IP) Link (Ethernet) Physical

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

Lisätiedot

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

Lisätiedot

Security server v6 installation requirements

Security server v6 installation requirements CSC Security server v6 installation requirements Security server version 6.4-0-201505291153 Pekka Muhonen 8/12/2015 Date Version Description 18.12.2014 0.1 Initial version 10.02.2015 0.2 Major changes

Lisätiedot

Security server v6 installation requirements

Security server v6 installation requirements CSC Security server v6 installation requirements Security server version 6.x. Version 0.2 Pekka Muhonen 2/10/2015 Date Version Description 18.12.2014 0.1 Initial version 10.02.2015 0.2 Major changes Contents

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

Lisätiedot

OSI ja Protokollapino

OSI ja Protokollapino TCP/IP OSI ja Protokollapino OSI: Open Systems Interconnection OSI Malli TCP/IP hierarkia Protokollat 7 Sovelluskerros 6 Esitystapakerros Sovellus 5 Istuntokerros 4 Kuljetuskerros 3 Verkkokerros Linkkikerros

Lisätiedot

Salasanan vaihto uuteen / How to change password

Salasanan vaihto uuteen / How to change password Salasanan vaihto uuteen / How to change password Sisällys Salasanakäytäntö / Password policy... 2 Salasanan vaihto verkkosivulla / Change password on website... 3 Salasanan vaihto matkapuhelimella / Change

Lisätiedot

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs

Lisätiedot

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed Online Meeting Guest Online Meeting for Guest Participant Lync Attendee Installation Online kokous vierailevalle osallistujalle Lync Attendee Asennus www.ruukki.com Overview Before you can join to Ruukki

Lisätiedot

SuomiCom-sähköpostiasetukset Microsoft Outlook 2016

SuomiCom-sähköpostiasetukset Microsoft Outlook 2016 SuomiCom-sähköpostiasetukset Microsoft Outlook 2016 Nämä ohjeet on suunnattu Microsoft Outlook 2016 -ohjelmalle, mutta ohje todennäköisesti toimii suuntaa-antavana myös vanhemmille versioille. Kuvat ovat

Lisätiedot

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo TIEKE Verkottaja Service Tools for electronic data interchange utilizers Heikki Laaksamo TIEKE Finnish Information Society Development Centre (TIEKE Tietoyhteiskunnan kehittämiskeskus ry) TIEKE is a neutral,

Lisätiedot

Sovelluskerros. Chapter 2 Application Layer. Sovelluskerros. Joitain verkkosovelluksia. Sovelluskerros. Verkkosovelluksen luonnista

Sovelluskerros. Chapter 2 Application Layer. Sovelluskerros. Joitain verkkosovelluksia. Sovelluskerros. Verkkosovelluksen luonnista Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

Lisätiedot

FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation

FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation FinFamily Asennus / Installation 1 Sisällys / Contents FinFamily Asennus / Installation... 1 1. Asennus ja tietojen tuonti / Installation and importing data... 4 1.1. Asenna Java / Install Java... 4 1.2.

Lisätiedot

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site Note! Before starting download and install a fresh version of OfficeProfessionalPlus_x64_en-us. The instructions are in the beginning of the exercise.

Lisätiedot

Microsoft Lync 2010 Attendee

Microsoft Lync 2010 Attendee VYVI MEETING Lync Attendee 2010 Instruction 1 (15) Microsoft Lync 2010 Attendee Online meeting VYVI MEETING Lync Attendee 2010 Instruction 2 (15) Index 1 Microsoft LYNC 2010 Attendee... 3 2 Acquiring Lync

Lisätiedot

Oulun yliopisto Sähkö- ja tietotekniikan osasto

Oulun yliopisto Sähkö- ja tietotekniikan osasto Oulun yliopisto Sähkö- ja tietotekniikan osasto 521261A Tietokoneverkot I Välikoe #5 28.4.2008 Voit vastata joko suomeksi tai englanniksi. Perustele aina vastauksesi oikea vastaus ilman perustelua antaa

Lisätiedot

Choose Finland-Helsinki Valitse Finland-Helsinki

Choose Finland-Helsinki Valitse Finland-Helsinki Write down the Temporary Application ID. If you do not manage to complete the form you can continue where you stopped with this ID no. Muista Temporary Application ID. Jos et onnistu täyttää lomake loppuun

Lisätiedot

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia 2. Sovelluksia ja sovellusprotokollia 2.1. WWW (World Wide Web) 2.2. Sähköposti 2.3. DNS (Domain NameSystem) 27.9.2001 1 Verkkosovellus sovellusprotokolla Sovellusprotokolla on vain osa hajautettua

Lisätiedot

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW 2. Sovelluksia ja sovellusprotokollia 2.1. WWW (World Wide Web) 2.2. Sähköposti 2.3. DNS (Domain NameSystem) Verkkosovellus sovellusprotokolla Sovellusprotokolla on vain osa hajautettua sovellusta

Lisätiedot

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs

Lisätiedot

C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection

C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection Lähettävä postipalvelin muodostaa TCP-yhteyden esittelee itsensä kertoo lähettäjän ja vastaanottajan lähettää sanoman, jos vastaanottava palvelin antaa luvan Vastaanottava postipalvelin kuuntelee TCP-porttia

Lisätiedot

Information on preparing Presentation

Information on preparing Presentation Information on preparing Presentation Seminar on big data management Lecturer: Spring 2017 20.1.2017 1 Agenda Hints and tips on giving a good presentation Watch two videos and discussion 22.1.2017 2 Goals

Lisätiedot

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW 2. Sovelluksia ja sovellusprotokollia 2.1. WWW (World Wide Web) 2.2. Sähköposti 2.3. DNS (Domain NameSystem) Verkkosovellus sovellusprotokolla Sovellusprotokolla on vain osa hajautettua sovellusta

Lisätiedot

Capacity Utilization

Capacity Utilization Capacity Utilization Tim Schöneberg 28th November Agenda Introduction Fixed and variable input ressources Technical capacity utilization Price based capacity utilization measure Long run and short run

Lisätiedot

Lähettävä postipalvelin Vastaanottava postipalvelin

Lähettävä postipalvelin Vastaanottava postipalvelin Lähettävä postipalvelin muodostaa TCP-yhteyden esittelee itsensä kertoo lähettäjän ja vastaanottajan lähettää sanoman, jos vastaanottava palvelin antaa luvan Vastaanottava postipalvelin kuuntelee TCP-porttia

Lisätiedot

Sähköpostisanoman muoto. Push- ja pull-protokollat. työntöprotokolla (PUSH) Yleisiä sanoman otsakekenttiä kentät erotettu rivinvaihdolla

Sähköpostisanoman muoto. Push- ja pull-protokollat. työntöprotokolla (PUSH) Yleisiä sanoman otsakekenttiä kentät erotettu rivinvaihdolla Lähettävä postipalvelin muodostaa TCP-yhteyden esittelee itsensä kertoo lähettäjän ja vastaanottajan lähettää sanoman, jos vastaanottava palvelin antaa luvan Vastaanottava postipalvelin kuuntelee TCP-porttia

Lisätiedot

Push- ja pull-protokollat

Push- ja pull-protokollat S: 220 helsinki.fi C: MAIL FROM: S: 250 OK C: RCPT TO: S: 250 OK C: DATA S: 354 Enter mail, end with.

Lisätiedot

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia 2. Sovelluksia ja sovellusprotokollia 2.1. WWW (World Wide Web) 2.2. Sähköposti 2.3. DNS (Domain NameSystem) 23.1.2002 1 Verkkosovellus sovellusprotokolla Sovellusprotokolla on vain osa hajautettua

Lisätiedot

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia 2. Sovelluksia ja sovellusprotokollia 2.1. WWW (World Wide Web) 2.2. Sähköposti 2.3. DNS (Domain NameSystem) 23.1.2002 1 Verkkosovellus sovellusprotokolla Sovellusprotokolla on vain osa hajautettua

Lisätiedot

Kierroksen 4 ratkaisut

Kierroksen 4 ratkaisut Kierroksen 4 ratkaisut 1. Tutustu UNIX-työkaluohjelmiin nimeltä nc ja telnet, sekä FTP-protokollan toiminnan kuvaavaan RFC:hen (RFC959). Lataa ftp.funet.fi -koneen /pub -hakemiston listaus näiden ohjelmien

Lisätiedot

Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen

Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen 2.2. Sähköposti Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen Postipalvelin (mail server) postilaatikot Postiprotokolla SMTP sanomien toimittaminen lähettäjän postijärjestelmästä

Lisätiedot

Network to Get Work. Tehtäviä opiskelijoille Assignments for students. www.laurea.fi

Network to Get Work. Tehtäviä opiskelijoille Assignments for students. www.laurea.fi Network to Get Work Tehtäviä opiskelijoille Assignments for students www.laurea.fi Ohje henkilöstölle Instructions for Staff Seuraavassa on esitetty joukko tehtäviä, joista voit valita opiskelijaryhmällesi

Lisätiedot

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition) Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition) Esko Jalkanen Click here if your download doesn"t start automatically Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition) Esko Jalkanen

Lisätiedot

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs

Lisätiedot

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos Tietoliikenne II Syksy 2005 Markku Kojo 1 Syksy 2005 Tietoliikenne II (2 ov,, 4 op) Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos 2 Page1 1 Kirjallisuus ja muuta materiaalia Kurssikirja:

Lisätiedot

SSH Secure Shell & SSH File Transfer

SSH Secure Shell & SSH File Transfer SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden

Lisätiedot

AXXION OY. Hosting-palvelut Asiakasohjeistus Versio 1.0

AXXION OY. Hosting-palvelut Asiakasohjeistus Versio 1.0 AXXION OY Hosting-palvelut Asiakasohjeistus Versio 1.0 27.09.2007 1 Yleistä Tämä dokumentti on asiakkaille tarkoitettu ohjeistus Axxion Oy:n toimittamien hosting-palveluiden myymiseksi. Dokumentin aihepiiriin

Lisätiedot

Group 2 - Dentego PTH Korvake. Peer Testing Report

Group 2 - Dentego PTH Korvake. Peer Testing Report Group 2 - Dentego PTH Korvake Peer Testing Report Revisions Version Date Author Description 1.0 Henrik Klinkmann First version Table of Contents Contents Revisions... 2 Table of Contents... 2 Testing...

Lisätiedot

Outlook Office 365. Tässä ohjeessa kuvataan miten sähköpostitili (IMAP) sekä Kotisivut.com Autentikoiva SMTPlisäpalvelu

Outlook Office 365. Tässä ohjeessa kuvataan miten sähköpostitili (IMAP) sekä Kotisivut.com Autentikoiva SMTPlisäpalvelu 1 Tämä ohje on tarkoitettu seuraaville Outlook-sähköpostiohjelman versioille: Outlook 2016 tai uudempi tai sekä Windows-käyttöjärjestelmille. Tässä ohjeessa kuvataan miten sähköpostitili (IMAP) sekä Kotisivut.com

Lisätiedot

Lab A1.FARM_Hyper-V.v3

Lab A1.FARM_Hyper-V.v3 Lab A1.FARM_Hyper-V Installing SharePoint Server 2013 SharePoint Server 2013 -asennus Scenario To install and configure SharePoint 2013 on a single server (Server 2012, AD and SQL Server), you will follow

Lisätiedot

GPRS-lisäpalvelu INTERNET-ASETUKSET

GPRS-lisäpalvelu INTERNET-ASETUKSET GPRS-lisäpalvelu INTERNET-ASETUKSET GPRS-lisäpalvelu Internet-asetukset 2(22) Sisällysluettelo 1 INTERNET-ASETUKSET MICROSOFT WINDOWS 95/98... 3 1.1 MODEEMIN ASENNUS... 3 1.2 APN:N ASETTAMINEN... 3 1.3

Lisätiedot

Internet Protocol version 6. IPv6

Internet Protocol version 6. IPv6 Internet Protocol version 6 IPv6 IPv6 Osoiteavaruus 32-bittisestä 128-bittiseksi Otsikkokentässä vähemmän kenttiä Lisäominaisuuksien määritteleminen mahdollista Pakettien salaus ja autentikointi mahdollista

Lisätiedot

S 38.1105 Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

S 38.1105 Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory S 38.1105 Tietoliikennetekniikan perusteet Pakettikytkentäiset verkot Kertausta: Verkkojen OSI kerrosmalli Sovelluskerros Esitystapakerros Istuntokerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen

Lisätiedot

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward. START START SIT 1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward. This is a static exercise. SIT STAND 2. SIT STAND. The

Lisätiedot

Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress. BLOGIN LUOMINEN Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.org) Myös http://blogspot.com on ilmainen ja helppokäyttöinen

Lisätiedot

7.4 Variability management

7.4 Variability management 7.4 Variability management time... space software product-line should support variability in space (different products) support variability in time (maintenance, evolution) 1 Product variation Product

Lisätiedot

C++11 seminaari, kevät Johannes Koskinen

C++11 seminaari, kevät Johannes Koskinen C++11 seminaari, kevät 2012 Johannes Koskinen Sisältö Mikä onkaan ongelma? Standardidraftin luku 29: Atomiset tyypit Muistimalli Rinnakkaisuus On multicore systems, when a thread writes a value to memory,

Lisätiedot

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end 3. Kuljetuskerros 3.1. Kuljetuspalvelu prosessilta prosessille looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän

Lisätiedot

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi.

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi. SOSIAALINEN MEDIA Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi. FACEBOOK Facebook mahdollistaa useiden erilaisten Social plugins -toimintojen

Lisätiedot

Efficiency change over time

Efficiency change over time Efficiency change over time Heikki Tikanmäki Optimointiopin seminaari 14.11.2007 Contents Introduction (11.1) Window analysis (11.2) Example, application, analysis Malmquist index (11.3) Dealing with panel

Lisätiedot

22.1.2013. truck Check In. truck Check Net. ewaybill ja ajat suoraan terminaaliin

22.1.2013. truck Check In. truck Check Net. ewaybill ja ajat suoraan terminaaliin ja ajat suoraan terminaaliin 1 Konseptit Mussalon Merituulessa ja Vuosaaren Porttitalossa sijaitsevat kioskisovellukset, joilla rekkakuskit voivat itse tehdä konttikeikat autoilleen ennen sisäänajoa satama-alueen

Lisätiedot

ELEC-C7241 Tietokoneverkot Ohjelmointiprojekti

ELEC-C7241 Tietokoneverkot Ohjelmointiprojekti ELEC-C7241 Tietokoneverkot Ohjelmointiprojekti Pasi Sarolahti, 7.2.2017 Tentti ti 14.2. klo 13 Paikkana AS2 Kesto 2 tuntia Neljä kysymystä Laskinta saa käyttää Alue Kolme ensimmäistä osiota (sovellukset,

Lisätiedot

HITSAUKSEN TUOTTAVUUSRATKAISUT

HITSAUKSEN TUOTTAVUUSRATKAISUT Kemppi ARC YOU GET WHAT YOU MEASURE OR BE CAREFUL WHAT YOU WISH FOR HITSAUKSEN TUOTTAVUUSRATKAISUT Puolitetaan hitsauskustannukset seminaari 9.4.2008 Mikko Veikkolainen, Ratkaisuliiketoimintapäällikkö

Lisätiedot

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007 National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007 Chapter 2.4 Jukka Räisä 1 WATER PIPES PLACEMENT 2.4.1 Regulation Water pipe and its

Lisätiedot

Sisällysluettelo Table of contents

Sisällysluettelo Table of contents Sisällysluettelo Table of contents OTC:n Moodlen käyttöohje suomeksi... 1 Kirjautuminen Moodleen... 2 Ensimmäinen kirjautuminen Moodleen... 2 Salasanan vaihto... 2 Oma käyttäjäprofiili... 3 Työskentely

Lisätiedot

DNA Toimistoviestintä Microsoft - sähköposti

DNA Toimistoviestintä Microsoft - sähköposti DNA Toimistoviestintä Microsoft - sähköposti 30.10.2013 Luottamuksellinen MS Outlook, Standard postitilin asennus 1/6 Käynnistä Outlook 2010. Seuraava näyttö avautuu Valitse Next (Seuraava). 2 MS Outlook,

Lisätiedot

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto If you are searched for a book by Miikka Poikselkä;Harri Holma;Jukka Hongisto Voice over LTE (VoLTE) in pdf form, then you have come

Lisätiedot

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä 2.2. Sähköposti Käyttäjäliitäntä (user ) sanomien kirjoittaminen, lukeminen ja lähettäminen Postipalvelin (mail server) postilaatikot Postiprotokolla sanomien toimittaminen lähettäjän postijärjestelmästä

Lisätiedot

Käyttäjänedustaja (User Agent) Internetin kuljetusprotokollat. Sovellus ja kuljetuspalvelun laatu

Käyttäjänedustaja (User Agent) Internetin kuljetusprotokollat. Sovellus ja kuljetuspalvelun laatu 2. Sovelluksia ja sovellusprotokollia 2.1. WWW (World Wide Web) 2.2. Sähköposti 2.3. DNS (Domain NameSystem) Verkkosovellus sovellusprotokolla Sovellusprotokolla on vain osa hajautettua sovellusta

Lisätiedot

Sähköpostitilin käyttöönotto

Sähköpostitilin käyttöönotto Sähköpostitilin käyttöönotto Versio 1.0 Jarno Parkkinen jarno@atflow.fi Sivu 1 / 16 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.2 Tietojen

Lisätiedot

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros Chapter 3 Transport ayer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-)) BLOGIN LUOMINEN Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.org) Avaa http://wordpress.com/ -sivu. Aloita oman

Lisätiedot

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

1. Liikkuvat määreet

1. Liikkuvat määreet 1. Liikkuvat määreet Väitelauseen perussanajärjestys: SPOTPA (subj. + pred. + obj. + tapa + paikka + aika) Suora sanajärjestys = subjekti on ennen predikaattia tekijä tekeminen Alasääntö 1: Liikkuvat määreet

Lisätiedot

Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet

Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet 15.11.2012 Sisällysluettelo 1 Johdanto... 3 1.2 Interaktiivinen FTP-yhteystapa... 3 1.3 Linkki aineistosiirtopalveluun liittyvät dokumentit...

Lisätiedot

ELEC-C7241 Tietokoneverkot Sovelluskerros

ELEC-C7241 Tietokoneverkot Sovelluskerros ELEC-C7241 Tietokoneverkot Sovelluskerros Pasi Sarolahti (useat kalvot: Sanna Suoranta) 16.1.2018 Agenda Viiveet Kuinka suhtautuvat toisiinsa? DNS dig Web Netcat / curl Sähköposti Wireshark Alustusta kuljetuskerrokselle

Lisätiedot

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä Arkkitehtuuritietoisku eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä Esikysymys Kuinka moni aikoo suunnitella projektityönsä arkkitehtuurin? Onko tämä arkkitehtuuria?

Lisätiedot

7. Product-line architectures

7. Product-line architectures 7. Product-line architectures 7.1 Introduction 7.2 Product-line basics 7.3 Layered style for product-lines 7.4 Variability management 7.5 Benefits and problems with product-lines 1 Short history of software

Lisätiedot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

Web Service torilla tavataan!

Web Service torilla tavataan! Web Service torilla tavataan! Jari Putula Avarea Oy COPYRIGHT BY AVAREA 2009 1 Google Trends COPYRIGHT BY AVAREA 2009 2 1 1. Mahdollistajat 2. Web service? 3. KISS 4. Miksi? 5. Analogia 6. Ajax 7. Esimerkki

Lisätiedot

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

TW-LTE 4G/3G. USB-modeemi (USB 2.0) TW-LTE 4G/3G USB-modeemi (USB 2.0) Tiedonsiirtonopeus: 100 Mbps/50 Mbps LTE: 1800/2100/2600 MHz GSM/GPRS/EDGE: 850/900/1800/1900 MHz UMTS: 900/2100 MHz Pikaohje (Finnish) CE Käyttöönotto- ohje SIM- kortin

Lisätiedot

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. Pekka Ollikainen Open Source Microsoft CodePlex bio Verkkosivustovastaava Suomen Sarjakuvaseura

Lisätiedot

The CCR Model and Production Correspondence

The CCR Model and Production Correspondence The CCR Model and Production Correspondence Tim Schöneberg The 19th of September Agenda Introduction Definitions Production Possiblity Set CCR Model and the Dual Problem Input excesses and output shortfalls

Lisätiedot

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE Vaihe 1, Client manager ohjelmiston ja sovittimen ajureiden asennus Asennuksen vaiheissa saattaa olla sovitin ja käyttöjärjestelmä kohtaisia eroja. Alla olevassa

Lisätiedot

amkbyod-tulostaminen Huittisten ja Kankaanpään kampuksilla / BYOD printing in Huittinen and Kankaanpää campuses

amkbyod-tulostaminen Huittisten ja Kankaanpään kampuksilla / BYOD printing in Huittinen and Kankaanpää campuses OHJE 1(5) amkbyod-tulostaminen Huittisten ja Kankaanpään kampuksilla / BYOD printing in Huittinen and Kankaanpää campuses 1. Kirjaudu omalta laitteeltasi osoitteeseen: http://webprint.samk.fi/. Open browser

Lisätiedot

Business Opening. Arvoisa Herra Presidentti Very formal, recipient has a special title that must be used in place of their name

Business Opening. Arvoisa Herra Presidentti Very formal, recipient has a special title that must be used in place of their name - Opening Finnish Norwegian Arvoisa Herra Presidentti Very formal, recipient has a special title that must be used in place of their name Hyvä Herra, Formal, male recipient, name unknown Hyvä Rouva Formal,

Lisätiedot

SUOMALAISIA SOVELLUKSIA Pikaopas Getting started SD InnoWorks www.innoworks.fi tuki@innoworks.fi Kimmo Liukkonen Software Specialist p. +358 40 933 2510 Sisällysluettelo Table of contents Uuden profiilin

Lisätiedot

LYTH-CONS CONSISTENCY TRANSMITTER

LYTH-CONS CONSISTENCY TRANSMITTER LYTH-CONS CONSISTENCY TRANSMITTER LYTH-INSTRUMENT OY has generate new consistency transmitter with blade-system to meet high technical requirements in Pulp&Paper industries. Insurmountable advantages are

Lisätiedot

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti Kuljetus- ja sovelluskerroksen tietoturvaratkaisut Transport Layer Security (TLS) ja Secure Shell (SSH) TLS Internet 1 2 Transport Layer Security (TLS) Sopii monenlaisille sovellusprotokollille, esim HTTP

Lisätiedot

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti Kuljetuskerros Tietokoneverkot Matti Siekkinen Pasi Sarolahti Osa sisällöstä adaptoitu seuraavista lähteistä: J.F. Kurose and K.W. Ross: Computer Networking: A Top-Down Approach 6th ed. -kirjan lisämateriaali

Lisätiedot

anna minun kertoa let me tell you

anna minun kertoa let me tell you anna minun kertoa let me tell you anna minun kertoa I OSA 1. Anna minun kertoa sinulle mitä oli. Tiedän että osaan. Kykenen siihen. Teen nyt niin. Minulla on oikeus. Sanani voivat olla puutteellisia mutta

Lisätiedot

Miksi Suomi on Suomi (Finnish Edition)

Miksi Suomi on Suomi (Finnish Edition) Miksi Suomi on Suomi (Finnish Edition) Tommi Uschanov Click here if your download doesn"t start automatically Miksi Suomi on Suomi (Finnish Edition) Tommi Uschanov Miksi Suomi on Suomi (Finnish Edition)

Lisätiedot

Portugalin tasavallan aloite neuvoston päätökseksi Schengenin konsultointiverkoston (tekniset eritelmät) osan 1 muuttamisesta

Portugalin tasavallan aloite neuvoston päätökseksi Schengenin konsultointiverkoston (tekniset eritelmät) osan 1 muuttamisesta Conseil UE EUROOPAN UNIONIN NEUVOSTO Bryssel, 26. lokakuuta 2007 (07.11) (OR. en) PUBLIC 14215/07 LIMITE VISA 334 COMIX 924 ILMOITUS Lähettäjä: Vastaanottaja: Asia: Puheenjohtajavaltio Viisumityöryhmä

Lisätiedot

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat Teollisuusautomaation tietoturvaseminaari Purchasing Manager, Hydro Lead Buyer, Industrial Control Systems 1 Agenda / esityksen tavoite

Lisätiedot

16. Allocation Models

16. Allocation Models 16. Allocation Models Juha Saloheimo 17.1.27 S steemianalsin Optimointiopin seminaari - Sks 27 Content Introduction Overall Efficienc with common prices and costs Cost Efficienc S steemianalsin Revenue

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Use of spatial data in the new production environment and in a data warehouse

Use of spatial data in the new production environment and in a data warehouse Use of spatial data in the new production environment and in a data warehouse Nordic Forum for Geostatistics 2007 Session 3, GI infrastructure and use of spatial database Statistics Finland, Population

Lisätiedot

Software Signing System System overview and key domain concepts

Software Signing System System overview and key domain concepts Software Signing System System overview and key domain concepts Copyright 2004 F-Secure Corporation. All rights reserved. Contents 1 System overview...1 2 Main domain concepts...2 3 Roles and user groups...3

Lisätiedot

OFFICE 365 OPISKELIJOILLE

OFFICE 365 OPISKELIJOILLE OFFICE 365 OPISKELIJOILLE Table of Contents Articles... 3 Ohjeet Office 365 käyttöönottoon... 4 One Driveen tallennetun videon palauttaminen oppimisympäristön palautuskansioon... 5 Changing default language

Lisätiedot

Verkottunut suunnittelu

Verkottunut suunnittelu Rintekno Oy / JMM / 10.1.2002 Verkottunut suunnittelu DOKUMENTTI- POHJAINEN Tarkastus ja hyväksyntä Automaattinen dokumenttien luonti MALLIPOHJAINEN 2D:SSÄ JA 3D:SSÄ Tarkastus ja hyväksyntä Virtuaaliset

Lisätiedot

100 % Kaisu Keskinen Diat

100 % Kaisu Keskinen Diat 100 % Kaisu Keskinen Diat 98-103 4-1 Chapter 4: outline 4.1 introduction 4.2 virtual circuit and datagram 4.3 what s inside a router 4.4 IP: Internet Protocol datagram format IPv4 addressing ICMP IPv6

Lisätiedot

TW- WLAN 802.11ac SOVITTIMEN ASENNUSOHJE

TW- WLAN 802.11ac SOVITTIMEN ASENNUSOHJE TW- WLAN 802.11ac SOVITTIMEN ASENNUSOHJE Copyright TeleWell Oy Tekniset tiedot: - - - - - - - Yhteensopiva IEEE 802.11b/g/n/ac - standardien kanssa Taajuusalueet 2.4 GHz ja 5 GHz Maksiminopeus: 300 Mbps

Lisätiedot

ELEC-C7241 Tietokoneverkot Sovelluskerros

ELEC-C7241 Tietokoneverkot Sovelluskerros ELEC-C7241 Tietokoneverkot Sovelluskerros Pasi Sarolahti (useat kalvot: Sanna Suoranta) 17.1.2017 Agenda Viiveet Kuinka suhtautuvat toisiinsa? DNS dig Web Netcat / curl Sähköposti Wireshark (Verkkosovellukset)

Lisätiedot

Sovelluskerros. Chapter 2 Application Layer. Sovelluskerros. Joitain verkkosovelluksia. Verkkosovelluksen luominen. Sovellusarkkitehtuurit

Sovelluskerros. Chapter 2 Application Layer. Sovelluskerros. Joitain verkkosovelluksia. Verkkosovelluksen luominen. Sovellusarkkitehtuurit Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

Lisätiedot

ESPOO VANTAA INSTITUTE OF TECHNOLOGY. ser 0/0. Right WS-3 WS-4. Ennen QoS-määrittelyjä tehdään normaalit reititinmäärittelyt ja testataan IP-yhteys:

ESPOO VANTAA INSTITUTE OF TECHNOLOGY. ser 0/0. Right WS-3 WS-4. Ennen QoS-määrittelyjä tehdään normaalit reititinmäärittelyt ja testataan IP-yhteys: Demo 9: LLQ Kytkentä Esimerkkiverkko koostuu kahdesta 2600-sarjan reitittimestä, jotka on yhdistetty hitaalla 128 kbit/s yhteydellä. Molempien reitittimien FastEthernet 0/0-liitäntään on liitetty kytkin,

Lisätiedot

Nykyaikainen viestintäalusta

Nykyaikainen viestintäalusta Nykyaikainen viestintäalusta OSALLISTUMINEN TUOTTAVUUS Mitä viestintä ja milloin Milloin Ensi tapaaminen, tärkeä neuvottelu jne Menetelmä Henkilökohtainen Arvo / vaikutus Suurin vaikutus Päätöksentekoa

Lisätiedot

Telecommunication Software

Telecommunication Software Telecommunication Software Final exam 21.11.2006 COMPUTER ENGINEERING LABORATORY 521265A Vastaukset englanniksi tai suomeksi. / Answers in English or in Finnish. 1. (a) Määrittele sovellusviesti, PersonnelRecord,

Lisätiedot

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Rich Web Applications in Server-side Java without Plug-ins or JavaScript Rich Web Applications in Server-side Java without Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like web apps New configs, taglibs

Lisätiedot

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps Pikaohje Laite toimii Windows XP SP3, Windows 7,8,10 ja Mac OSx 10.5 tai käyttöjärjestelmissä, Linux tuki netistä ladattavilla ajureilla USB portin

Lisätiedot