No Title
SIECI KOMPUTEROWE
WPROWADZENIE


Jacek Kobus
Instytut Fizyki UMK
2008/9
Figure
1
Czy zostaliśmy złapani w Sieć?
W jakim stopniu nasze życie zależy od komputerów i sieci komputerowych?
Jak komputery i sieci komputerowe wpływają na funkcjonowanie państw i społeczeństw?
... jednym z niezbitych faktów jest dzisiaj to, że systemy i sieci informatyczne stanowią część ,,krytycznej infrastruktury" kraju … kontrolują one tak zwany ,,żelazny trójkąt" telekomunikacji, bankowości i zasilania w energię elektryczną. (E.Yourdon Wojny na bity)
Krótka historia powstania Internetu
Historia Internetu w liczbach
( http://www.netvalley.com/intvalstat.html)
# komputerów # serwerów www
7/01 126 000 000 28 200 000
7/98 37 000 000 4 270 000
7/97 19 540 000 1 200 000
7/96 12 881 000 300 000
7/95 6 642 000 25 000
7/94 3 212 000 3 000
7/93 1 776 000 150
7/92 992 000 50
7/89 130 000
7/81 210
1969 4



Ile osób korzysta z Internetu?
( wg szacunkowych danych, http://www.nua.ie/surveys/how_many_online)
8/2002 606 mln (Nua Ltd)
8/2001 513 mln (Nua Ltd)
8/2000 369 mln (Nua Ltd)
8/1999 195 mln (Nua Ltd)
9/1998 147 mln (Nua Ltd)
11/1997 76 mln (Reuters)
12/1996 36 mln (IDC)
12/1995 16 mln (IDC)

Wg Nielsen/NetRatings w 2002 r. było 580 milionów użytkowników Internetu. Szacunki International Telecommunications Union mówią o 665 milionach ( http://www.sims.berkeley.edu/research/projects/how-much-info-2003/internet.htm).
Wg sondażu SMG/KRC z lutego 2004 r. 6.7 mln Polaków (22.3%) w wieku od 15 do 75 lat korzysta z Internetu (http://dziennik.pap.com.pl/).
Internet w liczbach2
Figure
Ile osób korzysta z Internetu?
Najbardziej popularne witryny na świecie
(liczba użytkowników dziennie w mln (10/2006))3
Google 287,5
Yahoo 281,0
Microsoft Network 252,5
YouTube 64,1
Wikipedia 61,4
MySpace 38,5
eBay 31,5
Google w Polsce 10,3

4
USA Polska
1 Google Google Polska
2 Yahoo! Nasza klasa
3 Myspace Onet.pl
4 YouTube Allegro.pl
5 Facebook YouTube.pl
6 Windows Live Wirtualna Polska
7 Windows Network (MSN) Interia.pl
8 EBay Google
9 Wikipedia Fotka.pl
10 AOL Wikipedia

Jak szybko rozwja się Internet?
Wg firmy Netcraft ( http://news.netcraft.com/, 11/2006) jest nieco ponad 100 mln witryn w Internecie; w ciągu 2006 r. przybyło 24,6 mln.
Liczba witryn sieciowych (w mln)
1kwiecień 1997
10luty 2000
20wrzesień 2000
30lipiec 2001
40kwiecień 2003
50maj 2004
60marzec 2005
70sierpień 2005
80kwiecień 2006
90sierpnień 2006

Jak szybko rozwja się Internet?5
Total Sites Across All Domains August 1995 - December 2008
Figure
Jak szybko rozwja się Internet?6
Market Share for Top Servers Across All Domains August 1995 - December 2008
Figure
Cel wykładu:
Jak jest zbudowana i jak działa lokalna sieć komputerowa?
Jak jest zbudowana i jak działa rozległa sieć komputerowa?
Jak działa Internet (Sieć, sieć sieci)?
Program wykładu
  1. Wprowadzenie
  2. Architektura protokołów sieciowych: model odniesienia OSI i TCP/IP
  3. Charakterystyka protokołów modelu TCP/IP: Ethernet, ICMP, ARP, RARP, IP, TCP, UDP
  4. Lokalna sieć komputerowa: topologia, media transmisyjne, urządzenia sieciowe, protokoły
    1. Konfiguracja interfejsu sieciowego, analiza połączeń sieciowych, śledzenie ruchu w lokalnej sieci
    2. Reguły łączenia urządzeń sieciowych. Domeny kolizyjne, domeny rozgłoszeniowe
    3. Łączenie sieci lokalnych: adresacja, sieci/podsieci, routing
    4. Prywatne sieci komputerowe
  5. Rozległa sieć komputerowa: topologia, media transmisyjne, urządzenia sieciowe, protokoły (X.25, Frame Relay, FDDI, ATM, SDH, ISDN, xDSL)
  6. Sieć Internet: protokoły warstwy aplikacji, usługi sieciowe
  7. Zasady okablowania strukturalnego
  8. (Nie)bezpieczeństwo w sieci komputerowej (SSH, SSL, IP-, DNS-, ARP-spoofing, ściana ogniowa)
Notatki do wykładu:
http://www.fizyka.umk.pl/~jkob/sk.pdf
http://www.fizyka.umk.pl/~jkob/sk.html, http://www.fizyka.umk.pl/~jkob/sk-literatura.html
Protokoły sieciowe
Komputery i inne urządzenia przyłączone do sieci (hosty) wymieniają informacje według ściśle ustalonych reguł zwanych protokołami
komunikacyjnymi
.
Umożliwia to budowę sieci heterogenicznych, w których mogą współpracować ze sobą komputery niezależnie od swojej architektury oraz systemu operacyjnego.
Internet - sieć z komutacją pakietów wykorzystująca rodzinę protokołów komunikacyjnych TCP/IP
TCP (Transmission Control Protocol) protokół sterowania transmisją
IP (Internet Protocol) protokół Internetu
Cechy TCP/IP:
Model OSI versus TCP/IP
model OSI model TCP/IP
warstwa aplikacji(7)
warstwa prezentacji(6)
warstwa sesji(5)
(4) warstwa aplikacji
warstwa transportowa (4) (3) warstwa transportowa
warstwa sieciowa (3) (2) warstwa Internet
warstwa łącza danych (2)
warstwa fizyczna (1)
(1) warstwa dostępu do sieci
ISO (International Organization for Standardization, Międzynarodowa Organizacja Normalizacyjna) ogłasza w 1984 specyfikację modelu odniesienia OSI (Open System Interconnection, otwarte połączenie systemów).
Model OSI i TCP/IP opisują sieci z przełączaniem (komutacją) pakietów.
Funkcje warstw modelu OSI
(warstwy protokołów aplikacji)
zastosowań
(application layer) - oferuje usługi sieciowe użytkownikom lub programom, np. protokołowi realizującemu usługę poczty elektronicznej (nie dostarcza usług żadnej innej warstwie)
prezentacji
(presentation layer) - zapewnia przekazywanie danych (tekstowych, graficznych, dźwiękowych) w odpowiednim (wspólnym) formacie, dokonuje ich kompresji oraz ew. szyfrowania
sesji
(session layer) - ustanawia, zarządza i kończy połączeniami (sesjami) pomiędzy współpracującymi aplikacjami, m.in. ustala sposób wymiany danych (jednokierunkowy (half-duplex) lub dwukierunkowy (full-duplex))
(warstwy protokołów przepływu danych)
transportowa
(transport layer) - zapewnia bezbłędną komunikację pomiędzy komputerami w sieci (host to host), dzieli dane na fragmenty, kontroluje kolejność ich przesyłania, ustanawia wirtualne połączenia, utrzymuje je i likwiduje (TCP, UDP)
sieciowa
(network layer) - definiuje datagramy, ustala drogę transmisji danych i przekazuje dane pomiędzy węzłami sieci (IP, IPX, ICMP, ARP, Apple Talk)
łącza danych
(data link layer) - zapewnia niezawodne dostarczanie danych przez znajdującą się poniżej fizyczną sieć (MAC/LLC, PPP, ATM, Frame Relay, HDLC, 802.1q)
fizyczna
(physical layer) - umożliwia przesyłanie poszczególnych bitów (ramek) przez dane fizyczne łącze, kontroluje przepływ bitów, powiadamia o błędach (802.11 a/b/g/n, Ethernet 802.3, RS232C, V.35)
Warstwy OSI i rodziny protokołów7
Figure
Model OSI: kapsułkowanie i komunikacja równorzędna
TCP/IP: kapsułkowanie8
Figure
host A komunikacja host B
warstwa aplikacji
warstwa prezentacji
warstwa sesji
warstwa transportowa
warstwa sieciowa
warstwa łącza danych
warstwa fizyczna
← strumień danych →
← strumień danych →
← strumień danych →
← segmenty →
← pakiety →
← ramki →
← bity →
warstwa aplikacji
warstwa prezentacji
warstwa sesji
warstwa transportowa
warstwa sieciowa
warstwa łącza danych
warstwa fizyczna
Zalety modelu odniesienia OSI
Komunikacja w sieci Internet
Komunikacja równorzędna węzeł-węzeł (host-host).
Sieci równorzędne (peer-to-peer, P2P).
Figure
Warstwa dostępu do sieci (fizyczna + łącza danych)
Funkcje warstwy fizycznej:
Sieci Ethernet/IEEE 802.3
IEEE Institute of Electrical and Electronics Engineers
Ramki Ethernet/IEEE 802.3
Ramka Ethernet II (Internet, DECNET, Novell)
7 1 6 6 2 46-1500 4
Preambuła
Ogranicznik początku ramki

Adres przeznaczenia

Adres źródłowy

Typ

Dane

Sekwencja kontrolna ramki
kip 0.5cm
Ramka IEEE 802.3 (NETBEUI, SNA)
7 1 6 6 2 46-1500 4
Preambuła
Ogranicznik początku ramki

Adres przeznaczenia

Adres źródłowy

Długość

Nagłówek 802.2 i dane

Sekwencja kontrolna ramki
SFD (Start of Frame Delimiter) ogranicznik początku ramki
FCS (Frame Check Sequence) sekwencja kontrolna ramki
CRC (Cyclic Redundancy Check) cykliczna kontrola nadmiarowa
SNA (Systems Network Architecture) architektura sieci systemów
Struktura warstwy dostępu do sieci wg IEEE 802.3
Powiązanie warstwy łącza danych i warstwy fizycznej z warstwą sieciową (Internet) jest realizowane poprzez protokół LLC (Logical Link Control)
Warstwy OSI
Data Link Layer
LLC sublayer
MAC sublayer
Physical Layer


Specyfikacja LAN
Ethernet
IEEE 802.2
IEEE 802.3i IEEE 802.3u IEEE 802.5 IEEE 802.8
10Base-T 100Base-TX Token Ring FDDI
Funkcje warstwy łącza danych:
Usługi sterowania LLC
Ethernet II Type Element Codes:

Note   Hex       Definition
--------------------------------------------------------------
@    0000-05DC IEEE802.3 Length Field (0.:1500.)
+    0101-01FF Experimental
     0200 Xerox PUP (conflicts with 802.3 Length Field
          range) (see 0A00)
     0201 Xerox PUP Address Translation (conflicts ...)
          (see 0A01)
     0400 Nixdorf (conflicts with 802.3 Length Field)
+*   0600 Xerox NS IDP
     0601 XNS Address Translation (3Mb only)
+*   0800 DOD Internet Protocol (IP)
+    0801 X.75 Internet
+    0802 NBS Internet
+    0803 ECMA Internet
+    0804 CHAOSnet
+    0805 X.25 Level 3
+*   0806 Address Resolution Protocol (ARP) (for IP and for
          CHAOS)
     6001 DEC MOP (Dump/Load)
     6002 DEC MOP (Remote Console)
     6003 DECNET Phase 4
     6004 DEC LAT
     6005 DEC
     6006 DEC
+    809B EtherTalk (AppleTalk over Ethernet)
+    809C-809E Datability
+    809F Spider Systems Ltd.
+    80A3 Nixdorf Computers
+    80A4-80B3 Siemens Gammasonics Inc.
+    80C0-80C3 DCA (Digital Comm. Assoc.) Data Exchange 
               Cluster
+    8137 Novell (old) NetWare IPX (ECONFIG E option)
+    8138 Novell, Inc.
+    8139-813D KTI
     813F M/MUMPS data sharing
     8145 Vrije Universiteit (NL)  Amoeba 4 RPC (obsolete)
     8146 Vrije Universiteit (NL)  FLIP (Fast Local 
          Internet Protocol)
     8147 Vrije Universiteit (NL)  [reserved]
     814C SNMP over Ethernet (see RFC1089)
--------------------------------------------------------------

+ protokoły, którym przyznano publiczne numery
* protoły wykorzystujące Ethernet z rozgłoszeniem
@ jeśli wartość typu < 0x600 - Ethernet 802.3, ≥ 0x600 - Ethernet II
Struktura ramki Ethernet LLC
Nagłówek 802.2:
Długość pola danych: 43-1497 lub 42-1496
Jeśli bajt DSAP ma wartość 0xAA, to ramka jest interpretowana jako SNAP; każda inna wartość oznacza ramkę LLC.
SSAP (Source Service Access Point) punkt dostępu usługi źródłowej
DSAP (Destination Service Access Point) punkt dostępu usługi docelowej
Struktura ramki Ethernet SNAP (Sub-Network Access Protocol)
Nagłówek 802.2:
Długość pola danych: 38-1492 lub 37-1491
Ramka Ethernet SNAP umożliwia identyfikacje protokołów wyższego poziomu i zapewnia wsteczną kompatybilność z wcześniejszymi wersjami Ethernetu.
Internet jako zbiór połączonych sieci
Figure
Warstwa Internet (sieciowa)
Funkcje warstwy sieciowej:
Internet Protocol (IP) protokół międzysieciowy, internetowy (RFC 791)
Własności IP:
 
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version|  IHL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    IP Header Format (RFC 791)
          Note that each tick mark represents one bit position.

Internet Assigned Numbers Authority (IANA, http://www.iana.org)
 
IP TIME TO LIVE PARAMETER: The current recommended default time to
live (TTL) for the Internet Protocol (IP) is 64 [RFC791, RFC1122]

IP TOS PARAMETERS: This documents the default Type-of-Service values

TOS Value       Description                      Reference
---------       --------------------------       ---------
  0000          Default                          [Obsoleted by RFC2474]
  0001          Minimize Monetary Cost           [Obsoleted by RFC2474]
  0010          Maximize Reliability             [Obsoleted by RFC2474]
  0100          Maximize Throughput              [Obsoleted by RFC2474]
  1000          Minimize Delay                   [Obsoleted by RFC2474]
  1111          Maximize Security                [Obsoleted by RFC2474]

Generally, protocols which are involved in direct interaction with a
human should select low delay, while data transfers which may involve
large blocks of data are need high throughput. Finally, high reliability
is most important for datagram-based Internet management functions.

 
The following are recommended values for TOS:

Protocol           TOS Value

TELNET (1)         1000                 (minimize delay)

FTP
  Control          1000                 (minimize delay)
  Data (2)         0100                 (maximize throughput)

TFTP               1000                 (minimize delay)

SMTP (3)
  Command phase    1000                 (minimize delay)
  DATA phase       0100                 (maximize throughput)

Domain Name Service
  UDP Query        1000                 (minimize delay)
  TCP Query        0000
  Zone Transfer    0100                 (maximize throughput)

NNTP               0001                 (minimize monetary cost)


Dokument RFC2474 określa nowe wykorzystanie pola TOS (IPv4) oraz oktetu Traffic Class (IPv6), który przyjmuje nazwę usług zróżnicowanych (DS, Differentiated Services):
        0   1   2   3   4   5   6   7
      +---+---+---+---+---+---+---+---+
      |         DSCP          |  CU   |
      +---+---+---+---+---+---+---+---+

        DSCP: differentiated services codepoint
        CU:   currently unused

In the packet forwarding path, differentiated services are realized by mapping
the codepoint contained in a field in the IP packet header to a particular
forwarding treatment, or per-hop behavior (PHB), at each network node along its
path. The codepoints may be chosen from a set of mandatory values defined later
in this document, from a set of recommended values to be defined in future
documents, or may have purely local meaning.


Flags:  3 bits

    Various Control Flags.

      Bit 0: reserved, must be zero
      Bit 1: (DF) 0 = May Fragment,  1 = Don't Fragment.
      Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.

          0   1   2
        +---+---+---+
        |   | D | M |
        | 0 | F | F |
        +---+---+---+

The following internet options are defined:
  CLASS NUMBER LENGTH DESCRIPTION
  ----- ------ ------ -----------
    0     0      -    End of Option list.  This option occupies only
                      1 octet; it has no length octet.
    0     1      -    No Operation.  This option occupies only 1
                      octet; it has no length octet.
    0     2     11    Security.  Used to carry Security,
                      Compartmentation, User Group (TCC), and
                      Handling Restriction Codes compatible with DOD
                      requirements.
    0     3     var.  Loose Source Routing.  Used to route the
                      internet datagram based on information
                      supplied by the source.
    0     9     var.  Strict Source Routing.  Used to route the
                      internet datagram based on information
                      supplied by the source.
    0     7     var.  Record Route.  Used to trace the route an
                      internet datagram takes.
    0     8      4    Stream ID.  Used to carry the stream
                      identifier.
    2     4     var.  Internet Timestamp.

Fragment pliku /etc/protocols:
# Internet (IP) protocols
ip         0       IP              # internet protocol, pseudo protocol number
icmp       1       ICMP            # internet control message protocol
igmp       2       IGMP            # Internet Group Management
ggp        3       GGP             # gateway-gateway protocol
ipencap    4       IP-ENCAP        # IP encapsulated in IP (officially ``IP'')
st         5       ST              # ST datagram mode
tcp        6       TCP             # transmission control protocol
egp        8       EGP             # exterior gateway protocol
pup        12      PUP             # PARC universal packet protocol
udp        17      UDP             # user datagram protocol
hmp        20      HMP             # host monitoring protocol
xns-idp    22      XNS-IDP         # Xerox NS IDP
rdp        27      RDP             # "reliable datagram" protocol
ipv6       41      IPv6            # IPv6
ipv6-crypt 50      IPv6-Crypt      # Encryption Header for IPv6
ipv6-auth  51      IPv6-Auth       # Authentication Header for IPv6
swipe      53      SWIPE           # IP with Encryption
tlsp       56      TLSP            # Transport Layer Security Protocol
ipv6-icmp  58      IPv6-ICMP       # ICMP for IPv6
ipv6-nonxt 59      IPv6-NoNxt      # No Next Header for IPv6

Patrz: http://www.iana.org/assignments/protocol-numbers
Klasy adresów IP (RFC 1597)
Każdy komputer pracujący w sieci posiada unikatowy adres (tzw. adres IP) składający się z 32 bitów zapisywanych w postaci czterech oktetów, czyli czterech liczb z zakresu 0-255 oddzielonych kropkami, np. 158.75.5.47.
Przydzielaniem adresów zajmuje się NIC (Network Information Center).
Adres IP składa się z części sieciowej i części hosta. Podział na te części jest określony przez klasę, do której adres należy.
klasa A
IP 0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh
adresy 0.0.0.0 - 127.255.255.255
# sieci 126
# hostów ≈ 17× 106
adres sieci (network address): np. 127.0.0.0
adres rozgłoszeniowy (broadcast address): np. 127.255.255.255
klasa B
IP 10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh
adresy 128.0.0.0 - 191.255.255.255
# sieci 16384
# hostów 65534
klasa C
IP 110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh
adresy 192.0.0.0 - 223.255.255.255
# sieci 2 × 106
# hostów 254
klasa D
IP 1110bbbb.bbbbbbbb.bbbbbbbb.bbbbbbbb
adresy 224.0.0.0 - 239.255.255.255
# grup 228=268435456
W trakcie rozgłaszania grupowego (transmisji multicastowej) nadawca przesyła pojedynczą kopię wiadomości do dostarczyciela usługi (SP, service provider) w trakcie pojedynczej operacji. SP dostarcza kopię wiadomości do każdego odbiorcy transmisji multicastowej.
Adresy grupowe (multicast)
Wyróżnia się trzy grupy adresów multicastowych:
  1. 224.0.0.0-224.0.0.255 są zarezerwowane dla dobrze znanych grup multicastowych, m.in.
    • 224.0.0.1 - grupa wszystkich hostów z lokalnej sieci akceptujących multicast; każdy host akceptujący multicasty zapisuje się do tej grupy przy uruchamianiu
    • 224.0.0.2 - grupa wszystkich routerów multicastowych w sieci lokalnej
    • 224.0.0.3 - grupa wszystkich routerów OSPF w sieci lokalnej
    • 224.0.0.4 - grupa routerów DVMRP (Distance Vector MulticastRouting Protocol)
  2. 224.0.1.0 - 238.255.255.255 adresy o zasięgu globalnym (Globally-scoped (Internet-wide) multicast addresses
  3. 239.0.0.0 - 239.255.255.255 zarezerwowane na lokalne potrzeby organizacji (Administratively-scoped (local) multicast addresses)
   0                           31            Address Range:
  +-+----------------------------+
  |0|       Class A Address      |       0.0.0.0 - 127.255.255.255
  +-+----------------------------+
  +-+-+--------------------------+
  |1 0|     Class B Address      |     128.0.0.0 - 191.255.255.255
  +-+-+--------------------------+
  +-+-+-+------------------------+
  |1 1 0|   Class C Address      |     192.0.0.0 - 223.255.255.255
  +-+-+-+------------------------+
  +-+-+-+-+----------------------+
  |1 1 1 0|  MULTICAST Address   |     224.0.0.0 - 239.255.255.255
  +-+-+-+-+----------------------+
  +-+-+-+-+-+--------------------+
  |1 1 1 1 0|     Reserved       |     240.0.0.0 - 247.255.255.255
  +-+-+-+-+-+--------------------+

Klasy adresów IP: sieci prywatne


klasa A 10.1.1.1 -10.255.255.254
klasa B 172.16.1.1 -172.31.255.254
klasa C 192.168.1.1 -192.168.255.254
 
$ ipcalc.pl 10.0.0.0/8
Address:   10.0.0.0             00001010. 00000000.00000000.00000000
Netmask:   255.0.0.0 = 8        11111111. 00000000.00000000.00000000
Network:   10.0.0.0/8           00001010. 00000000.00000000.00000000
HostMin:   10.0.0.1             00001010. 00000000.00000000.00000001
HostMax:   10.255.255.254       00001010. 11111111.11111111.11111110
Broadcast: 10.255.255.255       00001010. 11111111.11111111.11111111
Hosts/Net: 16777214              Class A, Private Internet

$ ipcalc.pl 172.16.0.0/12
Address:   172.16.0.0           10101100.0001 0000.00000000.00000000
Netmask:   255.240.0.0 = 12     11111111.1111 0000.00000000.00000000
Network:   172.16.0.0/12        10101100.0001 0000.00000000.00000000
HostMin:   172.16.0.1           10101100.0001 0000.00000000.00000001
HostMax:   172.31.255.254       10101100.0001 1111.11111111.11111110
Broadcast: 172.31.255.255       10101100.0001 1111.11111111.11111111
Hosts/Net: 1048574               Class B, Private Internet

 

$ ipcalc.pl 192.168.0.0/16
Address:   192.168.0.0          11000000.10101000. 00000000.00000000
Netmask:   255.255.0.0 = 16     11111111.11111111. 00000000.00000000
Network:   192.168.0.0/16       11000000.10101000. 00000000.00000000
HostMin:   192.168.0.1          11000000.10101000. 00000000.00000001
HostMax:   192.168.255.254      11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255      11000000.10101000. 11111111.11111111
Hosts/Net: 65534                 Class C, Private Internet

Adres pętli zwrotnej (loopback address)
sieć 127.0.0.0
adresy 127.x.x.x
Fragment pliku /etc/hosts
 
127.0.0.1	localhost.localdomain	scobie	localhost
158.75.5.43	ameryk.fizyka.umk.pl	ameryk	am
158.75.5.47	ferm.fizyka.umk.pl	ferm	fm
158.75.5.51	tal.fizyka.umk.pl	tal	tl
158.75.5.90	nobel.fizyka.umk.pl	nobel	nb
158.75.28.35	enter.hpc.uni.torun.pl	enter

 

$ ipcalc.pl 127.0.0.0/8
Address:   127.0.0.0            01111111. 00000000.00000000.00000000
Netmask:   255.0.0.0 = 8        11111111. 00000000.00000000.00000000
Network:   127.0.0.0/8          01111111. 00000000.00000000.00000000
HostMin:   127.0.0.1            01111111. 00000000.00000000.00000001
HostMax:   127.255.255.254      01111111. 11111111.11111111.11111110
Broadcast: 127.255.255.255      01111111. 11111111.11111111.11111111
Hosts/Net: 16777214              Class A, Loopback


Komenda: ifconfig
# ifconfig -a
eth0 Link encap:Ethernet  HWaddr 00:10:A4:D2:52:55
     inet addr:158.75.5.95  Bcast:158.75.5.255  Mask:255.255.254.0
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:102 dropped:0 overruns:0 carrier:102
     collisions:0 txqueuelen:100
     RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
     Interrupt:11 Base address:0x4800
lo   Link encap:Local Loopback
     inet addr:127.0.0.1  Mask:255.0.0.0
     UP LOOPBACK RUNNING  MTU:16436  Metric:1
     RX packets:675 errors:0 dropped:0 overruns:0 frame:0
     TX packets:675 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0
     RX bytes:65654 (64.1 Kb)  TX bytes:65654 (64.1 Kb)

Windows 95/98: winipcfg                Windows NT/2K/XP: ipconfig /all
Komenda: ip
 
$ ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/16 brd 127.0.255.255 scope host lo
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:14:22:c8:e8:92 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:13:ce:d2:c3:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.100/24 brd 192.168.2.255 scope global eth1
    inet6 fe80::213:ceff:fed2:c3df/64 scope link
       valid_lft forever preferred_lft forever
4: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN
    link/ether 72:9a:17:80:33:7c brd ff:ff:ff:ff:ff:ff
16: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
    link/sit 0.0.0.0 brd 0.0.0.0
32: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/[65534]
    inet 172.20.1.25 peer 172.20.1.26/32 scope global tun0

 
$ ip route list
172.20.1.26 dev tun0  proto kernel  scope link  src 172.20.1.25
192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.100  metric 2
158.75.100.0/24 via 172.20.1.26 dev tun0
158.75.4.0/23 via 172.20.1.26 dev tun0
172.20.0.0/15 via 172.20.1.26 dev tun0
default via 192.168.2.1 dev eth1  proto static

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.20.1.26     0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.2.0     0.0.0.0         255.255.255.0   U     2      0        0 eth1
158.75.100.0    172.20.1.26     255.255.255.0   UG    0      0        0 tun0
158.75.4.0      172.20.1.26     255.255.254.0   UG    0      0        0 tun0
172.20.0.0      172.20.1.26     255.254.0.0     UG    0      0        0 tun0
0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth1

Bezklasowe trasowanie międzydomenowe (CIDR Classless InterDomain Routing, RFC 1519)
Rozwój Internetu spowodował duże zapotrzebowanie na adresy. Przy rozdziale adresów wg klas wiele adresów się marnowało. CIDR umożliwia istnienie wielu mniejszych klas adresowych w ramach jednej, większej domeny trasowania (na poczatku lat 1990 było około 5000 tras w Internecie, a obecnie jest około 500000). Za pomocą adresu IP i maski można trasować dowolny datagram IP do miejsca przeznaczenia.
Sieci i podsieci. Maski podsieci
Przykłady wielkości podsieci w zależności
od wyboru maski dla adresu klasy C
liczba IP maska (lbs) liczba podsieci
2 255.255.255.254 (7) 128
4 255.255.255.252 (6) 64
8 255.255.255.248 (5) 32
16 255.255.255.240 (4) 16
32 255.255.255.224 (3) 8
64 255.255.255.192 (2) 4
128 255.255.255.128 (1) 2
maska podsieci = 256 - liczba IP w podsieci
LAN Instytutu Fizyki wykorzystuje adresy od 158.75.4.0 do 158.75.5.255 wydzielone spośród adresów klasy B przy pomocy maski sieciowej 255.255.254.0.
Przykład: sieć=195.15.25.0, maska=255.255.255.224.
sieć sieć podsieć numery hostów
195.15.25.0 11000011 00000111 00011001 0000-31
195.15.25.32 11000011 00000111 00011001 00132-63
195.15.25.64 11000011 00000111 00011001 01064-95
195.15.25.96 11000011 00000111 00011001 01196-127
195.15.25.12811000011 00000111 00011001 100128-159
195.15.25.16011000011 00000111 00011001 101160-191
195.15.25.19211000011 00000111 00011001 110192-223
195.15.25.22411000011 00000111 00011001 111224-255
195.15.25.73 11000011 00000111 00011001 01001001
AND 255.255.255.224 11111111 11111111 11111111 11100000
= 195.15.25.64 11000011 00000111 00011001 01000000
 
158.75.4.0     (10011110.01001011.0000010 0.00000000)  Class C subnet address
158.75.5.0     (10011110.01001011.0000010 1.00000000)  Class C subnet address
--------------------------------------------------------------------------------
158.75.4.0     (10011110.01001011.0000010 0.00000000)  Supernetted Subnet address
255.255.254.0  (11111111.11111111.1111111 0.00000000)  Subnet Mask
158.75.5.255   (10011110.01001011.0000010 1.11111111)  Broadcast address

$ ipcalc.pl 158.75.4.0/23
Address:   158.75.4.0           10011110.01001011.0000010 0.00000000
Netmask:   255.255.254.0 = 23   11111111.11111111.1111111 0.00000000
Network:   158.75.4.0/23        10011110.01001011.0000010 0.00000000
HostMin:   158.75.4.1           10011110.01001011.0000010 0.00000001
HostMax:   158.75.5.254         10011110.01001011.0000010 1.11111110
Broadcast: 158.75.5.255         10011110.01001011.0000010 1.11111111
Hosts/Net: 510                   Class B

Grupowanie w nadsieci
Podsieć 158.75.4.0 zawiera wszystkie adresy od 158.75.4.0 do 158.75.5.255. Część sieciowa adresu ma długość 23 bitów, a część określająca hosty - 9 (158.75.4.0/23).
Adres klasy A można zapisac jako /8, klasy B - /16, klasy C - /24.
Internet Control Message Protocol (ICMP, RFC 792) - protokół sterowania wiadomością internetową
Funkcje ICMP:
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             unused                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Internet Header + 64 bits of Original Data Datagram      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Message Types:  
    0  Echo Reply            
    3  Destination Unreachable    4  Source Quench         
    5  Redirect                   8  Echo                 
   11  Time Exceeded             12  Parameter Problem    
   13  Timestamp                 14  Timestamp Reply      
   15  Information Request       16  Information Reply


Type=3 Code: 0 = net unreachable;  1 = host unreachable; 2 = protocol unreachable;
             3 = port unreachable; 4 = fragmentation needed and DF set;
             5 = source route failed.

# traceroute 158.75.1.4
 
traceroute to 158.75.1.4 (158.75.1.4), 30 hops max, 38 byte packets
 1  158.75.5.190 (158.75.5.190)  0.301 ms  0.275 ms  0.227 ms
 2  172.16.3.5 (172.16.3.5)  1.141 ms  1.513 ms  0.998 ms
 3  centrum.man.torun.pl (158.75.33.140)  1.377 ms  1.135 ms  2.386 ms
 4  158.75.1.253 (158.75.1.253)  1.923 ms  2.388 ms  2.628 ms
 5  koala.uci.uni.torun.pl (158.75.1.4)  1.674 ms  1.497 ms  2.013 ms
                                                                       
    +--------+                                          +--------+   
    | SENDER |                                          | TARGET |   
    +--------+                                          +--------+   
        |                                                   ^     
     [============( Router )=====( Router )=====( Router )==|====]
                 ^              ^              ^            |  
                 | TTL=1        | TTL=2        | TTL=3      | TTL=4  
Traceroute       |              |              |            |        
shows these -----+--------------+--------------+------------/       
IP addresses                                                        

# ping 158.75.1.4
 
PING 158.75.1.4 (158.75.1.4) from 158.75.5.95 : 56(84) bytes of data.
64 bytes from 158.75.1.4: icmp_seq=1 ttl=251 time=1.84 ms
64 bytes from 158.75.1.4: icmp_seq=2 ttl=251 time=1.88 ms
64 bytes from 158.75.1.4: icmp_seq=3 ttl=251 time=1.21 ms

# ping -f -c 1000 158.75.5.90
 
PING 158.75.5.90 (158.75.5.90) from 158.75.5.95 : 56(84) bytes of data.

--- 158.75.5.90 ping statistics ---
1000 packets transmitted, 1000 received, 0% loss, time 252ms
rtt min/avg/max/mdev = 0.141/0.154/0.446/0.031 ms, ipg/ewma 0.252/0.147 ms

Address Resolution Protocol (ARP RFC 826)
# arp
158.75.4.198             ether   00:B0:D0:F4:83:CD   C      eth0
158.75.5.142             ether   00:50:04:03:9B:F1   C      eth0
158.75.5.54              ether   00:01:02:8A:4C:2D   C      eth0
158.75.5.129             ether   00:00:C0:12:55:6A   C      eth0
158.75.5.238             ether   00:80:AD:8A:0D:89   C      eth0
158.75.5.233             ether   00:10:5A:3C:15:4D   C      eth0

Jak powstaje tablica ARP?
Host A (158.75.5.90) próbuje przesłać dane do hosta B (158.75.5.47). Tablica ARP hosta A nie zawiera adresu MAC hosta B.
  1. host A wysyła rozgłoszenie (ARP request):
    Who has 158.75.5.47? Tell 158.75.5.90.
  2. host B odpowiada hostowi A (ARP reply):
    158.75.5.47 is at 00:30:48:21:A3:8B
  3. host A uzupełnia tablicę ARP o kolejny wpis
  4. host A wysyła ramki z adresem docelowym 00:30:48:21:A3:8B
ARP spoofing (podszywanie ARP): odpowiedzi uzyskiwane na zapytania ARP nie są weryfikowane, co pozwala ,,zatruwać" tablice ARP.
Ograniczenia IP
Internet Protocol Version 6 (IPv6 RFC 2460)
Własności:
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version| Traffic Class |           Flow Label                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Payload Length        |  Next Header  |   Hop Limit   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                         Source Address                        +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                      Destination Address                      +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        IPv6 Header Format

   +---------------+------------------------
   |  IPv6 header  | TCP header + data
   |               |
   | Next Header = |
   |      TCP      |
   +---------------+------------------------

   +---------------+----------------+------------------------
   |  IPv6 header  | Routing header | TCP header + data
   |               |                |
   | Next Header = |  Next Header = |
   |    Routing    |      TCP       |
   +---------------+----------------+------------------------

   +---------------+----------------+-----------------+-----------------
   |  IPv6 header  | Routing header | Fragment header | fragment of TCP
   |               |                |                 |  header + data
   | Next Header = |  Next Header = |  Next Header =  |
   |    Routing    |    Fragment    |       TCP       |
   +---------------+----------------+-----------------+-----------------

Adresy IPv6
128-bitowy adres IPv6 (16 oktetów) zapisuje się jako 8 liczb całkowitych bez znaku, gdzie każda liczba składa się z 4 cyfr szestnastkowych, np.:
1060:0000:0000:0000:0004:0400:200C:617B.
Zapis adresu można uprościć pomijając początkowe zera, np.:
1060::4:400:200C:617B.
Podsieci określa sie poprzez podanie prefiksu, który określa liczbę bitów przeznaczoną na numer podsieci, np.:
1060:0:0:abcd:001e:0400:200C:617B/60.
Warstwa transportowa
Transmission Control Protocol (TCP, RFC 793) - protokół sterowania transmisją zapewnia usługi niezawodnie dostarczające dane, z wykrywaniem na obu końcach błędów i ich korekcją
Z TCP korzystają m.in. protokoły (warstwy aplikacji):
Wg RFC 793, 1.5. Operation:
 

  ... the primary purpose of the TCP is to provide reliable, securable
  logical circuit or connection service between pairs of processes.
  To provide this service on top of a less reliable internet
  communication system requires facilities in the following areas:

    Basic Data Transfer
    Reliability
    Flow Control
    Multiplexing
    Connections
    Precedence and Security


 
       +------+ +-----+ +-----+       +-----+                    
       |Telnet| | FTP | |Voice|  ...  |     |  Application Level 
       +------+ +-----+ +-----+       +-----+                    
             |   |         |             |                       
            +-----+     +-----+       +-----+                    
            | TCP |     | RTP |  ...  |     |  Host Level        
            +-----+     +-----+       +-----+                    
               |           |             |                       
            +-------------------------------+                    
            |    Internet Protocol & ICMP   |  Gateway Level     
            +-------------------------------+                    
                           |                                     
              +---------------------------+                      
              |   Local Network Protocol  |    Network Level     
              +---------------------------+                      

                         Protocol Relationships


 
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Source Port          |       Destination Port        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sequence Number                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Acknowledgment Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Data |           |U|A|P|R|S|F|                               |
   | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
   |       |           |G|K|H|T|N|N|                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |         Urgent Pointer        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                          TCP Header Format (RFC 793)

TCP Header Format (RFC 793)
 
  Control Bits:  6 bits (from left to right):

    URG:  Urgent Pointer field significant
    ACK:  Acknowledgment field significant
    PSH:  Push Function
    RST:  Reset the connection
    SYN:  Synchronize sequence numbers
    FIN:  No more data from sender

TCP: Three way handshake
 
The synchronization requires each side to send it's own initial
sequence number and to receive a confirmation of it in acknowledgment
from the other side.  Each side must also receive the other side's
initial sequence number and send a confirming acknowledgment.

  1) A --> B  SYN my sequence number is X
  2) A <-- B  ACK your sequence number is X
  3) A <-- B  SYN my sequence number is Y
  4) A --> B  ACK your sequence number is Y

Because steps 2 and 3 can be combined in a single message this is
called the three way (or three message) handshake.

Trzystanowy handshake dla synchronizacji połączenia
host A host B
wysyła SYN (seq=x)
odbiera SYN (seq=x)
wysyła SYN (seq=y)
wysyła ACK (ack=x+1)
odbiera SYN (seq=y)
odbiera ACK (ack=x+1)
wysyła ACK (ack=y+1)
wysyła dane (seq=x+1)
odbiera ACK (ack=y+1)
odbiera dane
 

      TCP A                                                TCP B

  1.  CLOSED                                               LISTEN

  2.  SYN-SENT    --> <SEQ=100><CTL=SYN>               --> SYN-RECEIVED

  3.  ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK>  <-- SYN-RECEIVED

  4.  ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK>       --> ESTABLISHED

  5.  ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> --> ESTABLISHED

          Basic 3-Way Handshake for Connection Synchronization


TCP zapewnia niezawodność dostarczania danych za pomocą mechanizmu zwanego pozytywne potwierdzenie z retransmisją (Positive Acknowledgement with Retransmission, PAR).
TCP: kontrola przepływu
TCP: Maksymalna wielkość segmentu
TCP został zaprojektowany w taki sposób, aby można było ograniczyć wielkość segmentu do rozmiaru pozwalającego uniknąć fragmentacji pakietu na poziomie warstwy sieciowej. Parametr MSS (Maximum Segment Size) określa maksymalną liczbę bajtów w polu danych segmentu TCP. Ponieważ domyślną wartością MTU jest 576 bajtów, więc przy założeniu, że nagłówki TCP i IP mają po 20 bajtów każdy, domyslnie MSS wynosi 536 bajtów (MTU-40).
Zmiana domyślnej wartości MSS może zostać wymuszona przez każdą z komunikujących się stron poprzez zastosowanie w segmencie SYN opcji Maximum Segment Size. Każda ze stron może używać innej wartości MSS.
User Datagram Protocol (UDP, RFC 768)
UDP (protokół datagramów użytkownika) udostępnia usługi dostarczające datagramy z małym narzutem, metodą bezpołączeniową

          0      7 8     15 16    23 24    31  
         +--------+--------+--------+--------+ 
         |     Source      |   Destination   | 
         |      Port       |      Port       | 
         +--------+--------+--------+--------+ 
         |                 |                 | 
         |     Length      |    Checksum     | 
         +--------+--------+--------+--------+ 
         |                                     
         |          data octets ...            
         +---------------- ...                 


Z UDP korzystają m.in. protokoły (warstwy aplikacji):
Struktury danych protokołów TCP i UDP
warstwy TCP/IP TCP UDP
aplikacji strumień (stream) wiadomość (message)
transportowa segment pakiet
sieciowa datagram datagram
dostępu do sieci ramka (frame) ramka (frame)
Stream Control Transmission Protocol (SCTP, RFC2960)
Cechy strumieniowego protokołu sterowania transmisją:
IANA (Internet Assigned Numbers Authority) i /etc/services
 
# /etc/services:
# $Id: services,v 1.22 2001/07/19 20:13:27 notting Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
#       http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
# 
# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
rje             5/udp                           # Remote Job Entry
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
systat          11/udp          users
daytime         13/tcp
daytime         13/udp
qotd            17/tcp          quote
qotd            17/udp          quote
msp             18/tcp                          # message send protocol
msp             18/udp                          # message send protocol
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source
ftp-data        20/tcp
ftp-data        20/udp
ftp             21/tcp
ftp             21/udp
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp                          # SSH Remote Login Protocol
telnet          23/tcp
telnet          23/udp
smtp            25/tcp          mail
smtp            25/udp          mail
time            37/tcp          timserver
time            37/udp          timserver
#...
nicname         43/tcp          whois
domain          53/tcp          nameserver      # name-domain server
domain          53/udp          nameserver
whois++         63/tcp
whois++         63/udp
bootps          67/tcp                          # BOOTP server
bootps          67/udp
bootpc          68/tcp                          # BOOTP client
bootpc          68/udp
tftp            69/tcp
tftp            69/udp
#...
finger          79/tcp
finger          79/udp
http            80/tcp          www www-http    # WorldWideWeb HTTP
http            80/udp          www www-http    # HyperText Transfer Protocol
kerberos        88/tcp          kerberos5 krb5  # Kerberos v5
kerberos        88/udp          kerberos5 krb5  # Kerberos v5
supdup          95/tcp
supdup          95/udp
hostname        101/tcp         hostnames       # usually from sri-nic
hostname        101/udp         hostnames       # usually from sri-nic
iso-tsap        102/tcp         tsap            # part of ISODE.
csnet-ns        105/tcp         cso             # also used by CSO name server
csnet-ns        105/udp         cso
pop3            110/tcp         pop-3           # POP version 3
pop3            110/udp         pop-3
#...
netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp
imap            143/tcp         imap2           # Interim Mail Access Proto v2
imap            143/udp         imap2

 
#>REGISTERED PORT NUMBERS
#>
#>The Registered Ports are listed by the IANA and on most systems can be
#>used by ordinary user processes or programs executed by ordinary
#>users.
socks           1080/tcp                        # socks proxy server
socks           1080/udp                        # socks proxy server
h323hostcallsc  1300/tcp                        # H323 Host Call Secure
h323hostcallsc  1300/udp                        # H323 Host Call Secure
ms-sql-s        1433/tcp                        # Microsoft-SQL-Server 
ms-sql-s        1433/udp                        # Microsoft-SQL-Server 
ms-sql-m        1434/tcp                        # Microsoft-SQL-Monitor
ms-sql-m        1434/udp                        # Microsoft-SQL-Monitor       
ica             1494/tcp                        # Citrix ICA Client
ica             1494/udp                        # Citrix ICA Client
wins            1512/tcp                        # Microsoft's Windows Internet Name Service
wins            1512/udp                        # Microsoft's Windows Internet Name Service

Patrz: http://www.iana.org/assignments/port-numbers
Gniazda
Interfejs gniazd (socket interface) - mechanizm umożliwiający komunikowanie się procesów w tym samym systemie lub procesów różnych hostów w sieci.
Systemy Uniksowe/Linuksowe wspierają szereg klas gniazd łączonych w dziedziny (rodziny) gniazd.
System gniazd Linuxa jest rozszerzoną wersją systemu gniazd z Unixa 4.3 BSD i wspiera m.in. następujące dziedziny adresów:
Rodzaje gniazd (man socket)
SOCK_STREAM
       Provides sequenced, reliable, two-way, connection-based byte
       streams.  An out-of-band data transmission mechanism may
       be supported.

SOCK_DGRAM 
       Supports datagrams (connectionless, unreliable messages of a
       fixed maximum length).

SOCK_SEQPACKET
        Provides a sequenced, reliable, two-way connection-based data
        transmission path for datagrams of fixed maximum length; a
        consumer is required to read an entire packet with each read
        system call.

SOCK_RAW
       Provides raw network protocol access.

Warstwa zastosowań (sesji+prezentacji+zastosowań)
Aktywny FTP
  serwer          klient
  ------          ------
    21    <---    dowolny port
    21    --->    >1024   (odpowiedź serwera na inicjatywę klienta) 
    20    --->    >1024   (serwer inicjuje połączenie do portu danych klienta)  
    20    <---    >1024   (klient wysyła ACK)  

Pasywny FTP
  serwer           klient
  ------           ------
    21     <---    dowolny port
    21     --->    >1024   (odpowiedź serwera na inicjatywę klienta) 
  >1024    <---    >1024   (klient inicjuje połączenie na wskazany port serwera)  
  >1024    --->    >1024   (serwer wysyła ACK)

FTP wykorzystuje porty: 20 - port kontrolny, 21 - port danych
Przykłady komend:
Monitorowanie usług i połączeń
# netstat -npl -tcp
Active Internet connections (only servers)
Proto ... Local Address  Foreign Add   State       PID/Program name
tcp   ... 0.0.0.0:32768  0.0.0.0:*     LISTEN      487/rpc.statd
tcp   ... 0.0.0.0:32769  0.0.0.0:*     LISTEN      701/rpc.mountd
tcp   ... 0.0.0.0:111    0.0.0.0:*     LISTEN      468/portmap
tcp   ... 0.0.0.0:6000   0.0.0.0:*     LISTEN      922/X
tcp   ... 0.0.0.0:113    0.0.0.0:*     LISTEN      638/identd
tcp   ... 0.0.0.0:22     0.0.0.0:*     LISTEN      17456/sshd
tcp   ... 0.0.0.0:631    0.0.0.0:*     LISTEN      759/cupsd
tcp   ... 0.0.0.0:23     0.0.0.0:*     LISTEN      669/xinetd
tcp   ... 0.0.0.0:862    0.0.0.0:*     LISTEN      682/rpc.rquotad

# /etc/init.d/identd stop; netstat -npl -tcp
Active Internet connections (only servers)
Proto ... Local Address  Foreign Add   State       PID/Program name
tcp   ... 0.0.0.0:32768  0.0.0.0:*     LISTEN      487/rpc.statd
tcp   ... 0.0.0.0:32769  0.0.0.0:*     LISTEN      701/rpc.mountd
tcp   ... 0.0.0.0:111    0.0.0.0:*     LISTEN      468/portmap
tcp   ... 0.0.0.0:6000   0.0.0.0:*     LISTEN      922/X
tcp   ... 0.0.0.0:22     0.0.0.0:*     LISTEN      17456/sshd
tcp   ... 0.0.0.0:631    0.0.0.0:*     LISTEN      759/cupsd
tcp   ... 0.0.0.0:23     0.0.0.0:*     LISTEN      669/xinetd
tcp   ... 0.0.0.0:862    0.0.0.0:*     LISTEN      682/rpc.rquotad

# netstat -np -tcp - grep '158.75.5.95'
 
tcp ... 158.75.5.90:22  158.75.5.95:33445  ESTABLISHED 6204/sshd           
tcp ... 158.75.5.90:22  158.75.5.95:33459  ESTABLISHED 7323/sshd           
tcp ... 158.75.5.90:23  158.75.5.95:33494  ESTABLISHED 23272/in.telnetd: t 
tcp ... 158.75.5.90:23  158.75.5.95:33496  ESTABLISHED 23643/in.teln

# netstat -nlp -udp - grep '158.75.5.95'
 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Add State  PID/Program name
udp        0      0 0.0.0.0:32768    0.0.0.0:*          487/rpc.statd
udp        0      0 0.0.0.0:32770    0.0.0.0:*           -
udp        0      0 0.0.0.0:32771    0.0.0.0:*          701/rpc.mountd
udp        0      0 0.0.0.0:859      0.0.0.0:*          682/rpc.rquotad
udp        0      0 0.0.0.0:111      0.0.0.0:*          468/portmap
udp        0      0 0.0.0.0:631      0.0.0.0:*          759/cupsd

Stany gniazda TCP (man netstat)
 
ESTABLISHED The socket has an established connection 
            (normalny stan transmisji danych).

SYN_SENT    The socket is actively attempting to establish 
            a connection (aplikacja rozpoczyna nawązywanie połączenia).

SYN_RECV    A connection request has been received from the network
            (otrzymano żądanie połączenia; oczekiwanie na ACK).

FIN_WAIT1   The socket is closed, and the connection is shutting 
            down (aplikacja sygnalizuje zakończenie wysyłania danych).

FIN_WAIT2   Connection  is  closed, and the socket is waiting for 
            a shutdown from the remote end (druga strona zgadza się na
            zwolnienie połączenia).

TIME_WAIT   The socket is waiting after close to handle packets still 
            in the network (oczekiwanie na wygaśnięcie wszystkich pakietów).

 
CLOSED      The socket is not being used (brak aktywnych połączeń i
            nieobsłużonych żądań połączenia).

CLOSE_WAIT  The remote end has shut down, waiting for the socket 
            to close (druga strona połączenia zainicjowała jego zwolnienie).

LAST_ACK    The remote end has shut down, and the socket is closed.
            Waiting for acknowledgement (oczekiwanie na potwierdzenie
            zwolnienia połączenia).

LISTEN      The socket is listening for incoming connections (serwer
            oczekuje na żądanie płączenia).  
            
CLOSING     Both sockets are shut down but we still don't have all 
            our data sent (obie strony próbują jednocześnie zamknąć połączenie).

UNKNOWN     The state of the socket is unknown (stan gniazda jest nieznany).

TCP: procedura zamykania połączenia10
Figure

TCP: procedura równoczesnego zamykania połączenia11
Figure

Super demon sieciowy xinetd (man xinetd.conf)
/etc/xinted.conf:
 
# Simple configuration file for xinetd
defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST RECORD
        cps                     = 25 30
        enabled                 = telnet ftp 
#       disabled                = telnet ftp
}
includedir /etc/xinetd.d

/etc/xinted.d/telnet
 
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        disable         = no
        flags           = REUSE
        socket_type     = stream        
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        banner_success	= /etc/xinetd.d/banners/telnet

Plik /etc/xinted.d/tftp
 
# default: off
service tftp
{
        disable                 = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot

Rodzina protokołów NetWare firmy Novell
 ------------------------------------------------------------------------------
|                                                                       | OSI |
|             NetWare based applications                                |     |
|                                                                       |     | 
|-----------------------------------------------                        |     |
|               |               |               |                       |     |
|        SAP    |       NCP     |    NetWare    |                       |     |
|               |               |     Shell     |----------------------- 5+6+7|
|               |               |               |                       |     |
|               |               |               |   NetBIOS             |     |
|               |               |               |                       |     |
|               |               |               |                       |     |
|-----------------------------------------------------------------------|-----|
|                                          |  SPX   |                   |     |
|                                          |        |                   |     |
|            -----         ------           --------                    |     |
|     IPX   | RIP |       | NLSP |                                      | 3+4 |
|            -----         ------                                       |     |
|----------------------------------------------------------------------- -----|
| IEEE 802.3i| IEEE 802.3u | IEEE 802.5 | IEEE 802.8 | PPP |  ATM |ISDN | 1+2 |
|  10Base-T  | 100Base-TX  | Token Ring |  FDDI      |     |      |     |     |
 -----------------------------------------------------------------------------

Cechy systemu NetWare
Rodzaje kapsułkowania w NetWare
nazwa novellowa struktura ramki
NetWare ≤ 3.11: Ethernet_802.3
802.3
IPX
NetWare ≥ 3.12: Ethernet_802.2
802.3
802.2 LLC
IPX
TCP/IP: Ethernet_II
Ethernet
IPX
TCP/IP+AppleTalk: Ethernet_SNAP
802.3
802.2 LLC
SNAP
IPX
Struktura nagłówka pakietu IPX
Protokoły AppleTalk firmy Apple
warstwy modelu OSI warstwy modelu AppleTalk
aplikacji(7)
prezentacji(6)
(5) aplikacji
sesji (5) (4) sesji
transportowa (4) (3) transportowa
sieciowa (3) (2) datagramowa
łącza danych (2)
fizyczna (1)
(1) dostępu do sieci
Rodzina protokołów AppleTalk
NetBIOS i NetBEUI
Common Internet File System (CIFS)12
Analiza ruchu sieciowego: wireshark
 
NAME
       wireshark - Interactively dump and analyze network traffic

DESCRIPTION

       Wireshark is a GUI network protocol analyzer.  It lets you
       interactively browse packet data from a live network or from a
       previously saved capture file.  Wireshark's native capture file
       format is libpcap format, which is also the format used by
       tcpdump and various other tools.

       Wireshark can read / import the following file formats:

       * libpcap, tcpdump and various other tools using tcpdump's capture format
       * snoop and atmsnoop
       * Shomiti/Finisar Surveyor captures
       * Novell LANalyzer captures
       * Microsoft Network Monitor captures
       * AIX's iptrace captures
       * Cinco Networks NetXRay captures
       * Network Associates Windows-based Sniffer captures
       ...

Porównanie modeli odniesienia OSI i TCP/IP
Wg A.Tanenbauma znaczenie modelu OSI bierze się z wyraźnego rozróżnienia trzech idei, które są podstawą tego modelu:
Warstwę można traktować jak obiekt, który wyposażony jest zbiór metod, które mogą być wykonywane przez procesy z zewnątrz obiektu.
Semantyka tych metod definiuje zbiór usług oferowanych przez obiekt. Parametry i wyniki tworzą z metody interfejs obiektu.
Wewnętrzy kod obiektu jest jego protokołem (nie jest widoczny z zewnątrz).
Przyczyny porażki modelu OSI:
Przyczyny porażki modelu OSI:
Problemy modelu i protokołów TCP/IP:
Model OSI jest przydatny do omawiania sieci komputerowych, ale protokoły OSI nie zdobyły popularności.
Model TCP/IP praktycznie nie istnieje, ale protokoły są powszechnie używane.
Słownik skrótów


API Application Programming Interface interfejs programów użytkowych
ARP Address Resolution Protokol protokół odwzorowywania adresów
ASCII American Standard Code for Information Interchange standardowy amerykański kod wymiany informacji
ASIC Application Specific Integrated Circuit układ scalony właściwy aplikacji
ATM Asynchronous Transfer Mode tryb przesyłania asynchronicznego
B8ZS Bipolar with 8-Zeros Substitution bipolarna substytucja ośmiozerowa
BECN Backward Explicit Congestion Notification jawne powiadomienie o zatorze wysyłane w kierunku nadawcy
bps bits per second bity na sekundę
BRA Basic Rate Access dostęp w trybie podstawowym
CHAP Challenge Handshake Authentication Protocol protokół wymiany wyzwania uwierzytelniającego (protokół uwierzytelniania przez uzgodnienie)
CIDR Classless InterDomain Routing bezklasowy routing międzydomenowy
CIR Committed Information Rate zagwarantowany poziom transmisji
CoS Class Of Service klasa usługi
CSMA/CD Carrier Sense-Multiple Access/Collision Detection wielodostęp z wykrywaniem fali nośnej i wykrywaniem kolizji
CRC Cyclic Redundancy Check cykliczna kontrola nadmiarowa
DCE Data Communications Equipment urządzenie końcowe łącza teleinformatycznego
DDP Datagram Delivery Protocol protolół dostarczania datagramów
DES Data Encription Standard standard szyfrowania danych
DHCP Dynamic Host Configuration Protocol protokół dynamicznej konfiguracji hosta
DLCI Data Link Connection Identifier jednoznaczny identyfikator łącza danych
DNS Domain Name System system nazw domenowych
DSAP Destination Service Access Point punkt dostępu usługi docelowej
DSH Digital Sygnal Hierarchy hierarchia sygnałów cyfrowych (standard ANSI)
DSL Digital Subscriber Line cyfrowa linia abonencka
DTE Data Terminal Equipment terminal teleinformatyczny
DWDM Dense Wavelength Division Multiplexing multipleksacja z gęstym podziałem falowym
EBCDIC extended binary coded decimal interchange code rozszerzony kod znakowy
EIA Electronics Industry Association Towarzystwo Przemysłu Elektronicznego
FDDI Fiber Distributed Data Interface złącze danych w sieciach optycznych o dużych przepustowościach
FCS Frame Check Sequence sekwencja kontrolna ramki
FECN Forward Explicit Congestion Notification jawne powiadomienie o zatorze wysyłane w kierunku odbiorcy
FR Frame Relay przekaz ramek
FTP File Transfer Protocol protokół przesyłania plików
Gb gigabit gigabit
GB gigabyte gigabajt
GNS Get Nearest Server uzyskaj dostęp do najbliższego serwera
HDLC High-level Data Link Control wysokopoziomowe sterowanie łączem danych
HTML Hypertext Markup Language język hipertekstowego znakowania informacji
HTTP Hypertext Transfer Protocol protokół przesyłania hipertekstu
IANA Internet Assigned Numbers Authority urząd internetowy odpowiedzialny za przydział numerów
ICMP Internet Message Control Protocol protokół sterowania wiadomością internetową
IDEA International Data Encription Algorithm międzynarodowy algorytm szyfrowania danych
IDF Intermediate Distribution Facility pośredni węzeł dystrybucyjny
IEEE Institute of Electrical and Electronics Engineers Instytut Inżynierów Elektryków i Elektroników
IGRP Interior Gateway Routing Protocol protokół routingu wewnętrznej bramy
ILD Injection Laser Diode iniekcyjna dioda laserowa
IMAP Internet Mail Access Protocol protokół dostępu do poczty internetowej
IP Internet Protocol protokół internetowy
IPX Internetwork Packet eXchange protokół wymiany pakietów sieci firmy Novell
ISDN Integrated Services Digital Network sieć cyfrowa usług zintegrowanych
ISO International Organization for Standardization Międzynarodowa Organizacja Normalizacyjna
ISO International Standards Organization Organizacja Standardów Międzynarodowych
ISP Internet Service Provider dostawca usług internetowych
Kb kilobit kilobit
KB kilobyte kilobajt
LAN Local Area Network lokalna sieć komputerowa
LAPB Link Access Procedure Balanced zrównoważona procedura dostępu do łącza
LED Light Emitting Diode dioda emitująca światło
LLC Logical Link Control sterowanie lączem logicznym
MAC Media Access Control sterowanie dostępem do nośnika
MAN Municipal Area Network miejska sieć komputerowa
Mb megabit megabit
MB megabyte megabajt
MD5 Message Digest 5 skrót wiadomości 5
MDF Main Distribution Facility główny węzeł dystrybucyjny
MIB Management Information Base baza informacji zarządzania
MIME Multipurpose Internet Mail Extension uniwersalne rozszerzenie poczty internetowej
MDI Media Dependent Interface interfejs zależny od medium
MDI-X Media Dependent Interface Cross-over skrośny interfejs zależny od medium
NCP NetWare Core Protocol protokół rdzeniowy systemu Netware
NetBIOS Network Basic Input/Output System system podstawowych procedur wejścia/wyjścia
NetBEUI NetBIOS Extended User Interface rozszerzony interfejs użytkownika podstawowego systemu wejścia/wyjścia
NEXT Near-End CrossTalk poziom przesłuchu zbliżnego
NFS Network File System sieciowy system plików
NIC Network Information Center (1) sieciowe centrum informacyjne
NIC Network Interface Card (2) karta interfejsu sieci
NLSP NetWare Link Services Protocol protokół usług łącza danych firmy Netware
NNTP Network News Transfer Protocol (protokół przesyłania wiadomości w sieci Internet)
OC Optical Carrier system nośników optycznych
OSI Open Systems Interconnection otwarte połączenie systemów
OSPF Open Shortest Path First
OUI Organizational Unique Identifier unikatowy identyfikator organizacji
PAD Packet Assembler/Disassembler asembler/disasembler pakietów
PAP Password Authentication Protocol protokół uwierzytelniania hasła
PAR Positive Acknowledgement with Retransmission pozytywne potwierdzenie z retransmisją
PCM Pulse Coded Modulation modulacja impulsowa
PDN Privite Data Networks cyfrowe sieci publiczne
PLC PowerLine Communications komunikacja wykorzystująca linie energetyczne
PLP Packet Level Protocol protokół warstwy sieci w stosie protokołów X.25
POP Post Office Protocol (1) protokoł urzędu pocztowego
POP Point of Presence (2) miejsce przyłączenia (urządzeń sieciowych odbiorcy z urządzeniami komunikacyjnymi firmy telefonicznejobecności)
POTS Plain Old Telephone Service tradycyjna telefonia
PPP Point-to-Point Protocol protokół transmisji bezpośredniej (protokół dwupunktowy)
PRA Primary Rate User Access pierwotny tryb dostępu użytkownika (tryb rozszerzony)
PVC Permanent Virtual Circuit stałe łącze wirtualne
QoS Quality Of Service jakość usługi
RARP Reverse Address Resolution Protokol protokół odwrotnego odwzorowywania adresów
RIP Routing Information Protocol protokół informacji routingu
RMON Remote Monitoring zdalny nadzór
SAP Service Advertisment Protocol protokół rozgłaszania usługi
SMDS Switched Multimegabit Data Service
SDH Synchronous Digital Hierarchy hierarchia cyfrowych sygnałów synchronicznych (standard ITU)
SDLC Synchronous Data Link Control sterowanie synchronicznym łączem danych
SFD Start of Frame Delimiter ogranicznik początku ramki
SIP Session Initialization Protocol protokół inicjacji sesji
SMB Server Message Block protocol protokół bloków komunikatów serwera
SMIME Secure Multipurpose Internet Mail Extension bezpieczne i uniwersalne rozszerzenie poczty internetowej
SMTP Simple Mail Transport Protocol prosty protokół przesyłania poczty
SNA Systems Network Architecture architektura sieci systemów
SNAP Sub-Network Access Protocol protokół dostępu podsieci
SNMP Simple Network Management Protocol prosty protokół zarządzania siecią
SONET Synchronous Optical NETwork synchroniczna sieć optyczna
SPX Sequenced Packet Exchange protokół sekwencyjnej wymiany pakietów
SSAP Source Service Access Point punkt dostępu usługi źródłowej
SSH Secure SHell bezpieczna powłoka
STM Synchronous Transport Module moduł transportu synchronicznego
STS Synchronous Transport Signal system sygnałów transportu synchronicznego
STP Spanning Tree Protocol (1) protokół częściowego drzewa
STP Shielded Twisted Pair (2) ekranowana skrętka
SVC Switched Virtual Circuit komutowany obwód wirtualny
TCP Transmission Control Protocol protokół sterowania transmisją
TELNET Network Terminal Protocol protokół końcówki sieciowej
TFTP Trivial File Transfer Protocol trywialny protokół przesyłania plików
TIA Telecommunications Industry Association Towarzystwo Przemysłu Telekomunikacyjnego
TORMAN Torun Municipal Area Network toruńska miejska sieć komputerowa
UDP User Datagram Protocol protokół datagramów użytkownika
URL Universal Resource Locator ujednolicony lokalizator zasobów
UTP Unshielded Twisted Pair nieekranowana skrętka
VLAN Virtual LAN wirtualna lokalna sieć komputerowa
WAN Wide Area Network rozległa sieć komputerowa
WLAN Wireless Local Area Network lokalna bezprzewodowa sieć komputerowa
WWW World Wide Web światowa pajęczyna

Footnotes:

1 http://www.news.uiuc.edu/WebsandThumbs/Cox,Donna/nsfnetSept91_b.jpg
2 http://www.internetworldstats.com/stats.htm
3Wg Rzeczpospolita 30/10/2006, B1
4 http://www.alexa.com/site/ds/top_500
5 http://news.netcraft.com/
6 http://news.netcraft.com/
7 http://en.wikipedia.org/wiki/OSI_model#Layer_1:_Physical_layer
8 http://uw713doc.sco.com/en/NET_tcpip/tcpN.tcpip_stack.html
9 http://en.wikipedia.org/wiki/IPv6
10 C.M.Kozierok, TCP/IP Guide
11 C.M.Kozierok, TCP/IP Guide
12 http://www.microsoft.com/mind/1196/cifs.asp


File translated from TEX by TTH, version 3.85.
On 15 Jun 2009, 10:02.