Föreläsning 9 Mål Förstå grundfunktionaliteten i TCP och UDP Först skillnaderna mellan TCP och UDP Förstå betydelsen av DNS Förstå grundstrukturen i DNS Förse en kort översikt av DHCP Förse en kort översikt av tillämpningar 15.11.2004 Gunnar Karlsson, Bengt Sahlin 1 Transportskiktet Transportprotokoll otillförlitlig överföring: User Datagram Protocol (UDP) tillförlitlig överföring: Transmission Control Protocol (TCP) Tillämpningar inom en värddator nås genom portar möjliggör kommunikation mellan processer IP adress + portnummer identifierar en socket reserverade portar (används av servrar) 1-1023 exempel SSH 22 DNS 53 HTTP 80 tillfälliga portar (ephemeral ports) portar som används tillfälligt under en session 15.11.2004 Gunnar Karlsson, Bengt Sahlin 2 User Datagram Protocol (1/2) Otillförlitlig överföring inga bekräftelser, UDP meddelanden kan förloras förbindelsefri inga sekvensnummer UDP meddelanden kan anlända i oordning ingen flödeskontroll enkelt protokoll Tillämpningar som använder UDP måste ta dessa egenskaper i beaktande 15.11.2004 Gunnar Karlsson, Bengt Sahlin 3 Gunnar Karlsson, Bengt Sahlin 1
User Datagram Protocol (2/2) Enkelt huvud portarna längd: inkluderar UDP huvudet och nyttolasten kontrollsumman inte obligatorisk räknas över UDP pseudo-huvudet (bl a IP adresserna inkluderade), UDP huvudet och nyttolasten 0 16 31 Sändarport Längd Mottagarport Kontrollsumma 15.11.2004 Gunnar Karlsson, Bengt Sahlin 4 Transmission Control Protocol (1/2) Tillförlitlig överföring positiva bekräftelser och omsändning används paket bekräftas med sekvensnummer, anger numret på nästa oktett av data som förväntas (positiv bekräftelse) om ett segment av data inte bekräftas inom en tidsfrist så skickas det på nytt tidsfristen kan ändra dynamiskt via uppskattningar av rundresetiden sändfönster används för att få bättre genomströmning sändfönstrets storlek kan minskas vid stockning TCP delar upp tillämpningens data i segment 15.11.2004 Gunnar Karlsson, Bengt Sahlin 5 Transmission Control Protocol (2/2) förbindelse etableras mellan sändare och mottagare förbindelsen identifieras av dess ändpunkter genom (värddator adress, port nummer) Till exempel (128.3.4.2, 3444) - (45.234.1.90, 5000) Ett socketpar TCP erbjuder flödeskontroll mellan ändpunkterna sköts genom att ändra fönsterstorleken 15.11.2004 Gunnar Karlsson, Bengt Sahlin 6 Gunnar Karlsson, Bengt Sahlin 2
TCP huvudet HL Sändarport Reserverat Kodbitar Kontrollsumma Tillval Sekvensnummer Bekräftelse Mottagarport Fönsterstorlek Brådskande Utfyllnad 15.11.2004 Gunnar Karlsson, Bengt Sahlin 7 TCP huvudets fält (1/2) portar Sekvensnummer: sekvensnummer för den första oktetten i segmentet Bekräftelse: sekvensnummer för nästa oktett som förväntas HL: Huvudlängd Kodbitar (flaggor) URG: brådskande fältet bör beaktas ACK: paketet bekräftar mottagen information PSH: datan borde skickas direkt till mottagaren. 15.11.2004 Gunnar Karlsson, Bengt Sahlin 8 TCP huvudets fält (2/2) RST: reset SYN: indikerar synkronisering (sekvensnummer bör synkroniseras) FIN: avslutar förbindelsen Fönsterstorlek: anges i antal oktetter som mottagaren är villig att acceptera Kontrollsumma: samma princip som i UDP Brådskande: data kan betecknas som brådskande Tillval: bl. a. en option för att indikera maximal segmentstorlek 15.11.2004 Gunnar Karlsson, Bengt Sahlin 9 Gunnar Karlsson, Bengt Sahlin 3
TCP och UDP UDP är ett enkelt protokoll UDP lämpar sig för överföring av små mängder data TCP kräver synkroniseringsmeddelanden (SYN) i början och meddelanden om att kommunikationen avslutas (FIN) Det är viktigt att känna till hur UDP och TCP när man bygger en tillämpning val av transportprotokoll bör baseras på trafikkarakteristiken för tillämpningen 15.11.2004 Gunnar Karlsson, Bengt Sahlin 10 Mänskor och IP adresser Numeriska adresser används i Internet exempel: 10.0.0.1 (IPv4), fe80::a0a1:46ff:fe06:61ee (IPv6) Mänskor minns namn bättre än nummersekvenser I Internet har namn använts ända från början 15.11.2004 Gunnar Karlsson, Bengt Sahlin 11 Domain Name System (1/3) Historia: i början hade man alla DNS data i en fil: hosts.txt blev opraktiskt när Internet växte Lösningen var DNS Huvuduppgifter: mapping mellan namn och IP adress, och vice versa kontrollerar e-postöverföring domännamn: absolut: Fully Qualified Domain Name (FQDN) slutar alltid med beteckningen för rotnoden (.) t. ex. www.hut.fi. Relativt t. ex. www eller www.hut 15.11.2004 Gunnar Karlsson, Bengt Sahlin 12 Gunnar Karlsson, Bengt Sahlin 4
Domain Name System (2/3) DNS databasen är: global globalt unika namn och adresser distribuerad ingen nod har fullständig information en organisation kan sköta sin egen lokala DNS data hierarkisk organiserat som ett träd med en rotnod, som Unix filsystem domäner och zoner 15.11.2004 Gunnar Karlsson, Bengt Sahlin 13 Domain Name System (3/3) Noderna kallas för domäner t. ex. hut.fi toppnivådomäner: organisatoriska arpa, com, edu, gov, int, mil, net, org nya:.name (registrations by individuals),.biz (for business),.info (unrestricted use) geografiska fi, se, uk, us, nu, go, etc... 15.11.2004 Gunnar Karlsson, Bengt Sahlin 14 Struktur Global hierarkisk distribuerad Rot nod, rot namn servrar (13) Toppnivådomäner (com, edu, fi, se, uk) Lägre nivå domäner (hut.fi) Löv (www.hut.fi -> 130.233.220.31) 15.11.2004 Gunnar Karlsson, Bengt Sahlin 15 Gunnar Karlsson, Bengt Sahlin 5
DNS begrepp (1/3) namnserver master (primary, master) den server där datan administreras slav (secondary, slave) har auktoritativ data om en viss zon laddar ny data från primären med jämna mellanrum medelst zonöverföring (zone transfer) Buffertminne (cache) en namnserver kan spara DNS data den fått via förfrågningar för en viss tid BIND (Berkeley Internet Name Daemon) mest använda namnbetjänten fritt distribuerbar mjukvara 15.11.2004 Gunnar Karlsson, Bengt Sahlin 16 DNS begrepp (2/3) Resolver: klienten i DNS kan göra namnförfrågningar t. ex. nslookup eller dig Resolution processen bestående av en eller flera förfrågningar för att få en viss information namnservrar måste känna till de servrar som är ansvariga för rotnoden: rotnamnserver (root name server) 15.11.2004 Gunnar Karlsson, Bengt Sahlin 17 DNS begrepp (3/3) delegering: ansvaret för en underdomän ges åt en ny namnbetjänt in-addr.arpa: den del av trädet som innehåller adress-till-namn information 15.11.2004 Gunnar Karlsson, Bengt Sahlin 18 Gunnar Karlsson, Bengt Sahlin 6
8. IP address Introduktion till modern telekommunikation 15.11.2004 Resolution 2. www.cnn.com? Root name server Hut namnserver 3. referral (.com) 4. www.cnn.com? 1. www.cnn.com? 5. referral (cnn.com) 6. www.cnn.com? 7. IP address.com name server machine.hut.fi cnn.com name server 15.11.2004 Gunnar Karlsson, Bengt Sahlin 19 Domain Name System (6/6) Informationen måste sparas i ett visst fastlagt format RR (resource record) A: namn till adress PTR: adress till namn NS: information om namnservers för en viss zon CNAME: alias MX: mail exchanger, information om vilka maskiner emottar elpost för en maskin eller en zon SOA: Start Of Authority, varje zon har en SOA 15.11.2004 Gunnar Karlsson, Bengt Sahlin 20 Exempel telkom.example. IN SOA ns.telkom.example. bos.tcm.hut.fi. ( 6 28800 7200 604800 86400 ) IN NS ns.telkom.example. IN MX 10 mail.telkom.example $ORIGIN telkom.example. localhost IN A 127.0.0.1 ns IN A 10.10.10.1 mail IN A 10.10.10.2 www IN A 10.10.10.3 IN TXT "Our web server" ftp IN CNAME mail.telkom.example 15.11.2004 Gunnar Karlsson, Bengt Sahlin 21 Gunnar Karlsson, Bengt Sahlin 7
Problem i DNS Komplicerat protokoll DNS administration dåligt dokumenterat Master file format: formatet som används för att spara DNS information känsligt för felkonfigurationer: fatalt att t. ex. glömma bort en punkt i ett absolut domännamn En undersökning av Men and Mice November 2000 : 80 % av zonerna innehåller felaktig information som kan leda till problem Säkerhet Crackers samlar ofta DNS information som förberedelse för attacker DNS implementationerna har haft många svagheter 15.11.2004 Gunnar Karlsson, Bengt Sahlin 22 Nya krav IPv6 stöd DNS behöver datasäkerhetsmekanismer många attacker utnyttjar svagheter i DNS DNS Security Extensions (DNSSEC) dynamisk uppdatering dynamic DNS update, dyndns Internationell DNS? 15.11.2004 Gunnar Karlsson, Bengt Sahlin 23 Dynamic Host Configuration Protocol Mål att underlätta konfigurationsprocessen när en ny maskin kopplas till nätet nätkonfigurationen sker automatiskt den nya som maskinen kopplas till nätet kör en DHCP klient en DHCP server i nätet tilldelar maskinen en address för en viss tid (lease) dyndns gör det möjligt för en DHCP server att konfigurera DNS automatiskt då en ny maskin kopplas till nätet 15.11.2004 Gunnar Karlsson, Bengt Sahlin 24 Gunnar Karlsson, Bengt Sahlin 8
Tillämpningar (1/2) Telnet, Rlogin, rsh för fjärrkontakt till en annan maskin ssh borde användas i stället för dessa rcp kopiering till en annan maskin scp bör användas för säker kopiering File transfer protocol (FTP) Filöverföring Scp eller sftp bör användas för säker filöverföring 15.11.2004 Gunnar Karlsson, Bengt Sahlin 25 Tillämpningar (2/2) E-post Simple Mail Transfer Protocol (SMTP, RFC822) MIME (stöder teckenuppsättningen ISO Latin-1) sendmail: program som sköter e-postöverföring invecklat, har innehållit många säkerhetshål PGP (eller GPG) för säker e-postöverföring Simple Network Management Protocol (SNMP) används för nätverksadministration nyare versioner har datasäkerhetsmekanismer World-wide web (WWW) HTTP (HyperText Transfer Protocol) används 15.11.2004 Gunnar Karlsson, Bengt Sahlin 26 WWW (1/3) klient-server-modellen överföringsprotokoll HTTP olika representationer av text: HTML, XML Standard Generalized Markup Language (SGML) metaspråk internationell standard annoterad text för att göra det möjligt att bestämma hur en test skall se ut (t. ex. då texten printas) deskriptiv annotation dokumenttyper systemoberoende 15.11.2004 Gunnar Karlsson, Bengt Sahlin 27 Gunnar Karlsson, Bengt Sahlin 9
WWW (2/3) HyperText Markup Language (HTML) ett metaspråk för att göra hypertextdokument som är portabla från en platform till annan följer SGML-standarden (en tillämpning av SGML), dvs syntaxen för HTML definieras med SGML och en DTD (document type definition) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 15.11.2004 Gunnar Karlsson, Bengt Sahlin 28 WWW (3/3) exstensible Markup Language (XML) rekommendation för att göra WWW till ett mångsidigare redskap erbjuder mer flexibilitet: möjligt att göra saker som inte kan göras eller är svåra att göra med HTMLHTML erbjuder en definierad, fast mängd annotationssymboler (tags) XML ger möjlighet att definiera nya symboler (t. ex. <PHONENUM>) och beroendeförhållanden mellan olika symboler 15.11.2004 Gunnar Karlsson, Bengt Sahlin 29 Hypertext Transfer Protocol (1/3) protokoll för kommunikation mellan en WWW klient (browser) och en WWW server port 80 används vanligen enkelt protokoll två typer av meddelanden: begäran (request) och svar (response) URI (Uniform Resource Identifier) URL (Uniform Resource Locator) URN (Universal Resource Names) 15.11.2004 Gunnar Karlsson, Bengt Sahlin 30 Gunnar Karlsson, Bengt Sahlin 10
HTTP (2/3) begäran, format: request-line: Method request-uri HTTP-version headers <blank line> body GET ger som svar informationen som identifieras i URI i begäran HEAD ger endats huvudet som svar POST används för att posta e-post, nyheter eller för att sända informationen i en ifyll blankett 15.11.2004 Gunnar Karlsson, Bengt Sahlin 31 HTTP (3/3) svar, format status-line: HTTP-version response-code response-phrase headers <blank line> body svarkoder Framgångsrikt resultat, redirect, klientfel, serverfel 200: OK, request succeeded 301: requested resource has been assigned a new permanent URL 404: Not found 503: Service temporarily unavailable HTTP proxy CGI (Common Gateway Inteface) www-sidor kan genereras medelst kod skriptar kan byggas för att behandla information (POST) 15.11.2004 Gunnar Karlsson, Bengt Sahlin 32 Exempel (1/3) morphine ~ 35 % telnet www.hut.fi 80 Trying 130.233.220.31... Connected to www.hut.fi. Escape character is '^]'. HEAD /index.html HTTP/1.1 Host: www.hut.fi HTTP/1.1 200 OK Date: Wed, 24 Nov 1999 08:46:27 GMT Server: Apache/1.3.9 (Unix) Last-Modified: Tue, 23 Nov 1999 15:24:03 GMT ETag: "17b4f-148f-383ab193" Accept-Ranges: bytes Content-Length: 5263 Content-Type: text/html;charset=iso-8859-1 15.11.2004 Gunnar Karlsson, Bengt Sahlin 33 Gunnar Karlsson, Bengt Sahlin 11
Exempel (2/3) morphine ~ 36 % telnet www.hut.fi 80 Trying 130.233.220.31... Connected to www.hut.fi. Escape character is '^]'. GET /index.html HTTP/1.1 Host: www.hut.fi HTTP/1.1 200 OK Date: Wed, 24 Nov 1999 08:48:24 GMT Server: Apache/1.3.9 (Unix) Last-Modified: Tue, 23 Nov 1999 15:24:03 GMT ETag: "17b4f-148f-383ab193" Accept-Ranges: bytes Content-Length: 5263 Content-Type: text/html;charset=iso-8859-1 15.11.2004 Gunnar Karlsson, Bengt Sahlin 34 Exempel (3/3) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>teknillinen korkeakoulu</title> <link rev="made" href="mailto:webmaster@hut.fi"> <!-- (v4.6 13.2.1998, v4.6.1 23.11.1998, v4.6.2 27.1.1999) v4.7 26.4.1999 --> </head>... <tr><td colspan=2> </td><td align=left colspan=3><small>sivusta vastaa <a href="mailto:www-ryhma@hut.fi">www-ryhma@hut.fi</a>. Päivitetty 8.10.1999.</small></td></tr> </table> </center> </body> </html> Connection closed by foreign host. morphine ~ 37 % 15.11.2004 Gunnar Karlsson, Bengt Sahlin 35 Framtid Ny version av HTTP-protokollet (1.1) innehåller nya primitiv PUT DELETE TRACE CONNECT OPTIONS interaktivitet i WWW javascript Java ActiveX trafikkarakteristiken ett aktivt forskningsområde 15.11.2004 Gunnar Karlsson, Bengt Sahlin 36 Gunnar Karlsson, Bengt Sahlin 12