Operační systémy Počítačové sítě v OS © Milan Keršláger Obsah:
Počítačové sítě a OPS ● po rozšíření počítačů snaha o propojování ● 1969 – ARPANET (dnes Internet) ● snaha o vytvoření decentralizované sítě ● odolnost proti vyřazení její části – míněn jaderný úder → období studené války ● propojení akademických pracovišť v USA – peníze od agentury DARPA (tj. armáda je sponzor) – nikdo nevěděl jak a jestli vůbec to bude fungovat ● 1972 – připojeno Norsko (Evropa X.25 → 1989) ● 1992 – připojen Bílý dům – už není jen akademický
Síťové protokoly ● NCP (Network Control Program) ● původní protokol, za přenos je zodpovědná síť ● TCP/IP ● protokol Internetu od roku 1983 (IPv4) ● za přenos jsou odpovědné koncové body ● SMB (CIFS) – sdílení pro Microsoft Windows ● původně používal NetBIOS, dnes TCP/IP ● NCP (Netware Control Protocol) ● původně nad IPX/SPX, poté TCP/IP ● AppleTalk – obdoba SMB pro MAC
Vrstevnatý model sítí ● různé technologie ● Ethernet, ARCNET, Token ring, ATM, FDDI,... ● různé síťové protokoly ● IP, IPX, DDP (AppleTalk),... ● různé transportní protokoly ● TCP, UDP, SPX, ATP,... ● pomocí vrstev lze jednotlivé části zaměňovat ● kombinace různých technologií ● po výměně HW jen výměna ovladače atd.
Pozice TCP/IP ● 1983 – TCP/IP nahrazuje NCP v ARPANETu ● zavedeno IPv4, dnes pomalý nástup IPv6 ● dnes dominance i v LAN sítích ● nahradilo IPX/SPX, NetBIOS, AppleTalk a další ● adopce pro SMB/CIFS (sdílení Microsoft) ● též DNS nahrazuje WINS ● umožňuje rozdělení LAN na podsítě ● sjednocuje WAN a LAN sítě
Vrstvy v TCP/IP ● má jen 4 vrstvy (ISO/OSI má 7 vrstev) ● zdánlivá komunikace vrstev, skutečná dole Aplikační Transportní Síťová Síťového rozhraní Aplikační Transportní Síťová Síťového rozhraní HTTP, FTP, DNS, SMTP, POP3,... TCP, UDP IP Ethernet, WiFi,... Skutečná komunikace
Implementace TCP/IP – 1 ● poprvé v 4.2BSD Unixu (1983) ● SVR4 Unix od AT&T až v roce 1990 ● součást jádra OS (tzv. TCP/IP stack) ● API mezi vrstvami → snadná záměna (HW, ovladač) ● DOS ● bez jednotné sítí podpory přímo v OS, málo RAM ● WATTCP, KA9Q – součást aplikací – nebylo možné opravit nebo doplnit implementaci – nutné opravit a přeložit dotčenou aplikaci ● další částečné implementace (Microsoft, Novell,...)
Implementace TCP/IP – 2 ● Windows ● první Windows bez podpory TCP/IP – Microsoft poskytuje jen NetBIOS/NetBEUI ● Winsock API (vychází z BSD sockets) – 1.0 – 1992 – dohoda třetích stran (kompatibilita pro apl.) – snaha o snadné portování unixových apliakcí ● v některých ohledech neřešitelné kvůli Win32 – Microsoft se připojil ● verze 1.1 pro Win'95 a řadu NT (1993) – přímo v instalaci ● verze 2 (1996) a (1997) ● Trumpet Winsock – populární shareware pro Windows 3.x
TCP/IP stack ● OS poskytuje pro všechny aplikace ● jednotná implementace → „málo chyb“ ● implementace velmi rozsáhlá ● ne vše přesně definováno v RFC ● analýzou odpovědí lze zjistit odchylky a tím OS ● nástroj nmap a další ● mnoho bezpečnostních problémů ● Ping of Death, Winnuke, Teardrop, Land,... – Microsoft tradičně starý, neměnný, nekonzistentní kód, odchylky od standardu atd.
Síťové sokety ● API pro TCP/IP stack ● využívají aplikace pro síťovou komunikaci ● protokol + IP adresa + port (stejně i protistrana) ● každý soket se váže na konkrétní proces (thread) ● příkaz netstat je umí zobrazit (Unixy i Windows) ● duplexní komunikace (obousměrná) ● příbuzné s prací se soubory, avšak mnohá specifika ● funkce: socket(), bind(), listen(), connect(), accept(), close(), send(), recv() → též write(), read(), atd.
Konfigurace TCP/IP ● komunikují síťová rozhraní (ne počítače) ● je nutné zadat: ● IP adresa + maska sítě – identita + rozeznání přímých sousedů v podsíti – příkaz ifconfig (Unix), ipconfig (Windows) ● default gateway („cesta do Internetu“) – příkaz route (Unix i Windows) ● IP adresa DNS serveru – převod doménového jména na IP adresu i zpět ● např. atd. – řešeno knihovnou (tzv. resolver)