Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Relevanta dokument
Datakommunika,on på Internet

Grundläggande datavetenskap, 4p

IT för personligt arbete F2

Grundläggande nätverksteknik. F2: Kapitel 2 och 3

Nätverk och Java, grunder Föreläsning 0: 0: Introduktion till Internet

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Nätverk grunder Föreläsning 1: 1: Introduktion till Internet

Föreläsning 1. På klientsidan... Allmänt. På serversidan... Och dessutom... DD1389 Internetprogrammering 6 hp

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Datakommunikation och Internet

Datakommunika,on på Internet

Christer Scheja TAC AB

Grundläggande nätverksteknik. F3: Kapitel 4 och 5

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

F5 Meddelandesändning med TCP

F8 Meddelandesändning med UDP

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Datasäkerhet och integritet

TCP/IP och Internetadressering

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

1 PROTOKOLL. Nätverk. Agenda. Jonas Sjöström

Föreläsning 5 Meddelandesändning med TCP

Mattias Wiggberg 1. Orientera på Internet. IP-adress. IP-adresserna räcker inte... Mer om IP-adresser

Stora datanät. Maria Kihl

Föreläsning 5 Meddelandesändning med TCP

Administration: Grundläggande internetprogrammering

Övningar - Datorkommunikation

Kapitel 5: Lokala nät Ethernet o 802.x. Lokala nät. Bryggan. Jens A Andersson (Maria Kihl)

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

IP Från användare till användare Vägval DNS Jens A Andersson (Maria Kihl) Att skicka data över flera länkar. Nätprotokoll

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

IP-baserade program. Telnet

TNMK30 - Elektronisk publicering

Internet. Internet hur kom det till? Internets framväxt. Ett hierarkiskt uppbyggt telenät Kretskopplat/circuit switching

5 Internet, TCP/IP och Tillämpningar

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Föreläsning 5: Stora datanät Från användare till användare ARP

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

Datainsamling över Internet

Kapitel 6, 7, o 8: IP DNS Vägval Från användare till användare Jens A Andersson (Maria Kihl) Att skicka data över flera länkar.

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

Föreläsning 6 Mål. Mänskor och IP adresser. Domain Name System (1/3) Numeriska adresser används i Internet

Från användare till användare ARP. (Maria Kihl)

F1 Nätverk och strömmar

10 Kommunikation i Java

Nätverksprogrammering. Tekniker för att skriva program som kommunicerar med varandra över ett nätverk. F1 Nätverk och strömmar.

5. Internet, TCP/IP och Applikationer

F1 Nätverk och meddelandesändning

Protokoll i flera skikt Fragmentering Vägval DNS. Jens A Andersson

Stora datanät Från användare till användare. Jens A Andersson

Tentamen Nätverksprogrammering Lösningsförslag

Webbservrar, severskript & webbproduktion

DIG IN TO Nätverksteknologier

Föreläsning 9. Transportskiktet. User Datagram Protocol (1/2) Introduktion till modern telekommunikation Gunnar Karlsson, Bengt Sahlin 1

Från användare till användare. (Maria Kihl)

Webbserver och HTML-sidor i E1000 KI

F1 Nätverk och meddelandesändning

Tentamen i Datorkommunikation den 10 mars 2014

F02 En första sida. Dagens agenda

Modul 6 Webbsäkerhet

Grundläggande nätverksteknik. F7: Rep66on

2D1395, Datasäkerhet. GF3 Paketfiltrering

DA 2012: F13. Nätverk 2 Ann-Sofi Åhn

Föreläsning 1 Nätverk och strömmar

Föreläsning 5: ARP (hur hitta MAC-adress) IPv4, IPv6 Transportprotokoll (TCP) Jens A Andersson

Litteratur. Nätverk, Internet och World Wide Web. Olika typer av nätverk. Varför nätverk? Anne Diedrichs Medieteknik Södertörns högskola

Hur Internet fungerar?

DIG IN TO Nätverksteknologier

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Protokoll i flera skikt Fragmentering Vägval DNS. Jens A Andersson

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

Kapitel 6, 7, o 8: IP DNS. Från användare till användare. Jens A Andersson

Socket-programmering. Programmering för distribution. Klient/server ansatsen. Klient/server ansatsen TCP/IP protokollgrafen Java-programering

F9 Meddelandesändning med UDP

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

ETSF05 Repetition av KomSys

DIG IN TO Nätverksteknologier

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

F1 Nätverk och meddelandesändning

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

TNMK30. Elektronisk publicering

5. Internet, TCP/IP tillämpningar och säkerhet

Hyperlänkar. I HTML skapar man en hyperlänk med taggen <a> </a>, som är en förkortning av ordet ankare, på (engelska anchor).

5 Internet, TCP/IP och Applikationer

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Tentamen Nätverksprogrammering Lösningsförslag

Informationsteknologi sommarkurs 5p, Datakommunikation

Arbetsmaterial HTML pass 1 - Grunder

DIG IN TO Nätverksteknologier

Föreläsning 9 Transportprotokoll UDP TCP

! Katerina Vrotsou! Medieteknik. 2004! Informationsvisualisering, visuell data analys

File Transfer Protocol (FTP) Problem och lösningar

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Transkript:

Objektorienterad Programkonstruktion Föreläsning 10 7 dec 2015

Nätverksprotokoll - OSI Open Systems Interconnection model (ISO standard) definierar 7 lager för nätverkskommunikation: 1 - Physical Layer: kablar, kontakter, bärvågor, bitdefinitioner 2 - Data Link Layer: fysisk adressering och kommunikation mellan två noder (t.ex Ethernet) 3 - Network Layer: logisk adressering (t.ex IPv6) 4 - Transport Layer: uppkopplingar, tillförlitlighet (t.ex TCP/UDP) 5 - Session Layer: autenticering, sessioner (NetBIOS, PPTP) 6 - Presentation layer: teckenkodning, kryptering (TLS, SSL) 7 - Application Layer: Syntax för själva dataöverföringen (t.ex HTTP, POP3, FTP, SSH)

Nätverksprotokoll Internet Protocol Suite Kallas ibland även TCP/IP efter de mest använda protokollen lager för nätverkskommunikation: (Physical) 1 - Physical Layer: kablar, kontakter, bärvågor, bitdefinitioner Link Internet 2 - Data Link Layer: fysisk adressering och kommunikation mellan två noder (t.ex Ethernet) 3 - Network Layer: logisk adressering (t.ex IPv6) Transport 4 - Transport Layer: uppkopplingar, tillförlitlighet (t.ex TCP/UDP) 5 - Session Layer: autenticering, sessioner (NetBIOS, PPTP) Application 6 - Presentation layer: teckenkodning, kryptering (TLS, SSL) 7 - Application Layer: Syntax för själva dataöverföringen (t.ex HTTP, POP3, FTP, SSH)

HTTP Application Layer Beskriver att antal olika kommandon som en klient kan skicka till en server, och hur servern ska svara

Kommunikationsordning för webbläsare Skickar en begäran till en server Får ett svar från servern, som kan innehålla HTML Tolkar HTML, genererar en sidvisning Tar in signaler från användaren, utifrån dessa kan den skicka en ny förfrågan till en server, osv...

HTTP - Exempel GET /helloworld.html HTTP/1.1 Host: www.hello.net HTTP/1.1 200 OK Date: Mon, 05 Dec 2011 09:15:00 GMT Server: Apache/1.2.3.4 (Unix) (Debian/Linux) Last Modified: Mon, 05 Dec 2011 06:07:08 GMT Etag: "31337 123 1337b03f" Accept Ranges: bytes Content Length: 1337 Connection: close Content Type: text/html; charset=utf 8 <html>...

HTML HyperText Markup Language Standard som definieras av W3C Är en applikation av SGML (Standard Generalized Markup Language) Det finns också XHTML, som är en XML-applikation, och lättare att tolka Innehåller bland annat taggar för textformatering, rubriker, tabeller, bilder, mm Innehåller taggar för hyperlänkar, så att man kan koppla ihop ett dokument med ett annat (eller en annan del av sig själv) <a href="http://www.google.com">leta här!</a>

HTML Minimalt giltigt HTML-dokument <!DOCTYPE html> <html> <head> <title>hello World</title> </head> <body> <p>hello world!</p> </body> </html>

Nätverksadresser URL - Uniform Resource locator - addresserar resurser på internet scheme://domain:port/path? query_string#fragment_id IP-adress - ett nummer för varje apparat ansluten till ett nätverk. En apparat anslutet till ett nätverk kan ha samma nummer som en annan apparat i ett annat nätverk, t.ex 192.168.1.1 Portnummer: Ett sätt att adressera olika processer i en maskin. T.ex kan en webserver ta emot anslutningar på port 80, medan port 25 tar emot SMTP-anslutningar. Portar anges som 16 bitars heltal. De första 1024 portarna är reserverade för well known ports och kräver root-rättigheter för att använda på UNIX-system.

URL:er i Java Klassen URL har en konstruktor som tar en sträng, t.ex "http://www.cas.kth.se:80/~ccs/index.html" Klassen kan plocka ut alla intressanta delar ur URL:en automatiskt: URL.getProtocol() > http URL.getAuthority() > www.cas.kth.se:80 URL.getHost() > www.cas.kth.se URL.getPort() > 80 URL.getPath() > ~ccs/index.html Kan anges till en JEditorPane för att hämta HTML-kod

TCP Transmission Control Protocol Kontrollerar att alla datapaket kommer fram, skickar nya paket om inget svarsmeddelande kommer tillbaka Garanterar ordningen, dvs, alla paket kommer fram I samma ordning som de skickades Plockar bort dubletter Lämplig för t.ex filöverföring Kan ibland få fördröjningar på flera sekunder om borttappade paket behöver skickas om flera gångar

UDP User Datagram Protocol Enkelt protokoll utan felkontroller Garanterar inte att alla paket kommer fram Meddelar inte om paket kommit bort Garanterar inte att alla paket kommer i rätt ordning Plockar inte bort dubletter Antar att applikationen gör alla felkollar som behövs Lämplig för t.ex realtidsapplikationer

TCP vs UDP

TCP

UDP

Socket En slutpunkt för en internetanslutning Kan användas av processer för att skriva till/läsa från nätverket Initieras av användarprocesser, administreras av operativsystemet Identifieras unikt genom Local Socket Address (lokal IP och port) Remote Socket Address (TCP:motpartens IP och port) Protocol (t.ex TCP, UDP) När kontakt har etablerats kan man skriva och läsa mellan två processer (på två olika datorer)

Socket i Java Två olika klasser: Socket och ServerSocket Socket används för att ansluta till en annan dator ServerSocket används för att lyssna efter och ta emot anslutningar från en annan dator När en anslutning har etablerats kan man skriva och läsa till dem med t.ex en PrintWriter och en BufferedReader på ungefär samma sätt som man läser/skriver till en fil Man kan läsa/skriva otolkade (råa) bytes, eller hålla koll på teckenkodningar och skicka text. Det förra är bättre för överföring av binära data, tex filer, det senare för överföring av textinformation, t.ex i chat-program

Socket try{ mysocket = new Socket("myhost", 1025); out = new PrintWriter( mysocket.getoutputstream(), true); in = new BufferedReader(new InputStreamReader( mysocket.getinputstream())); }catch(unknownhostexception IOException e){ System.out.println("Error: " + e); } Om uppkopplingen fungerade kan man nu skriva: out.println("text!"); String mystring = in.readline(); out.close(); in.close(); mysocket.close();

ServerSocket try { serversocket = new ServerSocket(1025); } catch (IOException e) { System.out.println("listen failed on port: 1025"); } try { clientsocket = serversocket.accept(); } catch (IOException e) { System.out.println("Accept failed: 1025"); } PrintWriter out = new PrintWriter( clientsocket.getoutputstream(), true); BufferedReader in = new BufferedReader( new InputStreamReader( clientsocket.getinputstream()));