Podstawy ======== .. image:: http://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Internet_map_1024_-_transparent.png/600px-Internet_map_1024_-_transparent.png :target: http://en.wikipedia.org/wiki/File:Internet_map_1024_-_transparent.png Krótka historia sieci i Internetu --------------------------------- #. Prehistoria * telegraf * łączenie procesorów * terminale, time-sharing * centrala telefoniczna * sieci dedykowane #. *Interface Message Processor* (IMP) subnets #. Komunikacja pakietowa (*packet switching*) * *Advanced Research Projects Agency Network* (ARPANET), 1967 * *National Physics Laboratory* (NPL), 1970 #. Internetworking, intercompatibility * *CYCLADES*, 1973 #. *Internet Assigned Number Authority* (IANA), 1972 #. *Transmission Control Protocol* (TCP), 1974, (DARPA) #. *Dynamic Name Server* (DNS), 1984 #. *USENET*, 1984 #. *World Wide Web* (WWW), 1991 Potrzeba standaryzacji: *For each of these three terminals, I had three different sets of user commands. So if I was talking online with someone at S.D.C. and I wanted to talk to someone I knew at Berkeley or M.I.T. about this, I had to get up from the S.D.C. terminal, go over and log into the other terminal and get in touch with them...* *I said, oh man, it's obvious what to do: If you have these three terminals, there ought to be one terminal that goes anywhere you want to go where you have interactive computing. That idea is the ARPAnet.* Robert Taylor. *An Internet Pioneer Ponders the Next Revolution*. The New York Times. 20 XII 1999. Sieci ----- Rodzaje sieci: * Zasięg: * Personal Area Network (PAN) * Storage Area Network (SAN) * Local Area Network (LAN) * Campus Area Network (CAN) * Metropolitan Area Network (MAN) * Wide Area Network (WAN) * Internet Area Network (IAN -- Cloud) * Dostęp: * intranet * ekstranet * Topologia (fizyczna, logiczna): * punkt-punkt (*point-to-point*) * magistrala (*bus*) * pierścień (*ring*) * gwiazda (*star*) * hierarchiczna, drzewiasta (*tree*) * siatki (*mesh*) Liczba adresatów transmisji: * unicast -- jeden odbiorca * anycast -- dowolny z wielu odbiorców * multicast -- wielu odbiorców * broadcast -- wszyscy możliwi odbiorcy Adresacja IP ------------ .. .. image:: _static/subnets.png :scale: 30% :align: center .. image:: http://www.graphviz.org/Gallery/twopi/twopi2.png :target: http://www.graphviz.org/content/twopi2 :align: center * Internet---sieć sieci. * Jak kierować wiadomości do konkretnego węzła? * Jak nadać adres każdemu urządzeniu w sieci? Anatomia adresu IPv4 -------------------- * Ciąg 32 bitów (4 bajty) * Hierarchiczny---składa się z 2 części (punkt podziału zależy do konwencji): * **część sieciowa**---adres sieci w której znajduje się komputer (początkowa część adresu) * **część komputerowa**---adres komputera wewnątrz sieci (końcowa część adresu) * Przykład: ``11000000 01110000 01001100 00000011`` * część sieciowa: ``11000000 01110000`` (2B) * część komputerowa: ``01001100 00000011`` (2B) Zapis dziesiętny (*dotted decimal*) """"""""""""""""""""""""""""""""""" * 4 jednobajtowe segmenty rozdzielone kropką * każdy bajt zapisany jako liczba dziesiętna z przedziału ``0``-``255`` (``00000000``--``11111111``) * Przykład: ``11000000 01110000 01001100 00000011`` = ``192.56.76.3`` Adres sieci """"""""""" * Adresy nadaje się komputerom oraz sieciom * Adres sieci ma wyzerowaną część komputerową * Przykład: ``11000000 01110000 00000000 00000000`` (część seciowa = 2B) * Procedura uzyskania adresu komputera rozpoczyna się od uzyskania adresu sieci * Adres komputera w sieci jest przyznawany przez administratora Maska Sieci """"""""""" * Ciąg 32 bitów składający się z bloku jedynek i bloku zer, np. ``11111111 11111111 11110000 00000000`` * Określa punkt podziału adresu na część komputerową i sieciową * część siecową adresu można uzyskać wykonując operację bitową ``AND`` na adresie i jego masce sieci: ``11000000 01110000 01001100 00000011`` (adres) ``11111111 11111111 00000000 00000000`` (maska) ``11000000 01100000 00000000 00000000`` (adres ``AND`` maska = część sieciowa adresu) * analogicznie numer komputera można uzyskać wykonując operację bitową ``AND`` na adresie i jego odwrotności maski * Posiada zapis dziesiętny jak adres IP: ``11111111 11111111 11110000 00000000`` = ``255.255.240.0`` * Stosuje się skrócony zapis ``/n`` gdzie ``n`` to liczba jedynek w masce, np.: ``11111111 11111111 11110000 00000000`` = ``/20`` * Przykład adresu IPv4 z maską: ``192.56.76.3/16`` Adresy specjalne """""""""""""""" Poniższe adresy są zarezerwowane w każdej sieci do funkcji specjalnych, więc nie mogą zostać nadane żadnemu komputerowi w tej sieci: * Adres sieci: wyzerowana część komputerowa adresu, np. ``192.168.0.0/16`` * Adres rozgłoszeniowy: część komputerowa złożonoa z jedynek, np. ``192.168.255.255/16`` (wiadomość wysłana na adres rozgłoszeniowy trafia do wszystkich komputerów w sieci) Zakres adresów """""""""""""" Adresy komputerów mieszczą się w przedziale wyznaczonym przez rozmiar części komputerowej adresów pomniejszonym o adresy specjalne Przykład: * Sieć: ``150.150.0.0/16`` ========================================== ============================= ====================================== ``10010110 10010110 00000000 00000000`` ``150.150.0.0`` adres sieci ``10010110 10010110 00000000 00000001`` ``150.150.0.1`` adres pierwszego komputera w sieci ``10010110 10010110 00000000 00000010`` ``150.150.0.2`` adres drugiego komputera w sieci ... ... ``10010110 10010110 11111111 11111110`` ``150.150.255.254`` adres ostatniego komputera w sieci ``10010110 10010110 11111111 11111111`` ``150.150.255.255`` adres rozgłoszeniowy ========================================== ============================= ====================================== * **Zakres adresów**: ``150.150.0.1``--``150.150.255.254`` * Liczba komputerów które można zaadresować w tej sieci: :math:`2^{16} - 2` Zakresy sieci ------------- Aby lokalizacja urządzenia w Internecie była jednoznaczna, jego adres IP musi być unikalny. Wymaga to spełnienia dwóch warunków: Adres **publiczny** to taki, który ma spełnione dwa warunki: #. unikalność adresu IP sieci (rejestracja adresu publicznego) #. unikalność numeru urządzenia wewnątrz tej sieci (administracja) Przydzielanie adresów publicznych: * `ICANN / IANA `_ * `RIPE `_ .. image:: https://upload.wikimedia.org/wikipedia/en/d/d5/RIR_Service_Regions_Map_2015.jpg.png :target: https://upload.wikimedia.org/wikipedia/en/d/d5/RIR_Service_Regions_Map_2015.jpg.png :align: center Klasy Adresów """"""""""""" Dla niektórych zastosowań nie jest konieczne posiadanie unikalnych adresów. Zakres adresów, które można wykorzystywać bez rejestracji to adresy prywatne. Klasy adresów prywatnych: * klasa **A** -- adresy z zakresu ``10.0.0.0`` -- ``10.255.255.255`` (pierwszy bit: ``0``, maska */8*) * klasa **B** -- adresy z zakresu ``172.16.0.0`` -- ``172.31.255.255`` (pierwsze bity: ``10``, maska */16*) * klasa **C** -- adresy z zakresu ``192.168.0.0`` -- ``192.168.255.255`` (pierwsze bity: ``110``, maska */24*) * klasa **D** -- multicast, adresy z zakresu ``224.0.0.0`` -- ``239.0.0.0`` (pierwsze bity: ``1110``) * klasa **E** -- eksperymentalne, adresy z zakresu ``240.0.0.0`` -- ``254.0.0.0`` (pierwsze bity: ``1111``) Adresy zarezerwowane """""""""""""""""""" * 127.0.0.0/8 -- pętla (*loopback*) * 192.0.2.0/24 -- przykład (*TEST-NET*) Lista adresow zarezerwowanych: http://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses Zadania ------- #. Wykonaj polecenie wyświetlające adres IP i maskę twojego komputera (``ipconfig`` w systemie Windows, ``ifconfig`` w systemie Linux). Podaj: * adres swojego komputera * maskę sieci w której się znajduje * adres sieci w której się znajduje * adres rozgłoszeniowy sieci #. Czy Twój komputer znajduje się w sieci prywatnej? #. Mając daną maskę w postaci ``/n`` podaj wzór na liczbę komputerów które mozna zaadresować w sieci okreslonej tą maską #. Oblicz zakres adresów komputerów i adres rozgłoszeniowy w sieci o adresie ``150.150.64.0`` i masce ``255.255.192.0``. #. Oblicz zakres adresów IP sieci (od najmniejszego do największego) w każdej z klas A, B i C. #. Oblicz zakres adresów IP komputerów w każdej z klas A, B i C. Materiały --------- * `Skrypt, M. Kalewski `_ * Klasy adresów: http://www.vlsm-calc.net/ipclasses.php Historia """""""" * http://en.wikipedia.org/wiki/Computer_network#History * http://internetum.blox.pl/2010/12/Chronologia-Internetu-1957-1989.html * http://internetum.blox.pl/2011/01/Historia-Internetu-1990-1999.html * http://internetum.blox.pl/2011/02/Historia-Internetu-w-Polsce-cz1.html * http://kalendarium.icm.edu.pl/ * http://joaobordalo.com/files/topInternetHistory.png?dur=1478 Misc ---- Pierwsze połączenie za pomocą ARPANET-u: *"We set up a telephone connection between us and the guys at SRI ...", Kleinrock ... said in an interview: "We typed the L and we asked on the phone,* *"Do you see the L?"* *"Yes, we see the L," came the response.* *We typed the O, and we asked, "Do you see the O."* *"Yes, we see the O."* *Then we typed the G, and the system crashed ...* Gregory Gromov. *Roads and Crossroads of Internet History*