Nätverk och Java, grunder Föreläsning 0: Introduktion till Internet Innehåll Se också Intro en streamad videoinspelning som finns på nätet • Kort om grundläggande nätverkskoncept • Grundläggande.
Download ReportTranscript Nätverk och Java, grunder Föreläsning 0: Introduktion till Internet Innehåll Se också Intro en streamad videoinspelning som finns på nätet • Kort om grundläggande nätverkskoncept • Grundläggande.
Slide 1
Nätverk och Java, grunder
Föreläsning 0: Introduktion till Internet
Innehåll
Se också Intro
en streamad videoinspelning
som finns på nätet
• Kort om grundläggande nätverkskoncept
• Grundläggande WEB-koncept
• Internetadresser
Referenser
•
•
•
•
previous
next
Harold, ”Java Network Programming”, Elliotte Harold
Hall, ”CORE Web Programming”, Marty Hall
Deitel et al, ”Internet and the World Wide Web How to Program”
Intro, http://www-citu.nada.kth.se/streams/intprogrintro.ram
Slide 2
Nätverk och Internet grunder
Programmering av nätverksapplikationer
• Varför nätverksapplikationer?
– Idag så ser vi ett allt större behov för applikationer som kan
kommunicera mellan olika noder
– Ett exempel är WWW, email och news med mer asynkron
kommunikation
– Andra exempel är distribuerade databaser, ljud, radio och video
• Vi har också behov av att bygga tillämpningar där vi mer
direkt är medvetna om varandra
– delade anslagstavlor, whiteboards, delade ordbehandlare,
styrssystem (robotar mm) och inte minst spel
• För att åstadkomma detta finns det stöd i dagens
nätverk (tex i Internet som vi skall titta lite mer på)
previous
next
2
Slide 3
Nätverk och Internet grunder
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
previous
next
3
Slide 4
Nätverk och Internet grunder
Internet
• Internet är det mest kända nätverket och idag det
mest spridda
• Designat för att vara robust
• Första versionen konstruerat av ARPA en
myndighet inom USAs försvar. Kallades då
ARPANET som sedemera "växte" till Internet.
• (ARPANET) första versionen 1968. Då med ett
fåtal anslutna datorer
previous
next
4
Slide 5
Nätverk och Internet grunder
Lager (eng. layer)
• Ett nätverk har olika kommunikationslager
Logisk förbindelse
Applikation
Applikation
(HTTP, FTP, Telnet, …)
(HTTP, FTP, Telnet, …)
Transport
Transport
(TCP, UDP, …)
(TCP, UDP, …)
Nätverk
Nätverk
(IP, …)
(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
previous
next
5
Slide 6
Nätverk och Internet grunder
IP, TCP och UDP
• IP, Internet 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
previous
next
6
Slide 7
Nätverk och Internet grunder
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)
– 32 bitar räcker till 232 = 4294967296 adresser men det räcker ändå
inte så det finns ett förslag, IPv6, med 128 bitars adresser, dvs 2128 =
340282366920938463463374607431768211456 adresser (som ju
bör räcka ett tag...fast inte riktigt till att adressera varje molekyl i
universum...)
• 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
previous
next
7
Slide 8
Nätverk och Internet grunder
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
previous
next
8
Slide 9
Nätverk och Internet grunder
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 IPadress 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
previous
next
9
Slide 10
Nätverk och Internet grunder
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
previous
next
10
Slide 11
Nätverk och Internet grunder
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
– rekommenderade som normalt bör implementeras, tex TCP, SMTP, UDP
och Telnet)
– valfria, som MIME
– begränsade, som oftast inte behövs
– icke rekommenderade, 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
previous
next
11
Slide 12
Nätverk och Internet grunder
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
previous
next
12
Slide 13
Nätverk och Internet grunder
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:
protokoll://värdnamn[:port]/väg/filnamn#avdelning
– exempel
http://www.gt.kth.se/education/kurspm/4K1525/default.html#innehall
• URN, Uniform Resource Name
– en pekare till en viss resurs utan att ange dess aktuella
placering
previous
next
13
Slide 14
Nätverk och Internet grunder
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 gärna
http://www.w3.org/
för mer information
previous
next
14
Slide 15
Nätverk och Internet grunder
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 gärna
http://www.w3.org/Protocols/
för mer information
previous
next
15
Slide 16
Nätverk och Internet grunder
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
previous
next
16
Slide 17
Nätverk och Internet grunder
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 CGIprogram
previous
next
17
Slide 18
Nätverk och Internet grunder
Java skriva, kompilera och köra
• Skriv program i vanlig editor
– Filen skall heta som klassen med tillägget .java
– Klass: Klass ger fil: Klass.java
• Kompilera
– På NADA så bör man för enkel hantering göra
module add java
• Som sätter upp ”pathar” mm
– javac Klass.java
• Kör
– java Klass
previous
next
18
Nätverk och Java, grunder
Föreläsning 0: Introduktion till Internet
Innehåll
Se också Intro
en streamad videoinspelning
som finns på nätet
• Kort om grundläggande nätverkskoncept
• Grundläggande WEB-koncept
• Internetadresser
Referenser
•
•
•
•
previous
next
Harold, ”Java Network Programming”, Elliotte Harold
Hall, ”CORE Web Programming”, Marty Hall
Deitel et al, ”Internet and the World Wide Web How to Program”
Intro, http://www-citu.nada.kth.se/streams/intprogrintro.ram
Slide 2
Nätverk och Internet grunder
Programmering av nätverksapplikationer
• Varför nätverksapplikationer?
– Idag så ser vi ett allt större behov för applikationer som kan
kommunicera mellan olika noder
– Ett exempel är WWW, email och news med mer asynkron
kommunikation
– Andra exempel är distribuerade databaser, ljud, radio och video
• Vi har också behov av att bygga tillämpningar där vi mer
direkt är medvetna om varandra
– delade anslagstavlor, whiteboards, delade ordbehandlare,
styrssystem (robotar mm) och inte minst spel
• För att åstadkomma detta finns det stöd i dagens
nätverk (tex i Internet som vi skall titta lite mer på)
previous
next
2
Slide 3
Nätverk och Internet grunder
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
previous
next
3
Slide 4
Nätverk och Internet grunder
Internet
• Internet är det mest kända nätverket och idag det
mest spridda
• Designat för att vara robust
• Första versionen konstruerat av ARPA en
myndighet inom USAs försvar. Kallades då
ARPANET som sedemera "växte" till Internet.
• (ARPANET) första versionen 1968. Då med ett
fåtal anslutna datorer
previous
next
4
Slide 5
Nätverk och Internet grunder
Lager (eng. layer)
• Ett nätverk har olika kommunikationslager
Logisk förbindelse
Applikation
Applikation
(HTTP, FTP, Telnet, …)
(HTTP, FTP, Telnet, …)
Transport
Transport
(TCP, UDP, …)
(TCP, UDP, …)
Nätverk
Nätverk
(IP, …)
(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
previous
next
5
Slide 6
Nätverk och Internet grunder
IP, TCP och UDP
• IP, Internet 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
previous
next
6
Slide 7
Nätverk och Internet grunder
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)
– 32 bitar räcker till 232 = 4294967296 adresser men det räcker ändå
inte så det finns ett förslag, IPv6, med 128 bitars adresser, dvs 2128 =
340282366920938463463374607431768211456 adresser (som ju
bör räcka ett tag...fast inte riktigt till att adressera varje molekyl i
universum...)
• 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
previous
next
7
Slide 8
Nätverk och Internet grunder
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
previous
next
8
Slide 9
Nätverk och Internet grunder
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 IPadress 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
previous
next
9
Slide 10
Nätverk och Internet grunder
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
previous
next
10
Slide 11
Nätverk och Internet grunder
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
– rekommenderade som normalt bör implementeras, tex TCP, SMTP, UDP
och Telnet)
– valfria, som MIME
– begränsade, som oftast inte behövs
– icke rekommenderade, 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
previous
next
11
Slide 12
Nätverk och Internet grunder
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
previous
next
12
Slide 13
Nätverk och Internet grunder
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:
protokoll://värdnamn[:port]/väg/filnamn#avdelning
– exempel
http://www.gt.kth.se/education/kurspm/4K1525/default.html#innehall
• URN, Uniform Resource Name
– en pekare till en viss resurs utan att ange dess aktuella
placering
previous
next
13
Slide 14
Nätverk och Internet grunder
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 gärna
http://www.w3.org/
för mer information
previous
next
14
Slide 15
Nätverk och Internet grunder
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 gärna
http://www.w3.org/Protocols/
för mer information
previous
next
15
Slide 16
Nätverk och Internet grunder
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
previous
next
16
Slide 17
Nätverk och Internet grunder
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 CGIprogram
previous
next
17
Slide 18
Nätverk och Internet grunder
Java skriva, kompilera och köra
• Skriv program i vanlig editor
– Filen skall heta som klassen med tillägget .java
– Klass: Klass ger fil: Klass.java
• Kompilera
– På NADA så bör man för enkel hantering göra
module add java
• Som sätter upp ”pathar” mm
– javac Klass.java
• Kör
– java Klass
previous
next
18