Zklady TCPIP Libor Forst Motivace historie model Principy
Základy TCP/IP Libor Forst • • • Motivace, historie, model Principy adresování, DNS Tok dat, topologie, routing Základní protokoly, aplikace E-mail, FTP, BSD příkazy SISAL Základy TCP/IP 1
Literatura • D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991 • C. Hunt: TCP/IP Network Administration; O'Reilly & Associates 1992 • P. Šmrha, V. Rudolf: Internetworking pomocí TCP/IP; Kopp 1994 • P. Satrapa, J. A. Randus: LINUX - Internet server; Neokortex 1996; ISBN 80 -902230 -0 -1 • L. Dostálek, A. Kabelová: Velký průvodce protokoly TCP/IP a systémem DNS; Computer Press 2002 • Request For Comment (RFC) SISAL Základy TCP/IP 2
Vznik počítačových sítí izolované výpočetní systémy terminály lokální síť point-to-point propojení rozlehlá síť robustní kompaktní aplikace emulace terminálu + klient-server aplikace SISAL Základy TCP/IP 3
Počítačové sítě • Lokální sítě (Local Area Network) – zvyšování produktivity díky sdílení prostředků – menší vzdálenost, vyšší rychlost – příklady: Novell, napojení bezdiskových stanic, databázové n. tiskové servery • Rozlehlé sítě (Wide Area Network) – konektivita, komunikace – velké vzdálenosti, nižší výkon – příklady: Internet, Bitnet SISAL Základy TCP/IP 4
Historie Internetu • 1969 - Defense Advanced Research Project Agency zřizuje projekt "packet switching network" • pol. 70. let - ARPANET, point-to-point, pevné linky • 1980 - Internet, propojení sítí, ARPANET páteří • 1983 - zavedení TCP/IP v ARPANETu • pol. 80. - TCP/IP součástí BSD UNIXu • současnost - boom Internetu SISAL Základy TCP/IP 5
Vývoj Internetu v číslech 5 000 000 500 000 Počet obyvatel Země 50 000 5 000 Počet uživatelů Internetu Počet počítačů v Internetu 500 000 5 000 Zdroj: MIDS, Austin TX, based on historical data 500 82 84 86 88 90 92 94 96 98 2001 SISAL Základy TCP/IP 6
Typy síťových propojení Sběrnice (např. 10 base 2) Hvězda (např. 10 base. T, ATM) Point-to-point přímé Point-to-point přes modemy Kruh (např. FDDI, Token-ring) Základy TCP/IP Point-to-point bezdrátové (např. laser, radioreléové, Wi. Fi) SISAL 7
Typy síťových rozhraní Loopback PPP Ethernet Token ring FDDI ATM - „tento počítač“, žádné fyzické zařízení - sériové propojení point-to-point - společná sběrnice: současný přístup, řešení kolizí (CSMA/CD) - předávání volného-obsazeného tokenu po kruhu - jednoduchý nebo dvojitý kruh (překlene přerušení vlákna) - systém přepínačů a virtuálních cest pro tok dat, hlasu, . . . Výpis nakonfigurovaných rozhraní: netstat -i SISAL Základy TCP/IP 8
OSI model Pořadí Vrstva protokol 7 6 5 4 3 2 1 Úkol aplikační komunikace mezi programy prezentační datové konverze relační navázání relace mezi počítači transportní korektnost přenosu informace síťová dosažení cílového počítače linková přenos dat po navázaném spojení fyzická interpretace elektrického signálu rozhraní SISAL Základy TCP/IP 9
TCP/IP model OSI Vrstva Protokoly v TCP/IP (příklady) 7 NFS 6 aplikační FTP 5 XDR RPC 4 transportní TCP UDP 3 internet 2 network interface Ethernet, FDDI, ATM, SLIP, X. 25 1 hardware - ICMP IP ARP SISAL Základy TCP/IP 10
Spojované/nespojované služby • spojované (connection-oriented) služby – – obdoba telefonního spojení zaručeno doručení datagramů ve správném pořadí (stream) aplikace je jednodušší, ale nemůže řídit komunikaci TCP je komplikované • nespojované (connectionless) služby – – – obdoba poštovního spojení není zaručeno pořadí ani doručení datagramů kontrolu musí provádět aplikace může lépe řídit komunikaci UDP je jednodušší SISAL Základy TCP/IP 11
TCP okna 00 10 20 30 40 00 50 00 00 10 10 20 20 ACK 10 10 20 30 30 40 40 SISAL Základy TCP/IP 12
Zahájení a ukončení spojení • Navázání TCP spojení SYN Seq# c SYN, ACK Ack# 0 Seq# s Seq# c+1 Ack# s+1 • Jednostranné uzavření spojení FIN, ACK Seq# x ACK Ack# y Seq# y Ack# x+1 SISAL Základy TCP/IP 13
Typy adresování • HW (linková vrstva) • MAC (ethernetová) adresa (např. : 8: 0: 20: ae: 6: 1 f) – dána výrobcem – nerespektuje topologii • SW (síťová vrstva) • IP adresa (např. : 194. 50. 16. 71) – přidělována podle topologie – určuje jednoznačně síť a v jejím rámci počítač • Lidé (aplikační vrstva) • Doménová adresa (např. : whois. cuni. cz) – přidělována podle organizační struktury – snazší zapamatování SISAL Základy TCP/IP 14
Konverze adres • doménové adresy • IP adresy • name resolver – řízení statické (/etc/hosts) nebo dynamické (DNS, NIS) – konfigurační soubor /etc/resolv. conf • ARP/RARP • MAC adresy – ARP tabulka (cache) – broadcastová výzva/odpověď SISAL Základy TCP/IP 15
Třídy IP adres Třída A B C D E Tvar adresy Začátek 1. byte 2. byte 3. byte 4. byte adresy 0 net 10 1110 1111 host net 1 -126 host net 128 -191 192 -223 224 -239 240 -255 Počet sítí strojů 126 ~16 k ~2 M ~16 M ~64 k 254 multicast experimental SISAL Základy TCP/IP 16
Speciální adresy • loopback – 127. 0. 0. 1 – adresa loopback rozhraní • privátní adresy – 10. 0, 172. 16. 0. 0 -31, 192. 168. *. 0 – nepřidělované, k použití pro lokální sítě – nesmí opustit síť • network broadcast – <adresa sítě>. <samé jedničky> – „všem v dané síti“ – normálně se doručí do cílové sítě • limited broadcast – 255 – „všem v této síti“ – nesmí opustit síť SISAL Základy TCP/IP 17
Subnetting • Subnetting dovoluje rozšířit síťovou část adresy: net subnet host pomocí specifikace tzv síťové masky (netmask), v tomto případě 255. 192: 11111111 11 000000 • Nedoporučuje se používat subnet "all-zeros" a "all-ones", takže v tomto případě máme pouze 1022 x 62 adres. • V definici je přípustná nespojitá maska, ale většinou se neimplementuje. • V současnosti se často ignorují třídy (classless) a místo masky uvádí jen počet bitů (např. 193. 84. 56. 71/26). SISAL Základy TCP/IP 18
Supernetting • router agreguje směrovací informace (192. 168. 4. 0/23) • single homed server – veškerý provoz ze sítě . . . 4. 0 jde přes router • dual homed neroutující server – je zapotřebí různé DNS pro sítě. . . 4. 0 a. . . 5. 0 192. 168. 4 192. 168. 5 SISAL Základy TCP/IP 19
IPv 6 • IPv 6 adresy jsou dlouhé 128 bitů (16 bytů). Zápis: fec 0: : 1: 800: 5 a 12: 3456 • Rozeznáváme adresy – unicastové - slouží k adresaci jediného rozhraní, kromě globálních adres existují ještě site-local adresy (jsou platné pouze v rámci organizace) a link-local adresy (platné v rámci lokálního propojení – sítě) – multicastové - slouží k adresaci skupiny rozhraní (IPv 6 převzal a mírně modifikoval IGMP) – anycastové - formálně se jedná o unicastové adresy, které jsou přiděleny více rozhraním (strojům) • Další vlastnosti: – autokonfigurace, Duplicate Address Detection, Router Discovery, Neighbor Discovery Protocol (místo ARP), Path MTU Discovery, tunelování IPv 4 SISAL Základy TCP/IP 20
Doménový systém edu server pro domény cuni. cz a ruk. cuni. cz cesnet ns vutbr nordu nic net whois cz cuni ruk dec 59 server pro doménu cz server pro root doménu sk mff fzi fixlink de SISAL Základy TCP/IP 21
Vyřizování DNS dotazu a. root-servers. net. ns. cesnet. cz cz cz: NS=192. . . www. mff. cuni. cz nerekurzivní www. mff. cuni. cz: NS=195. . . ns. fzi. de IP=193. . . rekurzivní www. mff. cuni. cz Základy TCP/IP www. mff. cuni. cz ns. cuni. cz, mff. cuni. cz IP=193. . . fixlink. fzi. de SISAL 22
Tok dat v TCP/IP Aplikace Transport IP Interface Data TCP/UDP header Interface header Data . . . packet datagram CRC stream message packet datagram frame SISAL Základy TCP/IP 23
Multiplexing, demultiplexing Aplikace UDP TCP rozhodování podle čísla portu ICMP rozhodování podle IP protokolu ARP rozhodování podle typu (délky) Ethernet rámce IP IPX Ethernet SISAL Základy TCP/IP 24
Socket, port • Port. . . 16 bitové číslo identifikující jeden konec spojení - aplikaci, proces, který má zpracovávat příchozí pakety – destination-port musí být znám, typicky je to některý z tzv. well-known services (viz /etc/services) – source-port navazovatele (>1024) spojení přiděluje lokální systém • Socket. . . jeden konec komunikačního kanálu mezi klientem a servrem … označení (adresa) jednoho konce kanálu <IPadresa, port> – Výpis otevřených socketů: netstat [-an] SISAL Základy TCP/IP 25
Aplikační protokoly TCP/IP • 21/TCP: FTP - File Transfer Protocol • 22/TCP: SSH - Secure Shell • 23/TCP: telnet - Telecommunication network • 25/TCP: SMTP - Simple Mail Transfer Protocol • 53/TCP, UDP: • (přenos souborů) (interaktivní přístup ke vzdáleným počítačům) (přenos elektronické pošty) DNS – Domain Name System (překlad jmen na IP adresy a naopak) 67, 68/UDP: Protocol DHCP - Dynamic Host Configuration (vzdálená konfigurace) • 80, 443/TCP: • 119/TCP: NNTP - Network News Transfer Protocol HTTP - Hyper. Text Transfer Protocol (přenos stránek informačního systému W W W) (přenos zpráv v systému Use. Net, Net. News) SISAL Základy TCP/IP 26
Struktura ethernetového rámce Ethernet v 2: Destination MAC address Source MAC address Type Data IP ARP RARP IPX CRC 0 x 0800 0 x 0806 0 x 8035 0 x 8137 IEEE 802. 3 Destination MAC address Source MAC address Len Data CRC <= 1500 SISAL Základy TCP/IP 27
Struktura IP datagramu Version Header Service Type Length (priorita) Identification (pořadové číslo) Time-to-live Total Length Flags Protocol (/etc/protocols) Fragment Offset Header Checksum Source IP Address Destination IP Address Options Padding Data SISAL Základy TCP/IP 28
Struktura TCP paketu Source Port Destination Port Sequence Number Acknowledgement Number Data Offset (rsvd) Flags (SYN, URG, ACK, . . . ) Checksum Window Urgent Pointer Options Padding Data SISAL Základy TCP/IP 29
Spojování segmentů sítě Vrstva Síťové zařízení Vrstva aplikační gateway (brána) aplikační transportní síťová router (směrovač) síťová linková bridge, switch linková fyzická repeater, HUB fyzická SISAL Základy TCP/IP 30
Porovnání HUB vs. switch S • HUB S 10 Mbit/s S • Switch S 10 Mbit/s S S S • Switch, více serverů S > 10 Mbit/s S • Switch s uplinkem S up to 100 Mbit/s SISAL Základy TCP/IP 31
Příklad topologie sítě Klient 1 Klient 2 Klient 3 Lokální síť Ethernet segment Repeater Klient 4 Klient 5 Server 1 Provoz Bridge Klient 6 Klient 7 Server 2 Router Lokální síť Klient 8 WAN Klient 9 SISAL Základy TCP/IP 32
Principy firewallu IP filtr NAT vnější adresy vnitřní adresy Proxy-server klient - server SISAL Základy TCP/IP 33
Address Resolution Protocol • konverze MAC (Ethernetových) a síťových (IP) adres • ARP tabulka (cache) je v paměti na každé stanici • neznámé adresy se zjišťují broadcastovou výzvou: Ethernet=1 IP=0 x 0800 ARPreq=1 Sender MAC Sender IP FF: FF: FF: FF Target IP • unicastová odpověď (odpovídající si nejprve musí sám upravit svoji ARP tabulku) • výpis ARP tabulky: arp -a • ARP je omezeno na lokální síť, mezi sítěmi je v činnosti OSI 3 SISAL Základy TCP/IP 34
Proxy ARP klient posílá ARP request s IP adresou host ‚ router pozná, že ARP nebude zodpovězen, proto posílá ARP reply s MAC adresou routeru ƒ MAC routeru přiřazena k IP hosta v ARP na klientovi „ klient posílá data na hosta s MAC adresou routeru klient proxy ARP router host SISAL Základy TCP/IP 35
Protokol ICMP • Internet Control Message Protocol, slouží pro řídící informace nad IP protokolem – Echo Request, Reply. . . testování dosažitelnosti počítače příkazem ping – Source Quench. . . žádost o snížení rychlosti toku datagramů – Destination Unreachable. . . počítač (služba) nedostupný – Redirect. . . výzva ke změně cesty – Time Exceeded. . . vypršel Time-to-live (chyba v routování) – Parameter Problem. . . chyba v záhlaví datagramu – Timestamp Request, Reply. . . odhad doby přenosu – Information Request, Reply. . . žádost o adresu sítě – Address Mask Request, Reply. . . žádost o síťovou masku SISAL Základy TCP/IP 36
Směrování OSI 7 -4 OSI 3 OSI 2 výchozí poč. IP: n 1. h 1 router 1 IP: n 1. h 2 n 2. h 2 router 2 IP: n 2. h 1 n 2. h 2 cílový poč. IP: n 2. h 2 OSI 1 MAC 12 n 2. h 2 MAC 21 n 2. h 2 MAC 22 n 2. h 2 SISAL Základy TCP/IP 37
Směrovací algoritmus zvol nejspeciálnější záznam (host, net, default) existuje? ne můj stroj? ano moje síť? ano ne není cesta No route to host ponechat poslat (podle ARP) direct route poslat směrovači indirect nebo default route SISAL Základy TCP/IP 38
Příklad směrovací tabulky Destination Gateway Mask 193. 84. 48. 50 193. 84. 48. 49 255 direct, host 194. 50. 16. 64 194. 50. 16. 71 255. 224 direct, subnet 194. 50. 17. 0 194. 50. 16. 77 255. 0 indirect, net default 193. 84. 48. 50 0. 0 default 194. 50. 17. 0 193. 84. 48 194. 50. 16. 64 49 77 71 50 SISAL Základy TCP/IP 39
Principy směrování • směrování by měla umět každá stanice, v UNIXu je přímo součástí jádra • směrovací tabulky obsahují záznamy: cíl, maska, gateway (dřívější členění cílů: host, net, default) • cíle jsou řazeny od speciálních k obecnějším • typy záznamů: – direct (přímo připojená síť, “gateway” je vlastní adresa) – indirect, default • vznik záznamu: – implicitní (automaticky po zadání příkazu ifconfig) – explicitní (zadán příkazem route) – dynamický (v průběhu práce od partnerů v síti) SISAL Základy TCP/IP 40
Statické řízení směrovacích tabulek Cesty se nastavují při startu pomocí příkazů route - nesnadné zálohování spojení (cykly) - problémy se subnettingem - nutná inicializace, nepružné při změnách + méně citlivé na problémy v síti + dostupné i ve zcela heterogenním prostředí vhodné pro jednodušší, stabilní sítě route { add delete flush | -f }{ { [gw] Základy TCP/IP [[-]host] host [[-]net] net [[-netmask] default | 0 router [metric] interface [-interface] } } SISAL 41
Redirekce původní obsah tabulky: nový obsah tabulky: default 5. 0. 0. 8 UG 6. 0. 0. 0 5. 0. 0. 6 UGD 1. první datagram pro 6. 0. 0. 1 síť 5. 0. 0. 0 4. další datagramy pro 6. 0. 0. 1 3. ICMP redirect síť 8. 0. 0. 0 8 2. redirekce datagramu 6 síť 6. 0. 0. 0 SISAL Základy TCP/IP 42
Dynamické řízení směrovacích tabulek Uzly sítě si navzájem vyměňují informace směrovacími protokoly + jednoduché změny konfigurace + směrovací tabulky se udržují automaticky - na jednoduchých sítích občas zdrojem zbytečných problémů • starší varianta: – daemon routed {-g | -q } – používá protokol RIP • modernější řešení: – daemon gated, konfigurační soubor /etc/gated. conf – používá protokol RIP nebo OSPF • pro externí routery (propojují autonomní systémy) se užívají protokoly EGP a BGP SISAL Základy TCP/IP 43
Diagnostika směrování • Výpis směrovacích tabulek: netstat -r[n] Destination 194. 50. 16. 0 127. 0. 0. 1 default 193. 84. 57. 0 Gateway Flags Ipkts. . . Colls Interface this U 15943. . . 0 tu 0 loopback UH lo 0 gw UG tu 0 gate UGD tu 0 • Kontrola cesty: traceroute 1 gw. thisdomain (194. 50. 16. 222) 2 ms 1 ms 2 gw. otherdomain (193. 84. 48. 49) 12 ms 15 ms SISAL Základy TCP/IP 44
Konfigurace TCP/IP UNIX – IP adresa: ifconfig interface IP_adr [ netmaska ] – defaultní router: route add default router – doména a nameserver: /etc/resolv. conf domain jméno_domény nameserver IP_adresa_nameserveru Windows 95 – start dialogu: Control Panel Network TCP/IP SISAL Základy TCP/IP 45
Protokol BOOTP/DHCP FF. . . MAC BOOTPS request 255. . . 0. 0 BOOTPS MAC • BOOTP server přiděluje IP podle MAC adresy v tabulce (/etc/bootptab) a odpovídá broadcastem nebo unicastem (musí si doplnit arp tabulku) • podle RFC 1084 odpověď obsahuje IP adresu, síťovou masku, jméno, gateway, nameserver. . . • routery standardně BOOTP nepropouštějí (limited broadcast), spojení se servrem zajišťuje BOOTP forwardování • postupné rozšiřování vedlo ke vzniku nového protokolu DHCP: dynamické přidělování adres (šetří IP, ale je méně bezpečné), časové omezení pronájmu, interakce mezi klientem a servery, . . . SISAL Základy TCP/IP 46
Automatická konfigurace BOOTPS request: Ethernetová adresa klienta limited broadcast unicast klient router s BOOTP forwardingem server BOOTPC reply: IP adresa, maska, router. . . broadcast, unicast SISAL Základy TCP/IP 47
Model TCP aplikace Klient Server socket bind listen connect accept write read write close SISAL Základy TCP/IP 48
Model UDP aplikace Klient Server socket bind connect write sendto sendmsg readfrom readmsg write sendto sendmsg close SISAL Základy TCP/IP 49
Start síťových daemonů • přímý start – ve startovacích scriptech – intenzivně využívané, speciální služby, se složitou inicializací • nepřímý start (on demand) – provádí daemon inetd – konfigurace v /etc/inetd. conf: bootps dgram udp wait root /etc/bootpd tftp dgram udp wait nobody /etc/tftpd /tftpboot whois stream tcp nowait nobody /etc/whoisd – překonfigurování: kill -HUP PID – server komunikuje přes filedeskriptory 0/1 SISAL Základy TCP/IP 50
Systém DNS • Klient-sever aplikace, binární protokol nad UDP i TCP • Typy serverů: – primární: udržuje data o doméně – sekundární: udržuje kopii dat – caching-only: udržuje pouze vyřešené odkazy • Reverzní dotazy (IP adresa jméno) se řeší pomocí reverzních domén: IP adrese 194. 50. 16. 71 odpovídá záznam 71 v doméně 16. 50. 194. in-addr. arpa • Diagnostika DNS: nslookup podpříkazy: set type, server, name, IPadr, ls, exit dig [@server] jméno [typ_dotazu] SISAL Základy TCP/IP 51
DNS dotaz a odpověď • Dotaz: – QUERY: alias. tns. cz IN CNAME • Odpověď: – – – FLAGS: QUERY: ANSWER: AUTHORITY: ADDITIONAL: Authoritative, Recursive alias. tns. cz IN CNAME ns tns. cz IN NS ns. tns. cz IN A 1. 1 • Problém: Příznak Authoritative se nevztahuje na sekci ADDITIONAL, legální server pro nějakou doménu tam může legálně umístit falešné údaje. SISAL Základy TCP/IP 52
Uživatelské příkazy TCP/IP ARPA BSD (Internet) (UNIX) kopírování souborů ftp rcp vzdálené logování telnet rlogin vzdálené provádění příkazů rexec rsh informace o uživatelích finger rwho on-line komunikace talk rwall SISAL Základy TCP/IP 53
Příkaz ftp • File Transfer Protocol – řídící relace: port 21 – datový přenos (aktivní FTP): obrácený směr, port 20 • Interaktivní příkaz: – vlastní prompt – visuální interface • Logování na vlastní účet nebo anonymně: login: anonymous password: elektronická_adresa • Seznam uživatelů se zakázaným FTP: /etc/ftpusers • Uživatel FTP musí mít platný login shell (/etc/shells) SISAL Základy TCP/IP 54
Podpříkazy ftp • • navazování relace: open, user ukončování relace: close, quit, bye lokální příkazy: lcd, !command vzdálené příkazy: cd, pwd, ls, dir přenos souborů: get, put, mget, mput typ přenosu souborů: ascii, binary práce se soubory: delete, rename, mkdir, rmdir pomocné příkazy: prompt, hash, status, help, verbose, . . . SISAL Základy TCP/IP 55
Aktivní/pasivní datové spojení • Aktivní spojení 1. 1: 1234 PORT 1, 1, 8, 0 200 PORT command OK. LIST 1. 1: 2048 2. 2: 21 2. 2: 20 • Pasivní spojení 1. 1: 1234 1. 1: 1235 PASV 227 OK (2, 2, 8, 1) LIST 2. 2: 21 2. 2: 2049 SISAL Základy TCP/IP 56
Inicializační soubor ~/. netrc machine host login name password passwd macdef macro příkazy. . . macdef init inicializační příkazy. . . • • parametry makra: $1. . . , volání makra: $jméno hesla jen pro anonymní a speciální uživatele! mód souboru s hesly musí být rw------vyvolání ftp bez inicializace: ftp -n SISAL Základy TCP/IP 57
BSD příkazy • rcp -pr [[user@]host: ]file. . . sémantika stejná jako u příkazu cp: kopíruje soubory (adresáře) pod cílovým jménem (do cílového adresáře) ke stroji host přistupuje jako uživatel user • rsh host [-l user ] cmd provedení příkazu cmd na stroji host pod uživatelem user • rlogin host [-l user ] přihlášení uživatele user na stroji host SISAL Základy TCP/IP 58
Autorizace BSD příkazů stejný uživatel? ano ne uživatel root? ano ne /etc/hosts. equiv client [user] ne ok? ano ~/. rhosts client [user] ne příkaz rlogin? ne ok? ano fail kontrola hesla OK SISAL Základy TCP/IP 59
OTP, Secure shell Konvenční příkazy posílají uživatelská hesla otevřeně po síti. Řešení: • Systém One. Time. Password server vyšle jedinečný náhodný kód, uživatel na klientovi zadá do speciální kalkulačky kód a svoje heslo a dostane odpověď, kterou klient pošle servru • Systém Secure. Shell programový balík nahrazující BSD příkazy • šifruje veškerou komunikaci • umožňuje zadávat heslo i u příkazu scp SISAL Základy TCP/IP 60
Elektronická pošta – – off-line předávání zpráv příp. souborů off-line použití informačních služeb diskusní kluby (mailing-listy, konference) komunikace mimo Internet E-mailová adresa (typicky): alias@doména nebo login@počítač např. : Libor. Forst@cuni. cz nebo forst@ms. mff. cuni. cz SISAL Základy TCP/IP 61
Elektronický dopis Received: from alfik. ms. mff. cuni. cz by betynka. ms. mff. cuni. cz. . . Date: Thu, 16 Nov 1995 00: 54: 31 +0100 To: student 1@ms. mff. cuni. cz From: Libor Forst <forst@cuni. cz> Subject: Test posty Cc: student 2@ms. mff. cuni. cz MIME-Version: 1. 0 Content-Type: multipart/mixed; boundary="=_XXX" --=_XXX Content-Type: text/plain; charset=Windows-1250 Content-Transfer-Encoding: 8 bit Ahoj Petře! SISAL Základy TCP/IP 62
Ukázka SMTP protokolu 220 alfik. ms. mff. cuni. cz ESMTP Sendmail. . . HELO betynka 250 alfik Hello betynka, pleased to meet you MAIL FROM: <forst@cuni. cz> 250 2. 1. 0 <forst@cuni. cz>. . . Sender ok RCPT TO: <lf@tns. cz> 250 2. 1. 5 <lf@tns. cz>. . . Recipient ok DATA 354 Enter mail, end with ". " on a line by itself dopis. . 250 2. 0. 0 h 98 G 9 Fx. T Message accepted for delivery QUIT 221 2. 0. 0 alfik closing connection SISAL Základy TCP/IP 63
Přístup k poště z pohledu uživatele a) přímé připojení na SMTP server Mail Transfer Agent Mail User Agent b) připojení přes POP nebo IMAP server SMTP server WAN POP server SISAL Základy TCP/IP 64
Příjem a odeslání pošty v SMTP a) přímé doručení mail-relay 2 b) doručení přes forwarder WAN 3 1 mail-forwarder mbox IN MX 0 mbox IN MX 20 relay SISAL Základy TCP/IP 65
Příjem pošty na UNIXu • Příjem pošty – daemon sendmail, konfigurace sendmail. cf – aliasy (/etc/aliases): alias: adresa, adresa. . . aktivace: příkaz newaliases • Čtení pošty: mail – – není user-friendly osobní autoforward: ~/. forward adresa může mít tvar: "|cmd" pozor na cykly SISAL Základy TCP/IP 66
Odesílání pošty na UNIXu • Psaní pošty: mail [-v] [-s subject ] adresa. . . – vhodné pro dávkové zpracování – příkazy ~v, ~s subj, ~q • Vlastní nastavení: $HOME/. mailrc – možnost potlačení některých dotazů při odesílání – možnost potlačení výpisu některých informací při čtení – vlastní aliasy pro odesílání pošty, např. : alias project petr pavel novak@firma. cz SISAL Základy TCP/IP 67
Diskusní listy • adresa: mail_list@mailserver • (list)server: mail_list-request@mailserver listserv@mailserver – udržuje seznam abonentů – rozesílá dopisy nebo oznámení – udržuje archiv • listy: – otevřené vs. uzavřené – moderované n. nemoderované • příkazy: help, information, lists, review, [un]subscribe, index, search SISAL Základy TCP/IP 68
Etika poštovního styku • jazyk, výrazové prostředky • používání subjectu • míra zachování původního textu v odpovědi • účelné posílání souborů, češtiny • obtěžování uživatelů a sítě, řetězové dopisy SISAL Základy TCP/IP 69
Bezpečnost pošty • Dopis je vždy otevřená listovní zásilka (z různých příčin se může dostat do ruky mnoha lidem) Řešení: kryptovat obsah dopisu (crypt, PGP - Pretty Good Privacy) • Nikdy není jistý odesilatel (málokterý server kontroluje správnost odesilatele) Řešení: elektronické podpisy, systém výzva/odpověď SISAL Základy TCP/IP 70
Šifrování • Symetrické šifrování – pro šifrování a dešifrování se používá stejný klíč – výhoda: rychlé – nevýhoda: partneři si musí klíč předat bezpečnou cestou • Asymetrické šifrování – pro šifrování a dešifrování se používá dvojice klíčů – nevýhoda: pomalé – výhoda: jeden klíč je veřejný, druhý tajný • Hash – vytvoření „kódu“ z daného textu – změny textu a hashe jsou navzájem neodvoditelné SISAL Základy TCP/IP 71
Šifrování dopisu volný text náhodný symetrický klíč veřejný klíč příjemce symetricky zašifrovaný text asymetricky zašifrovaný klíč tajný klíč příjemce náhodný symetrický klíč volný text SISAL Základy TCP/IP 72
Elektronický podpis hash textu tajný klíč odesilatele volný text zašifrovaný hash veřejný klíč odesilatele hash textu =? hash textu SISAL Základy TCP/IP 73
Uniform Resource Identifier • • jednotný systém odkazů jediný klient pro více služeb nepostradatelná pro WWW historické členění: URL, URN, . . . protokol: // [jméno[: heslo]@]adresa[: port][ cesta] protokol adresa cesta př. : ftp: //sunsite. mff. cuni. cz/OS/Free. BSD http: //www. cesnet. cz: 8080 mailto: root@company. com SISAL Základy TCP/IP 74
Princip ditribuované databáze Gopher at Charles University gopher. cuni. cz 1. About this Gopher. . . 4. Czech Educational and Scientific Network. . . 9. User Directory Service for Czech Republic. . . Czech Root Gopher Server gopher. cesnet. cz 1. About this Gopher. . . 5. User Directory Service for Czech Republic. . . User Directory Service whois. cuni. cz Enter search key _ SISAL Základy TCP/IP 75
Hypertext • Původní význam: text doplněný vazbami (podobně jako např. v Helpu ve Windows). Zvolením vyznačených slov lze získat podrobnější informaci nebo přejít na příbuzné téma. • Dnešní chápání: blíže pojmu hypermediální text, neboli text doplněný nejen odkazy, ale i netextovými prvky (obrázky, zvuk, video. . . ) SISAL Základy TCP/IP 76
World Wide Web • WWW je distribuovaná hypertextová databáze • Základní jednotkou je stránka (dokument) • Dokumenty jsou psány v textovém jazyce HTML – popisuje obsah i formu (styly - CSS) – existují staticky nebo se vytvářejí dynamicky • Odkazy: – mohou vést na příbuzné dokumenty nebo programy – jsou zapisovány ve tvaru URL – jsou součástí textu příp. i obrázků SISAL Základy TCP/IP 77
Protokol HTTP URL: http: //www. . . /index. html GET /index. html server HTTP/1. 0 200 OK Content-type: text/html <HTML><HEAD> <TITLE>Stranka. . . </TITLE> </HEAD><BODY> <H 1>Nadpis stránky</H 1> <HR>. . . klient HTML stránka SISAL Základy TCP/IP 78
Příkazy HTTP Metoda Požadavek Odpověď GET --- požadovaná stránka HEAD --- POST parametry stránky požadovaná stránka PUT soubor --- CONNECT . . tunel. . . . . SISAL Základy TCP/IP 79
Dynamické stránky • Dynamika řízená na serveru: – Formuláře + cgi-skripty, server-side include – HTML preprocesor (PHP) • Přenesení výpočetního výkonu na klienta: – Java - jazyk myšlenkově vycházející z C++, s vyššími nároky na bezpečnost, s knihovnami pro jednoduchou tvorbu uživatelského rozhraní Java programy (applety), se na klienta přenášejí jako přeložený kód a on ho interpretuje a provádí (víceméně) nezávisle na platformě za pomoci lokálních knihoven – Javascript - analogický princip, na klienta se ale přenáší zdrojový kód a on ho interpretuje SISAL Základy TCP/IP 80
Bezpečnost na WWW • Bezpečnost uživatele – komunikace mezi klientem a serverem probíhá otevřeně – přenos citlivých informací (hesla, údaje ve formulářích) představuje riziko – zabezpečená forma komunikace přes Transport Layer Security (TLS), dříve Secure Sockets Layer (SSL) – dnes podporují všichni běžní klienti/servry • Bezpečnost serveru – přes WWW server vede většina útoků – pečlivě udržovaný systém – minimální práva SISAL Základy TCP/IP 81
The End SISAL Základy TCP/IP 82
- Slides: 82