No Title
SIECI KOMPUTEROWE
WPROWADZENIE
Jacek Kobus
Instytut Fizyki UMK
2008/9
Figure
1
Czy zostaliśmy złapani w Sieć?
- Rozwój nauki i techniki -- > przemiany
cywilizacyjne
- Fizyka XX w. -- > półprzewodniki, układy scalone,
nanotechnologia
- Komputery: mainframe, minikomputery, stacje robocze, PC
- Sieci komputerowe: LAN i WAN -- > Internet
- Technologie informatyczne składnikiem towarów, pracy, usług
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
- 1969 - Agencja Zaawansowanych Projektów Badawczych Departamentu
Obrony Stanów Zjednoczonych (DARPA - Defense Advanced Research
Projects Agency) sfinansowała prace badawcze i rozwojowe prowadzące
do stworzenia sieci z komutacją pakietów (ARPANET).
- 1971 - R.Tomlinson tworzy program do przesyłania poczty
elektronicznej (adres: user@server)
- 1973 - powstają sieci w W.Brytanii i Norwegii połączone z siecią
ARPANET łączami satelitarnymi
- 1979 - powstają pierwsze grupy dyskusyjne
- 1981 - opracowanie protokołów komunikacyjnych TCP
Transmission Control Protocol) oraz IP (Internet
Protocol)
- 1983 - protokoły TCP/IP zostały przyjęte jako Standardy
Wojskowe; implementacja TCP/IP w systemie operacyjnym UNIX
BSD; ARPANET staje się siecią TCP/IP
- 1983 - ARPANET rozpada się na sieć MILNET (sieć Departamentu
Obrony) oraz ARPANET (przestała istnieć w 1990 r.)
Termin Internet służył do określenia obu tych sieci.
- 1983 - powstaje EARN (European Academic and Research Network)
- 1984 - wprowadzenie usługi DNS (Domain Name System); w
sieci około 1000 serwerów
- 1986 - powstaje NSFNET (National Science Foundation
NET), amerykańska sieć szkieletowa o przepustowości 56 kb/s
- 1991 - T.Berners-Lee tworzy HTML (Hyper-Text Markup
Language), co daje początek WWW (World Wide Web)
- 1995 - NFSNET przekształca się w sieć badawczą, Internet się
komercjalizuje; wojna przeglądarek (Netscape Navigator kontra Internet
Explorer)
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)
| 1 | kwiecień 1997 |
| 10 | luty 2000 |
| 20 | wrzesień 2000 |
| 30 | lipiec 2001 |
| 40 | kwiecień 2003 |
| 50 | maj 2004 |
| 60 | marzec 2005 |
| 70 | sierpień 2005 |
| 80 | kwiecień 2006 |
| 90 | sierpnień 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
- Wprowadzenie
- Architektura protokołów sieciowych: model odniesienia OSI i
TCP/IP
- Charakterystyka protokołów modelu TCP/IP: Ethernet, ICMP, ARP,
RARP, IP, TCP, UDP
- Lokalna sieć komputerowa: topologia, media transmisyjne,
urządzenia sieciowe, protokoły
- Konfiguracja interfejsu sieciowego, analiza połączeń sieciowych,
śledzenie ruchu w lokalnej sieci
- Reguły łączenia urządzeń sieciowych. Domeny kolizyjne, domeny
rozgłoszeniowe
- Łączenie sieci lokalnych: adresacja, sieci/podsieci, routing
- Prywatne sieci komputerowe
- Rozległa sieć komputerowa: topologia, media transmisyjne,
urządzenia sieciowe, protokoły (X.25, Frame Relay, FDDI, ATM, SDH,
ISDN, xDSL)
- Sieć Internet: protokoły warstwy aplikacji, usługi sieciowe
- Zasady okablowania strukturalnego
- (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:
- standard otwartych protokołów, łatwo dostępnych i
opracowywanych niezależnie od specyfiki sprzętu komputerowego lub
systemu operacyjnego
- niezależność od fizycznych właściwości sieci, co pozwala
na integrację różnego rodzaju sieci (łącza telefoniczne,
światłowodowe, radiowe)
- wspólny system adresacji pozwalający dowolnemu urządzeniu
korzystającemu z TCP/IP na jednoznaczne zaadresowanie innego
urządzenia w sieci
| 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
- komunikacja równorzędna węzeł-węzeł (host-host,
host-to-host)
- nagłówek i dane danej warstwy tworzą dane dla warstwy niższej:
kapsułkowanie, enkapsulacja (encapsulation)
- przepływ danych pomiędzy odpowiadającymi sobie warstwami sieci
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
- ułatwia zrozumienie działania komunikacji sieciowej
- standaryzuje elementy sieci pozwalając na ich rozwijanie przez
wielu wytwórców
- pozwala na współdziałanie różnego typu urządzeń sieciowych
i oprogramowania sieciowego
- przeciwdziała wpływowi zmian w jednej warstwie na funkcjonowanie
innych warstw (szybszy rozwój)
- ułatwia uczenie i uczenie się działania sieci komputerowych
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:
- zamiana danych znajdujących się w ramkach na strumienie binarne
- stosowanie metody dostępu do nośnika, jakiej żąda warstwa
łącza danych
- przesyłanie ramki danych szeregowo w postaci strumieni binarnych
- oczekiwanie na transmisje adresowane do danego hosta
- odbiór odpowiednio zaadresowanych strumieni
- przesyłanie binarnych strumieni do warstwy łącza danych, w celu
złożenia ich w ramki
Sieci Ethernet/IEEE 802.3
- Lokalne sieci komputerowe są budowane w oparciu o normę
IEEE 802.3 z roku 1985, która definiuje ramkę danych oraz określa
sposób dostępu do nośnika.
- Norma ta uściśla i rozszerza specyfikację właściwą dla sieci
Ethernet I (Ethernet PARC, Palo Alto Research Center) i
Ethernet II (Ethernet DIX) i dlatego sieci wykorzystujące normę
IEEE 802.3 zwane są sieciami ethernetowymi.
- Rodzaje ramek ethernetowych: PARC, DIX, 802.3, LLC
(Logical Link Control), SNAP (Sub-Network Access
Protocol)
- Materialnymi nośnikami transmisji są kabel koncentryczny, skrętka
dwużyłowa, kabel światłowodowy, przestrzeń. Ich fizyczne własności
określają szerokość dostępnego pasma transmisyjnego, częstotliwości
sygnałów i efektywną prędkość przesyłania danych.
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 |
|
|
|
|
|
|
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 |
|
|
|
|
|
|
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:
- sterowanie łączem logicznym (LLC Logical Link Control)
Podwarstwa LLC izoluje protokoły wyższej warstwy od właściwej metody
dostępu do nośnika, co zapewnia współoperacyjność różnych architektur
sieciowych.
- sterowanie dostępem do nośnika (MAC Media Access
Control)
Podwarstwa MAC odpowiada za opakowanie danych z podwarstwy LLC w ramki,
za testy integralności danych, za śledzenie stanu nośnika
- używa płaskiej struktury adresowej (adresy MAC)
- grupuje bity w ramki
- używa MAC do określania, który komputer będzie transmitował dane
(w sytuacji, gdy wiele komputerów chce nadawać równocześnie)
Usługi sterowania LLC
- niepotwierdzona usługa bezpołączeniowa (unacknowledged
connectionless mode; uni-, multi-, broadcast),
- potwierdzona usługa bezpołączeniowa (acknowledged connectionless mode),
- usługa połączeniowa (punkt-punkt)
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:
- 1-oktetowe pole punktu dostępu do usługi docelowej (pole DSAP)
identyfikujące punkt dostępu do usługi LLC urządzenia docelowego
- 1-oktetowe pole punktu dostępu do usługi źródłowej (pole SSAP)
identyfikujące punkt dostępu do usługi LLC urządzenia źródłowego
- 1- lub 2-oktetowe pole kontroli, wskazujące typ przenoszonej
ramki LLC
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:
- 1-oktetowe pole punktu dostępu do usługi docelowej (pole DSAP)
identyfikujące punkt dostępu do usługi LLC urządzenia docelowego
- 1-oktetowe pole punktu dostępu do usługi źródłowej (pole SSAP)
identyfikujące punkt dostępu do usługi LLC urządzenia źródłowego
- 1- lub 2-oktetowe pole kontroli, wskazujące typ przenoszonej
ramki LLC
- 5-oktetowa podramka SNAP zawierająca 3-oktetowe pole
jednoznacznego identyfikatora organizacji (Organizationally
Unique Identifier OUI) i 2-oktetowe pole Typ protokołu
(identyfikacja protokołu warstwy wyższej)
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.
- Adres sprzętowy MAC (Media Access Control) składa się z 48
bitów.
24 bity są przypisane producentowi sprzętu (OUI, Organizational
Unique Identifier), a pozostałe 24 bity
numerują kolejne karty. Np. numery kart sieciowych firmy Sun Microsystems
są postaci 08:00:20:xx:xx:xx.
- Dostęp do nośnika: wielodostęp z wykrywaniem fali nośnej i
wykrywaniem kolizji, CSMA/CD (Carrier Sense-Multiple
Access/Collision Detection)
Internet jako zbiór połączonych sieci
Figure
Warstwa Internet (sieciowa)
Funkcje warstwy sieciowej:
- definiowanie datagramów
- definiowanie schematu adresowania używanego w Internecie
- przekazywanie danych pomiędzy warstwą transportową
i warstwą
dostępu do sieci
- kierowanie datagramów do komputerów oddalonych
- dokonywanie fragmentacji i ponownego składania datagramów
(MTU, Maximum Transmission Unit)
Internet Protocol (IP) protokół międzysieciowy,
internetowy (RFC 791)
Własności IP:
- IP jest protokołem bezpołączeniowym
- datagram jest formatem pakietu zdefiniowanym przez
protokół Internet.
Dane są przekazane do właściwego protokołu warstwy transportowej na
podstawie pola Numer protokołu w nagłówku datagramu.
- sieć Internet jest siecią z przełączaniem pakietów
(routery, trasowanie)
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:
- 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)
- 224.0.1.0 - 238.255.255.255 adresy o zasięgu globalnym
(Globally-scoped (Internet-wide) multicast addresses
- 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
- standardowa struktura adresów IP może być lokalnie modyfikowana
poprzez użycie bitów adresowych hostów jako dodatkowych bitów
określających sieć
- podział sieci na podsieci (subnets) przy pomocy maski
bitowej (maski podsieci (netmask)
- bit 1 w masce wskazuję, że odpowiadający mu bit w adresie IP
wskazuje na adres sieci
- bit 0 w masce wskazuje, że odpowiadający mu bit adresu jest
związany z adresem komputera w podsieci
- podsieć jest znana tylko lokalnie
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 | 000 | 0-31 |
| 195.15.25.32 | 11000011 00000111 00011001 | 001 | 32-63 |
| 195.15.25.64 | 11000011 00000111 00011001 | 010 | 64-95 |
| 195.15.25.96 | 11000011 00000111 00011001 | 011 | 96-127 |
| 195.15.25.128 | 11000011 00000111 00011001 | 100 | 128-159 |
| 195.15.25.160 | 11000011 00000111 00011001 | 101 | 160-191 |
| 195.15.25.192 | 11000011 00000111 00011001 | 110 | 192-223 |
| 195.15.25.224 | 11000011 00000111 00011001 | 111 | 224-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:
- sterowanie przepływem datagramów
- wykrywanie nieosiągalnych miejsc przeznaczenia
- przekierunkowywanie marszrut (zmiana trasowania)
- sprawdzanie połączeń z komputerami oddalonymi
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 - protokół odwzorowywania adresów: zmiana adresów logicznych (IP) na adresy
fizyczne (MAC)
Zastosowania: działanie sieci ethernetowych
- RARP (Reverse Address Resolution Protocol) - protokół
odwrotnego odwzorowywania adresów: zamiana adresów fizycznych
(MAC) na adresy logiczne (IP)
Zastosowania: bootowanie stacji bezdyskowych
# 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.
- host A wysyła rozgłoszenie (ARP request):
Who has 158.75.5.47? Tell 158.75.5.90.
- host B odpowiada hostowi A (ARP reply):
158.75.5.47 is at 00:30:48:21:A3:8B
- host A uzupełnia tablicę ARP o kolejny wpis
- 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
- zbyt mała liczba adresów (232−1 ≈ 4.29×109),
nieefektywne wykorzystywanie przestrzeni adresowej
- dwupoziomowa hierarchia adresowania (host.domena), która
uniemożliwia konstruowanie wydajnych hierarchii adresowych
(nieefektywne trasowanie datagramów)
- słaba obsługa ruchu audio/wideo
- brak mechanizmów zapewniających bezpieczeństwo przekazywania datagramów
Internet Protocol Version 6 (IPv6 RFC 2460)
Własności:
- ogromna przestrzeń adresowa (2128−1 ≈ 3.4×1038)
In a different perspective, this is 252 ( ≈
4.5×1015) addresses for every star in the known universe
- a million times as many addresses per star than IPv4 supported for
our single planet.9
- trzy rodzaje adresów (unicast, multicast, anycast)
- obsługa transmisji audio/wideo w czasie rzeczywistym
- opcje są określone w rozszerzeniu do nagłówka,
dzięki czemu mogą być badane po dotarciu pakietu do celu, co pozwala
poprawić szybkość przekazywania pakietów od węzła do węzła sieci
Internet
- możliwość znaczenia pakietów (np. pakiety ,,multimedialne" mogą
być przełączane z większym priorytetem)
- bezpieczeństwo (kodowanie i identyfikacja) - nagłówek zawiera
rozszerzenie, które pozwala zaznaczyć używany w czasie połączenia
mechanizm uwierzytelniania źródła pochodzenia pakietów (zapewnienie
integralności i poufności danych)
- mobilność hostów, auto(re)konfiguracja
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|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
- unicast (adres pojedynczej emisji, adres jednostkowy):
- adres dostawcy usług internetowych (ISP, Internet
Service Provider)
- adres użytku lokalnego dla łącza przeznaczony dla
pojedynczego łącza
- adresy użytku lokalnego dla miejsca przeznaczone do stosowania
w miejscach i organizacjach, które nie są przyłączone do globalnego
Internetu
- adres unicast IPv6 zgodny z IPv4 niezbędny z uwagi na
tunelowanie IPv6 przez sieć IPv4
- adres unicast IPv6 wzorowany na IPv4 niezbędny z uwagi na
tunelowanie IPv4 przez sieć IPv6 (adresy tymczasowe tylko dla
routerów)
- anycast (adres dowolnej emisji, adres grona) jest
pojedynczą wartością przypisaną do więcej niż jednego interfejsu
(zwykle różnych urządzeń). Pakiet wysłany na adres anycast jest
trasowany tylko do jednego urządzenia najbliższego wg pewnej miary
odległości. Jeśli dwaj użytkownicy wysłyłają z różnych miejsc sieci
datagramy pod ten sam adres, to ich zlecenia mogą być jednocześnie
obsługiwane przez różne urządzenia.
- Adres multicast (adres rozgłoszenia grupowego)
udostępnia ogromną liczbę adresów grup multicastowych. Adresy te
mogą mieć zasięg globalny, mogą być powiązane z danym miejscem lub
łączem sieciowym. Są m.in. wykorzystywane do autokonfiguracji hostów
oraz wykrywania najlepszych tras (routerów).
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):
- HTTP (HyperText Transport Protocol) protokół przesyłania
hipertekstu
- TELNET (Network Terminal Protocol) protokół końcówki sieciowej
- SSH (Secure SHell) bezpieczna powłoka
- FTP (File Transfer Protocol) protokół przesyłania plików
- NFS (Network File System) sieciowy system plików
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).
- Dane wysyłane są tak długo, aż nie nadejdzie potwierdzenie, że zostały
poprawnie odebrane.
- Jeśli dane są poprawne, to odbiorca wysyła do nadawcy pozytywne
potwierdzenie.
- Gdy odebrane dane są niepoprawne, to zostają zignorowane. Po
określonym czasie moduł nadający powtórnie wysyła
dane.
- Odbiorca wysyła nadawcy informację o maksymalnej liczbie bajtów,
które wolno wysłać bez czekania na potwierdzenie. Wartość ta jest
nazywana rozmiarem okna i jest podstawowym mechanizmem
kontroli przepływu stosowanym w protokole TCP.
RFC 1323 wprowadza opcję Scale Window, która pozwala na
wynegocjowanie przez strony połączenia 30. bitowego rozmiaru okna,
czyli ustalenia wielkości bufora rzędu 1 GB.
TCP: kontrola przepływu
- algorytm retransmisji z adaptacją ze zmiennym czasem oczekiwania
(zależnym od rodzaju sieci i panujących w niej warunków)
- wartość czasu oczekiwania jest obliczana na podstawie bieżącej
średniej czasu podróży w dwie strony dla dotychczas wysłanych
pakietów
- jeśli odbiór pakietu nastąpi przed upływem czasu oczekiwania,
to TCP aktualizuje średnią i stosuje ją przy oczekiwaniu na
potwierdzenie kolejnego pakietu
- jeśli odbiór pakietu nie nastąpi przed upływem czasu
oczekiwania, to TCP ponownie wysyła pakiet i czeka dwukrotnie dużej
- połączenie jest kontynuowane, jeśli nadejdzie potwierdzenie;
przekroczenia maksymalnego czasu oczekiwania powoduje zerwanie
połączenia
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):
- TFTP (Trivial File Transfer Protocol) trywialny protokół
przesyłania plików
- SNMP (Simple Network Management Protocol) prosty protokół
zarządzania siecią
- DNS (Domain Name System) system nazw domenowych
- NFS (Network File System) sieciowy system plików
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ą:
- oferuje bezbłędne, potwierdzane dostarczanie (bez powtórzeń)
datagramów (wiadomości)
- wsparcie dla węzłów o wielu adresach (multi-homed nodes)
- wiele strumieni w ramach jednego połączenia
- wybór zasadniczej ścieżki transmisji i śledzenie stanu sesji
- zawiera mechanizmy unikania tworzenia się zatorów
- zawiera mechanizmy uodparniające na ataki typu flooding
oraz masquerade
- strumień SCTP reprezentuje ciąg wiadomości (strumień TCP to ciąg bajtów)
- pojedynczy pakiet składa się z nagówka i jednego lub więcej
kawałków zawierających dane sterujące lub dane użytkownika
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:
- UNIX/LOCAL - gniazda domeny Unixowej
- INET/INET6 - rodzina adresów internetowych wspierająca komunikację przy
pomocy protokołów TCP/IP
- IPX - Novell IPX
- APPLETALK - Appletalk DDP (Datagram Delivery Protocol)
- X25 - gniazda dla komunikacji w ramach protokołu X25
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ń)
- transfer plików - protokół FTP (File Transfer Protocol)
- zdalne rejestrowanie się - protokół TELNET (Network
Terminal Protocol)
- poczta komputerowa - protokoły SMTP (Simple Mail
Transport Protocol), POP3 (Post Office Protocol), IMAP
(Internet Message Access Protocol)
- listy korespondencyjne i dyskusyjne - protokół NNTP
(Network News Transport Protocol).
- www (World Wide Web) - protokół HTTP (HyperText
Transport Protocol)
- DNS (Domain Name Service) - protokół UDP
- NFS (Network File System) - sieciowy system plików
pozwalający na współdzielenie plików przez wiele komputerów w sieci
(protokoły UDP, TCP)
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:
- netstat -np
- netstat -npl
- netstat -npl -inet|-ip
- netstat -npl -tcp
- netstat -npl -udp
- netstat -naltp
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
TCP: procedura równoczesnego zamykania połączenia11
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 | | | | |
-----------------------------------------------------------------------------
- SAP (Service Advertisment Protocol) rozgłasza
(co 60 sek.) adres i usługi serwera w sieci (identyfikatory SAP: 4 -
serwer plików, 7 - serwer drukarek)
- NCP (NetWare Core Protocol) dostarcza połączeń i
aplikacji dla komunikacji klient-serwer (dostęp do plików, drukarek,
zarządzanie nazwami, synchronizacja plików, bezpieczeństwo)
- NetBIOS (Network Basic Input/Output System)
pozwala aplikacjom uruchamianym na różnych komputerach na wzajemną
komunikację w ramach lokalnej sieci komputerowej (schemat opracowany
przez IBM w początkowym okresie rozwoju sieci komputerowych opartych o
komputery osobiste, który później został przejęty przez firmę
Microsoft i stał się de facto standardem); NetWare dostarcza emulatora
pozwalającego uruchamiać aplikacje korzystające z interfejsu NetBIOS
- SPX (Sequenced Packet Exchange) połączeniowy protokół
sekwencyjnej wymiany pakietów wspomagający protokoły warstwy
transportowej i służący do sprawdzania czy pakiety IPX docierają do
miejsca przeznaczenia
- IPX (Internetwork Packet Exchange)
międzysieciowa wymiana pakietów jest bezpołaczeniowym protokołem
(warstwy sieciowej) służącym do łączenia komputerów używających
oprogramowania NetWare firmy Novell (oprogramowanie NetWare od wersji
5.0 używa w warstwie sieciowej protokołu IP zamiast IPX)
- RIP ((Novell's) Routing Information Protocol) protokół
routingu wykorzystujący algorytm wektora odległości do wymiany
informacji o dostępnych trasach pomiędzy routerami sieci IPX
- NLSP (NetWare Link Services Protocol) protokół
routingu wykorzystujący algorytm stanu łącza (najkrótszej ścieżki)
Cechy systemu NetWare
- 80-bitowy adres postaci network.node (32+48-bitów)
- adres MAC jest częścią adresu logicznego
- wiele rodzajów kapsułkowania na pojedynczym interfejsie
- domyślnym protokolem routingu jest Novell RIP
- usługi są rozgłaszane przez SAP
- klienci znajdują serwery poprzez pakiety GNS
(Get Nearest Server)
- RIP i NLSP są implementowane jako protokoły warstw 5-7
Rodzaje kapsułkowania w NetWare
| nazwa novellowa | struktura
ramki |
| NetWare ≤ 3.11: | Ethernet_802.3 |
|
| NetWare ≥ 3.12: | Ethernet_802.2 |
|
| TCP/IP: | Ethernet_II |
|
| TCP/IP+AppleTalk: | Ethernet_SNAP |
|
Struktura nagłówka pakietu IPX
- suma kontrolna (checksum, 2)
- długość pakietu (packet length, 2) - liczba oktetów
nagłówka i danych
- sterowanie transportem (transport control, 1) -
liczba routerów ( ≤ 16), które pakiet może przejść zanim zostanie
usunięty (każdy router zwiększa to pole o jeden)
- typ pakietu (packet type, 1) - numer usługi, która
utworzyła pakiet (NCP(17), SAP, NetBIOS, SPX(5), RIP, NLSP)
- numer sieci docelowej (destination network, 4) - numer
sieci, w której znajduje się węzeł docelowy
- adres węzła docelowego (destination node, 6) - adres MAC
węzła, w którym znajduje się docelowy komputer
- numer gniazda docelowego (destination socket, 2) -
numer gniazda procesu odbierającego pakiety
- numer sieci źródłowej (source network, 4) - numer
sieci, w której znajduje się węzeł źródłowy
- adres węzła źródłowego (source node, 6) - adres MAC
węzła, w którym znajduje się komputer źródłowy
- numer gniazda źródłowego (source socket, 4) - numer
gniazda procesu wysyłającego pakiety
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
- AFP (AppleTalk Filing Protocol) - protokół
warstwy aplikacji dostarcza usługi plików sieciowych (wszystkim)
aplikacjom istniejącym niezależnie od stosu protokołów
- ADSP (AppleTalk Data Stream Protocol) - protokół
strumienia danych sieci dostarcza w niezawodny sposób pełnodupleksowe
usługi połączeniowe poprzez ustanowienie logicznego połączenia
(sesji) pomiędzy komunikującymi się komputerami (wykorzystuje
gniazda)
- ASP (AppleTalk Session Protocol) - protokoł sesji
zapewnia niezawodne dostarczanie danych poprzez sekwencyjne
zarządzanie sesją
- PAP (Printer Access Protocol) - protokół dostępu
do drukarki umożliwiający zarządzanie drukarkami (wymianę innych danych)
- ZIP (Zone Information Protocol) - protokół informacji
o strefach zapewnia mechanizm logicznego grupowania urządzeń
sieciowych (tworzenia stref)
- ATP (AppleTalk Transport Protocol) - protokoł
transportu
- AURP (AppleTalk Update-Based Routing Protocol) -
protokoł trasowania
- DDP (Datagram Delivery Protocol) - protokół warstwy
datagramowej odpowiedzialny za dostarczanie danych metodą bezpołączeniową
- ELAP (Ether Talk Link Access Protocol) - protokół
warstwy łącza danych zapewniający opakowywanie danych w ramkach
802.3
- TLAP (Token Talk Link Access Protocol) - protokół
warstwy łącza danych zapewniający opakowywanie danych w ramkach sieci
Token Ring
- LLAP (Local Talk Link Access Protocol) - protokół
warstwy dostępu do sieci firmy Apple (skrętka dwużyłowa, 230Kb/s)
NetBIOS i NetBEUI
- NetBIOS Extended User Interface (NetBEUI) - rozszerzony
interfejs użytkownika podstawowego systemu wej/wyj jest rozbudowaną
wersją protokołu NetBIOS używanego przez sieciowe systemy operacyjne
takie jak LAN Manager, LAN Server, Windows for Workgroups, Windows NT,
Samba (NetBEUI to NetBIOS, który działa w sieciach LAN pozbawionych
protokołu warstwy trzeciej)
- Interfejs NetBIOS został opracowany przez firmę Sytec Inc. dla
IBM w 1983 r. na potrzeby sieci komputerów IBM PC (PC Network)
- NetBEUI został wprowadzony w 1985 r., aby aplikacje dla PC
Network mogły pracować w sieci Token-Ring
- w 1987 r. Microsoft wprowadził LAN Managera, który wykorzystywał
ramki NetBIOS-owe
- NetBIOS/NetBEUI są ,,protokołami" warstwy sesji i wykorzystują
do transportu niższe warstwy: NetBIOS over TCP/IP,
NetBIOS over IPX/SPX, NetBIOS over PPP
- NetBIOS nie jest protokołem, ale interfejsem do rodziny
protokołów: Name Management Protocol (NMP),
Diagnostic and Monitoring Protocol (DMP), User
Datagram Protocol (UDP), Session Management Protocol
(SMP).
NetBIOS był zaprojektowany jako interfejs programów użytkowych (API,
Application Programming Interface)
- NetBEUI jako rozszerzenie NetBIOS-u nie jest protokołem, lecz
API
- protokół NetBIOS/NetBEUI - rodzina protokołów
używanych przez API NetBIOS/NetBEUI
- w trakcie rozwoju NetBEUI powstały nowe protokoły zwane
NetBIOS Frames (NBF), czyli niekapsułkowana implementacja
NetBIOS-u
- NetBIOS/NetBEUI = NetBIOS Frames Protocol for 802.2 Networks
(oficjalna nazwa używana przez IBM)
Common Internet File System (CIFS)12
- Common Internet File System (zwany także Server
Message Block Protocol, blok komunikatów serwera), jest protokołem
(wg modelu OSI) warstwy aplikacji/prezentacji używany
przez systemy operacyjne firmy Microsoft
- CIFS/SMB służy do implementowania sterowania sesjami sieciowymi,
sieciowym systemem plików, dostępem do sieciowych drukarek i
przekazywaniem komunikatów, wykrywaniem serwerów sieciowych,
uwierzytelniania i autoryzacji
- zapewnia podobną funkcjonalność jak ASP, AFP, NCP, NFS
- CIFS/SMB wykorzystuje: NetBIOS Frames Protocol (NBF), NetBIOS
over TCP/IP (NBT), NetBIOS over IPX
- systemy Unix/Linux implementują komunikację klient/serwer
protokołu CIFS poprzez program Samba
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:
- usługi warstwy: co warstwa robi (semantyka warstwy)
- interfejs warstwy: sposób dostępu do niej dla procesów
położonych wyżej
- protokoły (równorzędne) warstwy: sposób wymiany danych między
równorzędnymi warstwami, który zapewnia wypełnianie przez warstwę jej funkcji
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).
- Model odniesienia OSI powstał przed określeniem odpowiadających mu
protokołów! Próby jego implementacji wymusiły konieczność wprowadzenia
modyfikacji.
- W przypadku TCP/IP najpierw powstały protokoły. Model jest tylko ich
opisem.
- Model OSI przewiduje komunikację połączeniową i bezpołączeniową
w warstwie sieciowej, ale jedynie połączeniową w warstwie
transportowej. TCP/IP obsługuje oba typu w warstwie transportowej (co
daje użytkownikowi możliwość wyboru), ale tylko komunikację
bezpołączeniową w warstwie sieciowej.
Przyczyny porażki modelu OSI:
- zły moment wprowadzenia standardu (apokalipsa dwóch
słoni D.Clarka)
Figure
Przyczyny porażki modelu OSI:
- zła technologia (wady modelu i protokołów; złożoność)
Niektóre funkcje (adresowanie, sterowanie przepływem, kontrola błędów)
pojawiają się w każdej warstwie.
- zła implementacja (spowodowana złożonością modelu i protokołów)
- zła polityka
TCP/IP uważano za składnik UNIX-a, a model OSI za twór ministerstw
telekomunikacji krajów Unii Europejskiej (potem także rządu USA).
Problemy modelu i protokołów TCP/IP:
- brak rozróżnienia idei usługi, interfejsu i protokołu
(także specyfikacji od implementacji)
- brak ogólności (trudność w użyciu tego modelu do opisania innych
stosów protokołów)
- warstwa host-sieć nie jest warstwą w sensie ścisłym, ale
interfejsem pomiędzy siecią, a warstwą łącza danych
- brak rozróżnienia na warstwę fizyczną i warstwę łącza danych
- brak jednolitej jakości protokołów
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.