Hur Internet fungerar?
WWW-sida
<HTML> <HEAD> <TITLE>Nixu International</TITLE> </HEAD> <BODY background="/gfx/back1.gif"> <CENTER> <IMG SRC="/gfx/logo.gif" ALT="Nixu Oy"><BR> <H1><I>Nixu Oy</I></H1> <UL> <LI><A HREF="/yhteysti.html">Contact us</a> <LI><A HREF="/avoimett/">Jobs</A> <LI><A HREF="/palvelut/">What we do</a> <LI><A HREF="http://www.namesurfer.com/"> NameSurfer</A> </UL> </CENTER> </BODY> </HTML> HTML-kod
World Wide Web Kombinerar text, bilder och länkar till hypertext-dokument En länk pekar till ett annat dokument som kan finnas på samma eller en annan server Kan innehålla ljud, rörliga bilder, användargränssnitt till program o.s.v. Dokumenten skrivs i HTML HyperText Markup Language Baserar sig på SGML-språket (Standard Generalized Markup Language) Beskriver dokumentets struktur Webbläsarprogrammet (browser) tolkar HTML-koden och väljer en presentation som motsvarar strukturen HTML-språket används (missbrukas) även för att beskriva utseendet
Universal Resource Locator URL adress till informationen protokolla://server[:port]/katalog/fil.html protokolla://server[:port]/katalog/ Exempel http://www.tkk.fi/ http://www.nixu.fi:80/~kiravuo/pannarit.html news:sfnet.harrastus.retkeily ftp://ftp.funet.fi/rfc/ Webbläsarprogrammet använder URLadressen för att hämta dokument från nätet URL
HTTP-session Vi kontaktar HTTP-serverprogrammet på servermaskinen med namnet www.nixu.fi och kommunicerar med HTTP-protokollet Motsvarar kommandot: telnet www.nixu.fi 80 GET /~kiravuo/demo.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.06 [en] (Win95; I) Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Charset: iso-8859-1,*,utf-8... HTTP/1.1 200 OK Server: Apache/1.2.6 Last-Modified: Tue, 24 Nov 1998 06:35:48 GMT Content-Length: 466 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive
HTTP Session forts. Content-Type: text/html... <HTML> <HEAD> <TITLE>Nixu International</TITLE>... GET /gfx/back1.gif HTTP/1.0 Referer: http://www.nixu.fi/~kiravuo/demo.html... HTTP/1.1 200 OK Content-Length: 902 Content-Type: image/gif..gif89a......
HTTP-protokollet HTTP är ett enkelt protokolla för kopiering av filer i nätet Klienten (webbläsare) öppnar sessionen genom att kontakta servern Ett protokoll av Pull-typ, servern sänder inte information på eget initiativ Klienten ger GET-kommandot för att hämta den givna filen från servern Vid sidan om sänds information on t.ex. klientprogrammet, filformat och dylikt Servern skickar också tilläggsinformation om filen samt själva filens innehåll Filen kan vara ett HTML-dokument, en bild eller något annat format, detta berättas i filens huvud Filen kan även vara genererad av ett program
Förbindelser HTML är filens presentationsform, filformatet HTTP-protokollet kopierar filer över en tillförlitlig förbindelse HTTP har varken feldetektering eller kontrollsumma TCP/IP protokollfamiljen som används i Internet erbjuder en tillförlitlig förbindelse för HTTP Webbläsaren använder alltså HTTP får att få det i HTML-språket beskrivna dokumentet URL-adressen definierar
TCP TCP = Transmission Control Protocol Definierad i RFC-793 Erbjuder en förbindelseorienterad, tillförlitlig byteström mellan tillämpningar Data från tillämpningsskiktet delas i segment som förmedlas som IP-meddelanden Egenskaper: kontrollsumma, tidsutlösning och flödeskontroll Ihopkoppling av mottagna meddelanden i rätt ordning,?? av duplikat
TCP:s tillförlitliga funktion Mottagaren bekräftar varje mottagna segment Klient Server väntar på bekräftelse Meddelandet försvinner Återsändning ACK Om meddelandet försvinner, sköter tidsutlösningen om att det återsänds
UDP UDP = User Datagram Protocol Definierad i RFC-768 Otillförlitligt protokoll på transportskiktet för förmedling mellan tillämpningar Viktigaste tjänsten är portnummer för meddelandena Lätt, enkelt att implementera Många allmänna protokoll använder UDP för att det är ett lätt och förbindelsefritt protokoll DNS, Radius, NTP, SNMP
IP IP = The Internet Protocol Definierad i RFC-791 IP förmedlar meddelanden mellan datorer Erbjuder en otillförlitlig och förbindelsefri meddelnadeförmedlingstjänst Otillförlitlig: "best effort" Förbindelsefri: varje meddelande behandlas som ett enskilt fall på IP-skiktet Kan låta konstigt, men det fungerar TCP ovanpå IP erbjuder tillförlitlighten
Adresser I allmänhet har varje dator (på nätet) ett namn t.ex. www.hut.fi Internet-nätet själv använder numeriska adresser t.ex. 130.233.224.28 Översättning mellan dessa sköter DNS (Domain Name Service) Datorerna har också numrerade portar som erbjuder förbindelser för enskilda program Portarna är inte fysiska, utan en tabell i operativsystemet Portnummer har standardiserats, t.ex. port 80 är för HTTP, port 25 för mottagande av e-post med SMTP protokollet
Ethernet Definierad i standarden: IEEE 802.3 En teknologi för lokalnät lämplig för korta avstånd (100 m - 1 km) olika kabelalternativ (koaxialkabel, parkabel) och överföringshastigheter Ethernet har egna adresser 6 byte långa Har betydelse bara inom ett lokalnät
Protokollarkitektur Internet (TCP/IP) Tillämpningsskiket TCP, UDP IP Länkskiktet Fysiska skiktet OSI (Open Systems Interconnection) Tillämpningsskiktet Presentationsskitet Sessionsskiktet Transportskiktet Nätverksskiktet Länkskiktet Fysiska skiktet OSI-modellen används nuförtiden närmast som referens TCP/IP:s tillämpningsskikt kombinerar de tre översta skiktenas funktion i OSI-modellen
En kapad förbindelse Att lyssna på nättrafiken är rätt så enkelt men ofta olagligt Här är några paket från en förbindelse på nätet Hela förbindelsen från början till slut skulle vara längre
Data från klienten till servern ETHER: Destination = 8:0:20:74:f1:2c ETHER: Source = 0:0:3b:80:e:93 ETHER: Ethertype = 0800 (IP) IP: Protocol = 6 (TCP) IP: Source address = 194.197.118.74 IP: Dest. address = 194.197.118.20 TCP: Source port = 35620 TCP: Destination port = 80 (HTTP) TCP: Sequence number = 760000273 TCP: Acknowledgement number = 2370000258 HTTP: "GET /~kiravuo/demo.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.06..."
Bekräftelse från servern till klienten ETHER: Destination = 0:0:3b:80:e:93 ETHER: Source = 8:0:20:74:f1:2c ETHER: Ethertype = 0800 (IP) IP: Flags = 0x4 (do not fragment) IP: Protocol = 6 (TCP) IP: Source address = 194.197.118.20 IP: Dest. address = 194.197.118.74 TCP: Source port = 80 (HTTP) TCP: Destination port = 35620 TCP: Sequence number = 2370000258 TCP: Acknowledgement number = 760000379 TCP: Flags = 0x10 (ACK) HTTP: ""
Data från servern till klienten ETHER: Destination = 0:0:3b:80:e:93 ETHER: Source = 8:0:20:74:f1:2c ETHER: Ethertype = 0800 (IP) IP: Protocol = 6 (TCP) IP: Source address = 194.197.118.20 IP: Dest. address = 194.197.118.74 TCP: Source port = 80 (HTTP) TCP: Destination port = 35620 TCP: Sequence number = 2370000299 TCP: Acknowledgement number = 760000379 TCP: Data offset = 20 bytes TCP: Flags = 0x10 (ACK) HTTP: "HTTP/1.1 200 OK Server: Apache/1.2.6 Last-Modified: Tue, 2..."
Bekräftelse från klienten till servern ETHER: Destination = 8:0:20:74:f1:2c ETHER: Source = 0:0:3b:80:e:93 ETHER: Ethertype = 0800 (IP) IP: Protocol = 6 (TCP) IP: Source address = 194.197.118.74 IP: Dest. address = 194.197.118.20 TCP: Source port = 35620 TCP: Destination port = 80 (HTTP) TCP: Sequence number = 760000379 TCP: Acknowledgement number = 2370000627 TCP: Flags = 0x10 (ACK) HTTP: ""
Vägval Väljare kopplar samman lokalnät Varje väljare har en vägvalstabell som berättar via vilken anslutning viken IP-adress kan nås Stamnätets väljare uppdaterar sin information automatiskt och kan undvika söndriga förbindelser stamnätet för Internet stamnäten för stora organisationer och teleoperatörer Väljare på gränsen till Internet har vanligen vägvalstabeller som definieras för hand Termen vägval (routing) syftar på såväl upprätthållandet av informationen i tabellerna som besluten som görs enligt denna Förmedling (forwarding) av IP-paket sker på basen av vägvalsbesluten
Väljarnät Router Default... 194.197.117.* 194.197.118.* Hub Router 192.134.*.*... 194.197.*.* 130.233.*.* Router... Router Default Default2 130.233.223.* 130.233.224.* Hub 194.197.118.20 WWW-server 130.233.224.50 WWW-client
DNS, Domain Name System Distribuerad databas med lokalt buffertminne Distribuerat underhåll (uppdatering av egen information) Tjänster Konversion från maskinens namn till IP-adress Konversion från IP-adress till maskinens namn Styrning av postförmedling (MX-datapost)
Internets namnrymd "." arpa com fi se in-addr namesurfer tkk nixu 193 209 www tml ns lib www tapas www ns 237 24 193.203.237.24 tapas.nixu.fi
Sammanfattning URL: http://www.someplace.com/ HTML: <H1>Homepage</H1>... Browser open(www...,80); Display HTTP: GET index.html TCP: port 80, ACK 5634 WWW server IP: To: 194.197.118.20 IP: forwarding Ethernet: to:00:00:08:12:34:45 ETH ATM HTML HTTP TCP IP ATM
Sammanfattning Skiktvis definierade protokoll är en flexibel lösning och möjliggör erbjudandet av helt olika tjänster inom samma arkitektur Internet-protokollet är nyckeln till internet-teknologierna TCP/IP-familjen är inte fullständig och den har många kända brister, men den fungerar tillräckligt bra för de flesta praktiska behoven