Nätverk och Java, grunder Föreläsning 6

Slides:



Advertisements
Liknande presentationer
Att förstå anonymiteten (översättning från
Advertisements

E-post juni 2013.
Flexicon – Din systempartner
FTP, HTTP, HTML, XML och XHTML
En introduktion till ’Hård Infrastruktur’
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Maria Kihl och Jens A Andersson Kapitel 9: Applikationer.
Lektion 6 Mahmud Al Hakim
Mjukvara och nätverk Vad är det?.
Programmering B PHP Lektion 1
Nätverk och Java, grunder Föreläsning 0: Introduktion till Internet
Klasser och objekt.
”Ett sätt att distribuera Business Objects via webben”
Varför protokoll? När datorer ska kommunicera uppstår en rad liknande frågeställningar för att de ska kunna förstå varandra. Eftersom datorer dessutom.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Datornätverk A – lektion 2
1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius.
Network Addressing (Nätverksadressering)
Välkommen Vahid Mosavat
NETinfo 2009–10-09 Magnus Persson Epost: Telefon: 046 –
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl. Något om Cookies. Internetprogrammering.
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl Internetprogrammering F 14 Läs också: Kursboken.
En introduktion till ’Hård Infrastruktur’
Introduktion till IT och e-Tjänster Delkurs 3 1 Datorer i Nätverk En introduktion till ’Hård Infrastruktur’ DEL 2.
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
NÄTVERKSPROTOKOLL Föreläsning
Välkommen till Del 1.
Av Oliver och Emil. En kort historia om Internet Datorn uppfanns i slutet av 1950-talet. Det var då man försökte koppla ihop flera datorer för att skicka.
Internet Styrdatorer och kablar Uppkopplade användare Servrar 182.QRZN.
Lektion 3 Mahmud Al Hakim
TÄNK PÅ ETT HELTAL MELLAN 1-50
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Network Addressing Networking for Home and Small Businesses – Chapter.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Operating Systems Networking for Home and Small Businesses – Chapter.
Network Addressing (Nätverksadressering) Address Management (Adressunderhåll)
Servlets — Java på serversidan. previous next 2 Servlets Introduktion Javaservlets är en i raden av SUN:s många tillämpningar av Java. Servlets kan grovt.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Network Services Networking for Home and Small Businesses – Chapter.
UDP Pålitlig byteström TCP
Network Services (Nätverkstjänster) Client/Servers And Their Interaction (Client/Server och deras interaktion)
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
1.1. TechNet Security Summit 2004 Security Framework ”Introduktion av ”Security in Depth” Marcus Murray.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Oavsett om du tror att du kan, eller om du tror att du inte kan, har du helt rätt. ” -
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - DHCP (Dynamic Host Configuration Protocol)‏
6558/G558 DATAKOMMUNIKATION Jan Westerholm hösten 2005 / andra perioden.
1 Sockets Traditionellt har UNIX varit svag på IPC, InterProcess Communication. I augusti 1983 kom en ny IPC-mekanism i 4.2BSD som var enkel om konsistent.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
BVForum - en genomgång för revisorer Sören Thuresson.
NÄTVERKSPROTOKOLL Föreläsning
Repetition Datakommunikation I.
William Sandqvist Distributed Computing Client – Server. En skrivarserver kan vara ett exempel på en Client-Server arkitektur. S Burd, Systems.
DKN - teori1 DKN vecka 45 OSI 3 IP. DKN - teori2 The TCP/IP (DoD) Model.
Nätverk.
Datorkommunikation Lektion 8 Mahmud Al Hakim
Nätverk – optisk fiber Störningsfri Avlyssningssäker Snabb överföring Klarar långa avstånd Dyr Ömtålig.
Internet Historia: 1964 Kommunikationsystem för försvaret (USA)
Kapitel 2 forts – Nätverksmodeller Kapitel 1 - Introduktion
Nätverkskommunikation
Presentationens avskrift:

Nätverk och Java, grunder Föreläsning 6 Innehåll Kort om grundläggande nätverkskoncept Grundläggande WEB-koncept Internetadresser Se också Intro då mycket av det som sägs här också sagts på introduktionsföreläsningen Speciella referenser (som används i marginalen) Harold, dvs kursboken ”Java Network Programming” Intro, dvs introduktionsföreläsningen

Nätverk Ett nätverk är en samling av datorer eller annan utrustning Termer nod en maskin i nätverket (dator, skrivare, brygga, läskautomat, …) värd (eng. host) noder som är fullt fungerande datorer kallas för värdar adress varje nod i nätverket har en unik adress i form av en serie av bytes paket moderna nätverk är paket-baserade, dvs informationen bryts ner till och skickas som paket. Paketen hanteras därefter separat protokoll en uppsättning regler som specificerar hur kommunikationen i nätverket skall gå till Se Harold s. 12-14

(Ethernet, FDDI, Local Talk, drivers, …) Lager (eng. layer) Ett nätverk har olika kommunikationslager Se Harold s. 14-17 Logisk förbindelse Applikation (HTTP, FTP, Telnet, …) Transport (TCP, UDP, …) Nätverk (IP, …) Fysiskt (Ethernet, FDDI, Local Talk, drivers, …) Som applikationsprogrammerare arbetar vi oftast i det övre lagret För speciella distribuerade tillämpningar arbetar vi också i Transportlagret Övriga lager behöver vi normalt inte bry oss om

IP, TCP och UDP IP, Internet Protocol TCP, Transport Control Protocol protokollet som används på nätverksnivå av Internet TCP, Transport Control Protocol ett anslutningsbaserat protokoll som erbjuder tillförlitligt datautbyte mellan två noder UDP, User Datagram Protocol ett protokoll som tillåter skickande av oberoende paket av data från en nod till en annan utan att varken garantera att paketen kommer fram eller ordningen mellan dem är samma vid mottagandet som vid utskickandet Se Harold s. 17-19

IP-adress och DNS Varje dator på Internet identifieras med ett fyra-bytes (dvs 32 bitars) tal Många datorer har fasta nummer andra tilldelas temporära vid anslutning (tex vid anslutning via modem hemifrån) DNS, Domain Name Server IP-adresser är svåra att komma ihåg för människor Därför konstruerades DNS som kan översätta mer lättihågkomna namn till IP-adresser Tex www.nada.kth.se blir 130.237.222.66 Se Harold s. 19

Portar Varje dator med en IP-adress har ett antal logiska portar för att kommunicera med sin omgivning en port är ett 16-bitars tal, dvs ett tal mellan 0 och 65535 Vissa portar är reserverade portnummer mellan 0 och 1023 reserverade för speciella ändamål exempelvis är följande portnummer reserverade för viss service port 7 för eko port 20-21 för ftp port 23 för telnet port 25 för smtp (dvs skicka e-post) port 80 för HTTP (dvs den port som normalt används av en WEB-server) port 110 för pop3 (dvs ett protokoll för att läsa e-post) Senare i kursen skall vi se hur vi själva kan skriva program som kommunicerar med både fördefinierade och via portar med andra nummer Se Harold s. 19-21

Internet och Intranet Internet är världens största IP-baserade nätverk Massor av olika typer av datorer från alla kontinenter är anslutna Varje dator har (eller får vid anslutning) en unik IP-adress med vilken den sedan identifieras Det finns också andra nätverk med ungefär samma uppbyggnad Man brukar tala om intranet för att benämna lokala nätverk inom en organisation Se Harold s. 21

Brandvägg och Proxy Server En brandvägg kan användas för att kontrollera all kommunikation och trafik in och ut från ett lokalt nätverk En proxy server är en server som kan kontrollera access med andra servrar från ett visst nätverk på detta sätt kan man tex blockera access till vissa servrar eller förhindra användande av vissa (potentiellt farliga) protokoll Se Harold s. 23-25

Klient-server-modellen Idag är en klient-server- (ibland klient-betjänt på svenska) modellen den förhärskande vid konstruktion av distribuerade, samarbetande tillämpningar en klient ber en server om en viss tjänst tex om att få reda på vad klockan är eller att skicka över en viss fil eller websida en server utför tjänster åt klienter tex svarar på vad klockan är, skickar över en fil eller websida från sitt lokala filsystem Alla typer av applikationer passar dock inte in i klient-server-modellen utan ”båda ändarna” är både servrar och klienter samtidigt. Man brukar då prata om kommunikation peer-to-peer exempel en delad riteditor spel eller (det klassiska exemplet) telefonförbindelse Se Harold s. 25-27

RFC (Request For Comments) Internetstandards har utvecklats på ett öppet sätt där förslag ofta presenteras öppet redan i prototypstadiet Protokollen finns att läsa på Internet Protokollen är indelade i olika nivåer obligatoriska, dvs sådana som måste implementeras av varje “host”, som IP rekomenderade som normalt bör implementeras, tex TCP, SMTP, UDP och Telnet) valfria, som MIME begränsade, som oftast inte behövs icke rekomenderade, dvs bör inte implementeras historiska, dvs utgångna informativa, tex sådana som är konstruerade utanför RFC men ändå väldigt användbara eller sådana som är nyttiga men inte erbjuder ett protokoll Se Harold s. 27-32

HTTP, HTML, MIME och URL HTTP, Hypertext Transfer Protocol standarden som beskriver hur en webklient och server kommunicerar och utbyter data HTML, Hypertext Markup Language standardspråket för konstruktion av WEB-sidor MIME, Multipurpose Internet Mail Extensions den öppna standarden som beskriver hur multimedia skall skickas via e-post URL, Uniform Resource Locator definierar hur en fil otvetydigt kan refereras på Internet Se Harold s. 33

protokoll://värdnamn[:port]/väg/filnamn#adelning URL, URI och URN URI, Uniform Resource Identifier definierar hur en resurs otvetydigt kan refereras på Internet har ”undergrupperna” URL och URN URL, Uniform Resource Locator refererar en adress på Internet ser ut så här: exempel URN, Uniform Resource Name en pekare till en viss resurs utan att ange dess aktuella placering Se Harold s. 34-36 protokoll://värdnamn[:port]/väg/filnamn#adelning http://www.nada.kth.se/kurser/kth/2D4334/98-99/index.html#Föreläsningar

HTML och SGML HTML har sitt ursprung i SGML SGML skapades under tidigt 70-tal Man beskriver en texts semantik snarare än dess presentation HTML skapades under tidigt 90-tal Är lingua franca för att publicera hypertext på weben Har kommit i flera versioner och utvecklas forfranande Se Harold s. 36-38 och lab-1 Se gärna http://www.w3.org/ för mer information

HTTP HTTP, Hypertext Transport Protocol standarden som beskriver hur en webklient och server kommunicerar och utbyter data använder MIME för att avkoda data använder TCP/IP för dataöverföring klienten skickar ett meddelande i stil med GET /index.html HTTP/1.1 för att hämta WEBsidan index.html från aktuell server Se Harold s. 38-43 Se gärna http://www.w3.org/Protocols/ för mer information

MIME MIME, Multi Internet Mail Extension den öppna standarden som beskriver hur multimedia skall skickas via e-post anger typen för data som skickas, tex text plain html news postscript, pdf zip image jpeg, gif, tiff audio video mpeg quicktime Se Harold s. 44-48

CGI CGI, Common Gateway Interface Används av klienter för att kunna anropa program på servern CGI-program kan skrivas i många olika språk, tex Perl, C, BASIC eller AppleScript CGI-program körs som fristående processer initierade av HTTP-servern Ett CGI-program kan antingen köras utan argument eller ges argument via WEB-sida HTML inkluderar sätt att kommunicera med CGI-program Se Harold s. 48-51

Mer om Internet-adressering I kapitel 4 i Harold pratas det om hur Internetadresser kan hanteras Läs igenom kapitlet Resten av detta dokument refererar i huvudsak till exemplen i detta kapitel och kommenterar vilka bugar som är fixade i Java sen boken skrevs samt beskriver hur exemplen kan anpassas till Java 1.1 Se Harold s. 56-77

Klassen InetAddress Klassen InetAddress kan användas för ta reda på Internetadressen för olika datorer på nätet, ta reda på aktuell platforms namn och liknande saker

”Buggarna” i Harold Sidan 60, buggen är som det står fixad i Java 1.1 fast angiven IP-adress bör bytas mot 204.148.40.9 Sidan 67, konvertera IP-adress till namn fungerar i Java 1.1 Sidan 71 och 76 Byt ut DataInputStream mot BufferedReader dvs skriv BufferedReader myInputStream = new BufferedReader(new InputStreamReader(System.in)); dvs ersätt initieringen av myInputStream på detta sätt respektive BufferedReader myInput = new BufferedReader(new FileReader(args[0])); dvs ta bort FileInputStream fin = new FileInputStream(args[0]); och ersätt initeringen av myInput med raden ovan tag också bort anropet av InetAddressFactory som inte behövs i Java 1.1