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

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

Grundläggande datavetenskap, 4p

Datakommunika,on på Internet

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

Informationsteknologi sommarkurs 5p, Datakommunikation

IT för personligt arbete F2

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

5 Internet, TCP/IP och Tillämpningar

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

TCP/IP och Internetadressering

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

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

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

Datakommunika,on på Internet

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

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

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

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

5. Internet, TCP/IP och Applikationer

OSI-modellen. Skiktade kommunikationsprotokoll. OSI-Modellen. Vad är en bra skiktindelning? Fysiska skiktet. Länkskiktet

F8 Meddelandesändning med UDP

Datakommunikation och Internet

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

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

Tentamen Nätverksprogrammering Lösningsförslag

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

Datasäkerhet och integritet

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

Instuderingsfrågor ETS052 Datorkommuniktion

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

5 Internet, TCP/IP och Applikationer

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

Tentamen i Datorkommunikation den 10 mars 2014

10 Kommunikation i Java

Webbservrar, severskript & webbproduktion

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.

F1 Nätverk och meddelandesändning

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

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

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

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

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

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

Modul 6 Webbsäkerhet

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

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

Föreläsning 7. DD2390 Internetprogrammering 6 hp

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

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

Datainsamling över Internet

Grundläggande nätverksteknik. F1: Introduk6on

Java Secure Sockets Extension JSSE. F5 Secure Sockets EDA095 Nätverksprogrammering! Roger Henriksson Datavetenskap Lunds universitet

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

Christer Scheja TAC AB

DIG IN TO Nätverksteknologier

Övningar - Datorkommunikation

Tentamen Nätverksprogrammering Lösningsförslag

Föreläsning 5 Meddelandesändning med TCP

Grundläggande nätverksteknik. F7: Rep66on

F1 Nätverk och meddelandesändning

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

F5 Meddelandesändning med TCP

Föreläsning 4: Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll Transportprotokoll. Emma Fitzgerald

Tentamen Nätverksprogrammering Lösningsförslag

Hjälpprotokoll till IP

Lösningar till tentan i ETS052 Datorkommunikation

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

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

2D1395, Datasäkerhet. GF3 Paketfiltrering

Stora datanät. Maria Kihl

Mattias Wiggberg 1. Datorkommunikation, grundbegrepp. Skiktade kommunikationsprotokoll

Föreläsning 5 Meddelandesändning med TCP

Administration: Grundläggande internetprogrammering

F1 Nätverk och meddelandesändning

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

Tentamen Nätverksprogrammering Lösningsförslag

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

DIG IN TO Nätverksteknologier

Datakommunikation I 5p

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

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

att det finns inte något nätverk som heter Internet Finns Internet? Varför fungerar det då? Nätet? Jag påstår

Kapitel 6, 7, o 8: ARP Vägval Från användare till användare. Jens A Andersson (Maria Kihl)

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Vad är Internet? - Flera olika slags nät - Vill kunna kommunicera över dessa nät - Vad gör man?

TENTAMEN. Kurskod/Kurs: 5DV013, Datakommunikation och datornät. Ansvariga lärare: Jerry Eriksson Anders Broberg

F9 Meddelandesändning med UDP

Läs anvisningarna noga, och följ dem!

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

1. Internets Applikationer 8 poäng

Tentamen i ETSF15 Kommunikationssystem och Nätverk

DIG IN TO Nätverksteknologier

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

IP-baserade program. Telnet

DIG IN TO Nätverksteknologier

Varför fungerar det då? Elektro- och informationsteknik Lunds Tekniska Högskola

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Transkript:

Föreläsning 1 DD1389 Internetprogrammering 6 hp Kursintroduktion Lärare: Vahid Mosavat, vahid@kth.se Kursaktivitet: föreläsningar, laborationer Kursmaterial: labbinstruktioner, föreläsningsanteckningar Examination: - Sju obligatoriska labbar - Obligatoriskt projekt (grupp av 1 till 3) (Betyg E-A) - 6 bonusgivande extrauppgifter (frivilliga men påverkar betyget) Kurshemsidan: https://kth.instructure.com/courses/491 1 2 Allmänt Kursens mål: Använda olika moderna teknik för att utveckla applikationer baserad på Client/Server modellen där klienten (vanligtvis) utgörs av en webbläsare och servern av en webbserver Treskiktslösningar: - Klienten utgör presentationsskiktet av tillämpningen - Servern hanterar den bakomliggande logiken - Databasservern utgör också ett eget skikt men behandlas endast i ringa omfattning i denna kurs Främst java kommer att användas som men även språk och mycket av kursen rör kring paketet java.net, På klientsidan... I presenta4onsskiktet behandlas främst layout men även enklare logiska funk4oner t.ex. validering av inmatning. Vi kommer främst aa använda HTML, CSS och Javascript. 3 4 På serversidan... Webbserver: HTTP, HTTPS (Hypertext Transfer Protocol) Port 80 passiv Server-side scripting (kräver webbserver) : Genererar dynamisk HTML-sida PHP (5.3 och äldre versioner), CGI- skript: perl, och egentligen alla program Webb applikationer: genererar dynamisk HTML-sida med en utformning skräddarsydd för ett visst ändamål, t.ex webbmail, instant messaging, osv Node.js, Java EE. 5 Och dessutom... Grundläggande nätverksterminologi Socket Kryptering (JSSE) 6 1

Laborationer Labb 0: GitHub Labb 1: Socketar & Trådar (Chat-system) Labb 2: HTTP-protokollet (Gissa tal) Labb 3: DHTML, JavaScript (Sänka skepp) Labb 4: PHP (Bostadsköp) Labb 5: Node.js (Handelssystem) Labb 6: JSSE (Krypterad anslutning) Dessa 7 labbar utgör momentet LAB1 (4.5 hp) Projekt: Utgör momentet PRO1 (1.5 hp) Deadline Labb/uppgi) So) deadline Hård deadline Labb1X 170125 170125 Labb2X 170201 170203 Labb3X 170208 170210 Labb4x 170215 170217 Labb5X 170222 170224 Projektspecifika4on 170301 170301 Labb6X 170301 170303 Projekt 170316 170319 Läs mer om soft och hård deadlines på kurssidan 7 8 Grundläggande begrepp Nätverkstyper Protokoll OSI-lager Sockets, enkel sever-klient applikation Kretskopplade nätverk En fysik förbindelse etableras mellan två enheter med hjälp av växlar innan överföringen påbörjar. Alla inblandade resurser låses av denna uppkoppling Det kan ta lång tid att upprätthålla en anslutning. Ömtålig t.ex om en resurs går sönder under överföringen Begränsad kapacitet Analog med traditionellt telefon-samtal 9 10 Paketväxlande nätverk internet och Internet Ett internet är en samling av nätverk som kan kommunicera med varandra, mans kulle kunna säga ett nätverk av nätverk Förbindelse-lös kommunikation Pakten överförs oberoende av varandra Fullständig adressinformation om avsändare och mottagare Paketen kan ta olika vägar Paketen kan tappas bort eller dubbleras Nätet kan inte bli upptaget bara långsammare Hållbar överföring T.ex: IP(Internet Protocol), UDP (User Datagram Protocol) 11 Det mest kända internet kallas Internet 12 2

Protokoll De regler och överenskommelse kring kommunikation mellan två enheter som kommunicerar med varandra Uppgifter Skapa förbindelser Vägval Sönderdelning av data Sammansättning av data Upprättande av ordningsföljd vid överföring Felkorrigering Protokoll På lokala nätverk och även Internet är protokollen organiserade i fem lager: - Fysiskt lagret: t.ex fiberop4k, seriell kabel etc - Länklagret: skapar t.ex förbindelser mellan enheter - Nätverkslagret: hanterar t.ex vägval och flödesreglering - Transportlager: tar t.ex hand om bl.a ordningsföljd, felkorrigering - Applika4onslager: högsta nivån, här finns 4llämpningsprotokollet själv, t.ex hap eller [p Datamängden som ska sändas delas upp i ea eller flera paket (datagram). Paketen från högre nivå förpackas i paket på lägre nivå. Denna struktur brukar benämnas protokollstacken. 13 Exempel på HTTP protokoll ~> telnet www.csc.kth.se 80 Trying 130.237.227.116... Connected to sippans.csc.kth.se. Escape character is '^]. GET /~vahid/intnet17/f1.html HTTP/1.0 HTTP/1.1 200 OK Date: Tue, 18 Jan 2016 09:02:31 GMT Server: Apache Last-Modified: Mon, 17 Jan 2016 20:52:39 GMT ETag: "f222100-27-eef413c0" Accept-Ranges: bytes Content-Length: 39 Connection: close Content-Type: text/html Internetprogrammering är roligt! Connection closed by foreign host. ~> Request Respons 15 OSI-modellen Interna4onella organisa4onen för standardisering (ISO) har utvecklat en referens modell bestående av sju lager, Open Systems Interconnec4on (OSI), som beskriver hur informa4on överförs från en maskin 4ll en annan maskin. Modellen hjälper leverantörer och nätverksadministra4oner få ea bäare förståelse om hur data hanteras och överförs mellan olika nätverks anordning så väl som aa förse en riktlinje för implementering av nya nätverks standard och teknologier. 16 Protokollstacken Protokollstacken 17 18 3

TCP/IP stacken och OSI-modellen Datagram Innehåller följande informa4on Header - Avsändaradress - Des4na4onsadress - Typ av innehåll (t.ex TCP, UDP etc) - Längd av data - Fel-kontroll Data - Själva användarinforma4onen (payload) 19 Footer - Endast för vissa protokoll - Felkontroll 20 Länklagret Länklagret representerar den fysiska nivån på vilken all verklig kommunika4on sker. På LAN utgörs länklagret o[ast av Ethernet. På WAN utgörs länklagret av t.ex ATM (Asynchronous Transfer Mode) Nätverkslagret (IP) EA protokoll för aa överföra data mellan olika nätverk. Är oberoende av det underliggande nätets implementa4on (t.ex Ethernet, ATM). Då den verkliga kommunika4onen endast sker på länklagret finns en teknik för aa översäaa mellan IP-adress och fysisk (länk) adress, ARP (adress resolu4on protocol). Tillståndslöst protokoll Paketen kan fördubblas eller försvinna En IP adress består av 4 bytes och har formatet 130.237.225.94. TTL: kontrollfält Dagens IPv4 håller på aa ersäaas med IPv6 som har en adressrymd på 128 bitar. 21 22 IP-rou4ng Medans en värd endast bryr sig om paket som är adresserade till sig själv så behandlar en router alla inkommande paket. Routrar routing-tabell network-id skickar routern ett sk ICMP host unreachable eller network unreachable 23 Transportlager: TCP, UDP, ICMP TCP (Transmission Control Protocol) - Förbindelseorienterad (logiskt) - Säker transport (blanda inte med sekretess) - Data förloras inte (förlorad data skickas igen) - Data fördubblas inte (fördubblad data slängs) - Data kommer fram i räa ordning UDP (User Datagram protocol) - Förbindelselöst - Data kan förloras (kommer inte heller skickas igen) - Data kan fördubblas (fördubblad data slängs inte) - Data kan komma fram i fel ordning ICMP (Internet Controll Message Protocol) - Kopplat 4ll TCP - Skickas av moaagare som väntat på ea paket som inte kommit fram - traceroute 24 4

Applika4onslager Förhållande mellan protokollen I applika4onslagret finns en mängd olika protokoll beroende på vilken tjänst som används: HTTP surfning HTTPS krypterad HTTP FTP filöverföring POP3 epostmoaangande SMTP epostskickande DNS IP adress <--> DNS-namn översäaning Telnet okrypterad kärrinloggning SSH Krypterad kärrinloggning DHCP För aa 4lldela klienter ea dynamisk ip-adress i ea nätverk. Ping För aa kolla om en värd är uppe 25 26 Socket Socket används för aa uppräaa en anslutning baserat på IP mellan två maskiner. En socketanslutning som exempelvis använder port 22 för aa vänta på anslutningar kan använda en annan port för fortsaaa kommunika4onen e[er aa en anslutning har uppräahållits. I java finns följande klasser implementerade som är alltså gränssnia mot datorns nätverkssocket: java.net.socket java.net.serversocket Klientens port slumpas 27 import java.io.*; import java.net.*; Exempel Server del 1/2 public class Server{ public static void main(string[] args) throws Exception{ ServerSocket serversckt = new ServerSocket(1234); Socket sckt; while( (sckt = serversckt.accept())!= null){ BufferedReader indata = new BufferedReader( new InputStreamReader(sckt.getInputStream())); String text; while( (text = indata.readline())!= null){ System.out.println(text); sckt.shutdowninput(); 28 Exempel Client del 2/2 import java.net.*; import java.io.*; public class Client{ public static void main(string[] args){ try{ Socket sckt = new Socket("leguin.csc.kth.se",1234); PrintStream out = new PrintStream(sckt.getOutputStream()); BufferedReader indata = new BufferedReader( new InputStreamReader(System.in)); String text; while((text = indata.readline())!= null) out.println(text); sckt.shutdownoutput(); catch (Exception e){ System.err.println("Ett fel intraffade!"); 29 5