Rozdział 5.
Niezbędnik hakera
Niezbędnik hakera zawiera zbiór kluczowych pojęć, które stanowią podstawę do dalszej nauki tego swoistego „rzemiosła”. Zwykle jego nauka trwa wiele lat, w czasie których uczymy się metodą prób i błędów oraz studiujemy dokumentację techniczną. Rozdział ten został pomyślany jako podsumowanie wiadomości, zawartych w poprzednich rozdziałach (szczególnie 1. i 2.).
Każda część rozdziału odpowiada jednemu krokowi na drodze do zdobycia podstaw edukacji i wiedzy hakerskiej. Poruszone tematy dotyczą pojęć związanych z siecią, technologiami sieciowymi, protokołami i ważnymi poleceniami. W następnym rozdziale zajmiemy się podstawami programowania.
Pojęcia związane z siecią
Model warstwowy
— Open Systems Interconnection Model
Model OSI został opracowany przez ISO (International Standards Organization) do opisania procedur wykonywanych podczas komunikacji. Ważne jest, by umieć rozpoznawać siedem warstw tworzących model OSI (nazywany również modelem warstwowym) jako osobne elementy, których współpraca jest konieczna do skutecznej komunikacji (patrz rysunek 5.1). Pomysł podzielenia technologii sieciowych na warstwy pozwala na specjalizowanie się producentów w publikowaniu nowych produktów, przeznaczonych dla określonej warstwy modelu. Pozwala również usystematyzować omawianą przez nas wiedzę tak, by było możliwe przedstawienie jej w jednej zamiast wielu publikacjach.
Rysunek 5.1. Siedem warstw modelu OSI |
|
Warstwa 1 — fizyczna. Jest odpowiedzialna za przesyłanie sygnałów w elektryczny, elektromagnetyczny, mechaniczny, optyczny czy też inny sposób, wykorzystując do tego fizyczne medium komunikacyjne. Elementami warstwy fizycznej są na przykład karty sieciowe, okablowanie oraz topologie budowy sieci takie jak Ethernet i Token Ring.
Warstwa 2 — przesyłowa. Warstwa ta zapewnia wiarygodną transmisję bitów za pomocą sieci zbudowanej na warstwie fizycznej. Warstwę przesyłową można podzielić na dwie podwarstwy.
MAC: podwarstwa ta jest odpowiedzialna za formowanie ramek, detekcję błędów oraz definiowanie fizycznej topologii sieci (gwiazda, pierścień, magistrala).
LLC: zadaniem tej podwarstwy jest zapewnienie jednolitego sposobu komunikowania się warstwy 2 z elementami wyższych warstw, wykorzystując jednakowy interfejs niezależnie od różnic w fizycznej budowie sieci.
Warstwa 3 — sieciowa. Na tym poziomie modelu OSI pracują protokoły adresowe oraz te, których zadaniem jest wyznaczanie trasy pakietów w sieci. Z protokołów adresowych należy wymienić IP oraz IPX, natomiast najpopularniejszym, wykorzystywanym do routingu, jest RIP (protokół RIP zostanie opisany dokładniej w dalszej części książki).
Warstwa 4 — transportowa. Warstwa transportowa odpowiada za przesyłanie danych w postaci ciągów bajtów niezależnie od tego, czy są przesyłane w postaci strumieni (TCP), czy też w postaci osobnych datagramów (UDP). Zadaniem tej warstwy jest udostępnienie sposobu nawiązania połączenia (TCP), detekcja i korekcja błędów przesyłanych pakietów oraz multiplexing i demultiplexing transportowanych danych.
Warstwa 5 — sesyjna. Zadaniem składników tej warstwy jest zarządzanie nawiązywaniem, podtrzymywaniem i kończeniem połączeń, używanych przez składniki kolejnej warstwy 6. W uproszczeniu, warstwa ta dokonuje, niezbędnej do poprawnego działania warstwy multimedialnej, koordynacji wymiany danych pomiędzy komputerami. Przykładem protokołów używanych w tej warstwie jest Novelowa usługa punktów dostępowych i protokół NetBEUI.
Warstwa 6 — multimedialna. W warstwie tej operacje wykonywane są już nie tylko na pojedynczych bajtach czy strumieniach danych, lecz również na nośnikach informacyjnych, wymagających kompresowania, dekompresowania, szyfrowania, deszyfrowania itp. przy użyciu różnych systemów kodowania, takich jak np. GIF, JPEG, ASCII, MPEG, MP3. Warstwa jest odpowiedzialna za przekazywanie danych do warstwy 7.
Warstwa 7 — aplikacyjna. Ostatnią, najwyższą w modelu, jest warstwa aplikacyjna, której zadaniem jest bezpośrednie komunikowanie się z użytkownikiem, umożliwienie aplikacjom dostępu do sieci, dokonywanie synchronizacji pracy różnych aplikacji itd. Typowymi usługami występującymi w tej warstwie są FTP, SMTP oraz WWW.
Rodzaje okablowania — przepustowość
oraz maksymalna długość
Okablowanie to część specyfikacji fizycznej warstwy komunikacji i jako takie jest podstawą budowy prawie wszystkich współczesnych sieci. Istnieje wiele rodzajów kabli wykorzystywanych do transportowania danych; zdjęcia dwóch obecnie najpopularniejszych znajdują się na rysunku 5.2. Różnice między nimi polegają przede wszystkim na parametrach, takich jak przepustowość oraz maksymalna długość pojedynczej nitki kabla. Dane te są przedstawione w tabeli 5.1.
Rysunek 5.2. Końcówki przewodów kategorii 3 oraz 5 |
|
Konwersje pomiędzy postaciami
dwójkowymi, dziesiątkowymi i szesnastkowymi liczb
Postać dziesiątkowa
Dane wprowadzane do aplikacji mają przeważnie postać dziesiętną, czyli liczb złożonych z cyfr od 0 do 9.
Postać dwójkowa
Kiedy liczba dziesiątkowa zostaje wprowadzona do komputera, system zamienia ją na postać dwójkową, złożoną z cyfr 0 i 1. Dla przykładu adres IP jest przetwarzany w postaci dwójkowej, chociaż użytkownik wprowadza go w postaci dziesiętnej. Przykład adresu IP sieci z 24 bitową maską podsieci jest przedstawiony na rysunku 6.3.
Tabela 5.1. Przepustowości oraz maksymalne długości przewodów sieciowych różnych rodzajów
Prędkość transmisji (b/s) |
Maksymalna długość nitki przewodu (w metrach) |
|
||
2400 |
60 |
|
||
4800 |
30 |
|
||
9600 |
15 |
|
||
19200 |
8 |
|
||
38400 |
4 |
|
||
56000 |
2,5 |
|
||
Typ interfejsu |
Przepustowość (na sekundę) |
|
||
ISDN PRI |
1,536 Mb |
|
||
ISDN BRI |
128 kb |
|
||
T1 |
1,544 Mb |
|
||
HSSI |
52 Mb |
|
||
OC3 |
155,52 Mb |
|
||
OC12 |
622 Mb |
|
||
Przepustowość (Mb/s) |
Rodzaj przewodu |
Duplex half/full |
Maksymalna długość nitki przewodu (w metrach) |
|
10 |
koncentryczny |
tylko halfduplex |
15 |
|
10 |
skrętka (kategoria 3) |
oba |
100 |
|
10 |
optyczny |
oba |
2000 |
|
100 |
skrętka (kategoria 5) |
oba |
100 |
|
100 |
optyczny |
tylko halfduplex |
400 |
|
100 |
optyczny |
tylko fullduplex |
2000 |
|
Rysunek 5.3. Przykład adresu IP |
|
Pierwszy bajt (206) wskazuje na adres IP klasy C, a więc taki, którego trzy początkowe bajty (24 bity) oznaczają adres sieci, ostatni bajt oznacza zaś adres komputera wewnątrz sieci. Tak więc maska podsieci dla takiego adresu wynosi 255.255.255.0.
Tych osiem ostatnich bitów (tak jak i pozostałe) są rozpoznawane przez urządzenia sieciowe, w następujący sposób:
Bit: |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
Wartość: |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
=255 (254 użyteczne adresy) |
W przykładzie tym mamy jedynie 254 użyteczne adresy IP do przydzielenia interfejsom wewnątrz sieci lub też do podzielenia na podsieci. 0 i 255 nie mogą być użyte jako adresy hostów, gdyż są używane kolejno w adresie sieci oraz adresie rozgłoszeniowym.
Załóżmy, że chcemy zamienić liczbę binarną (czyli zapisaną w postaci dwójkowej) 11100000 na liczbę w postaci dziesiętnej. Bity ustawione oznaczamy jedynkami, zaś pozostałe zerami.
Bity: |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
Wartość: |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
Następnie sumujemy wartości poszczególnych bitów wynikające z ich położenia w liczbie:
Bity: |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
Wartość: |
1x128 |
+1x64 |
+1x32 |
+0x16 |
+0x8 |
+0x4 |
+0x2 |
+0x1 |
=128+64+32=224 |
Tak więc dziesiątkową reprezentacją liczby dwójkowej 11100000 jest 224.
Postać heksadecymalna
Szesnastkowy system liczenia (określany również jako heksadecymalny) funkcjonuje najczęściej jako skrócona postać notacji dwójkowej. Korzystają z niej często urządzenia sieciowe (na przykład routery), generując szesnastkowe nagłówki, które informują o numerach przyłączy Token Ring, mostów, sieci itp. — pozwala to zredukować rozmiary przekazywanych informacji. Wartość szesnastkową określać będziemy najczęściej na podstawie jej odpowiednika dwójkowego. Dwa systemy wiąże fakt, że każdym 8 bitom odpowiada dwucyfrowa liczba szesnastkowa z zakresu 00-FF.
Aby przedstawić tę zależność bardziej szczegółowo, posłużmy się przykładem wartości dziesiętnej 224 reprezentowanej dwójkowo jako:
11100000
Przejście do systemu szesnastkowego rozpoczynamy od wyłonienia pary wartości
4-bitowych:
1110 0000
Każdy z bitów ma określoną wartość. Poczynając od lewej, są to: 8, 4, 2 i 1:
8 4 2 1 8 4 2 1
1 1 1 0 0 0 0 0
Sumujemy te wartości:
8 4 2 1 = 8 + 4 + 2 + 0 = 14 8 4 2 1 = 0 + 0 + 0 + 0 = 0
1 1 1 0 0 0 0 0
Wartości 14 i 0 to odpowiedniki dwóch pozycji liczby szesnastkowej. Do ich ostatecznego ustalenia dochodzimy za pośrednictwem tabeli 5.2. Łatwo z niej odczytać, że parę 14 i 0 zapiszemy szesnastkowo jako e0.
Tabela 5.2. Tablica konwersji liczb dziesiętnych na cyfry notacji szesnastkowej
Dziesiętnie |
Szesnastkowo |
Dziesiętnie |
Szesnastkowo |
0 |
0 |
8 |
8 |
1 |
1 |
9 |
9 |
2 |
2 |
10 |
a |
3 |
3 |
11 |
b |
4 |
4 |
12 |
c |
5 |
5 |
13 |
d |
6 |
6 |
14 |
e |
7 |
7 |
15 |
f |
Przeanalizujmy jeszcze jeden przykład. Przekształcimy w nim wartość dziesiętną 185 do postaci binarnej:
Bity: |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
Wartość: |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 = 185 |
Binarnie dla 185 |
|
|
|
|
|
|
|
10111001 (jak w pierwszym wierszu) |
Podobnie jak wcześniej, podzielimy liczbę 10111001 na dwie części, po 4 bity każda:
1011 1001
Kolejne bity czterobitowej części liczby mają określone wartości:
8 4 2 1 8 4 2 1
1 0 1 1 1 0 0 1
Sumujemy wartości każdego z 4-bitowych bloków osobno:
8 4 2 1 = 8 + 0 + 2 + 1 = 11 8 4 2 1 = 8 + 0 + 0 + 1 = 9
1 0 1 1 1 0 0 1
Na podstawie tablicy konwersji stwierdzamy, że szesnastkowym odpowiednikiem liczb 11 i 9 (dwóch wartości 4-bitowych) jest b9:
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
185 |
10111001 |
b9 |
224 |
11100000 |
e0 |
Dla ułatwienia czytelnikowi korzystania z trzech różnych notacji liczb, przedstawiamy w tabeli 5.3 zestawienie wartości dziesiętnych, dwójkowych i szesnastkowych.
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
0 |
0000 |
0 |
1 |
0001 |
1 |
2 |
0010 |
2 |
3 |
0011 |
3 |
4 |
0100 |
4 |
5 |
0101 |
5 |
6 |
0110 |
6 |
7 |
0111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
A |
11 |
1011 |
B |
12 |
1100 |
C |
13 |
1101 |
D |
14 |
1110 |
E |
15 |
1111 |
F |
16 |
0001 0000 |
10 |
17 |
0001 0001 |
11 |
18 |
0001 0010 |
12 |
19 |
0001 0011 |
13 |
20 |
0001 0100 |
14 |
21 |
0001 0101 |
15 |
22 |
0001 0110 |
16 |
23 |
0001 0111 |
17 |
24 |
0001 1000 |
18 |
25 |
0001 1001 |
19 |
26 |
0001 1010 |
1A |
27 |
0001 1011 |
1B |
28 |
0001 1100 |
1C |
29 |
0001 1101 |
1D |
30 |
0001 1110 |
1E |
31 |
0001 1111 |
1F |
32 |
0010 0000 |
20 |
33 |
0010 0001 |
21 |
34 |
0010 0010 |
22 |
35 |
0010 0011 |
23 |
36 |
0010 0100 |
24 |
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych (ciąg dalszy)
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
37 |
0010 0101 |
25 |
38 |
0010 0110 |
26 |
39 |
0010 0111 |
27 |
40 |
0010 1000 |
28 |
41 |
0010 1001 |
29 |
42 |
0010 1010 |
2A |
43 |
0010 1011 |
2B |
44 |
0010 1100 |
2C |
45 |
0010 1101 |
2D |
46 |
0010 1110 |
2E |
47 |
0010 1111 |
2F |
48 |
0011 0000 |
30 |
49 |
0011 0001 |
31 |
50 |
0011 0010 |
32 |
51 |
0011 0011 |
33 |
52 |
0011 0100 |
34 |
53 |
0011 0101 |
35 |
54 |
0011 0110 |
36 |
55 |
0011 0111 |
37 |
56 |
0011 1000 |
38 |
57 |
0011 1001 |
39 |
58 |
0011 1010 |
3A |
59 |
0011 1011 |
3B |
60 |
0011 1100 |
3C |
61 |
0011 1101 |
3D |
62 |
0011 1110 |
3E |
63 |
0011 1111 |
3F |
64 |
0100 0000 |
40 |
65 |
0100 0001 |
41 |
66 |
0100 0010 |
42 |
67 |
0100 0011 |
43 |
68 |
0100 0100 |
44 |
69 |
0100 0101 |
45 |
70 |
0100 0110 |
46 |
71 |
0100 0111 |
47 |
72 |
0100 1000 |
48 |
73 |
0100 1001 |
49 |
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych (ciąg dalszy)
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
74 |
0100 1010 |
4A |
75 |
0100 1011 |
4B |
76 |
0100 1100 |
4C |
77 |
0100 1101 |
4D |
78 |
0100 1110 |
4E |
79 |
0100 1111 |
4F |
80 |
0101 0000 |
50 |
81 |
0101 0001 |
51 |
82 |
0101 0010 |
52 |
83 |
0101 0011 |
53 |
84 |
0101 0100 |
54 |
85 |
0101 0101 |
55 |
86 |
0101 0110 |
56 |
87 |
0101 0111 |
57 |
88 |
0101 1000 |
58 |
89 |
0101 1001 |
59 |
90 |
0101 1010 |
5A |
91 |
0101 1011 |
5B |
92 |
0101 1100 |
5C |
93 |
0101 1101 |
5D |
94 |
0101 1110 |
5E |
95 |
0101 1111 |
5F |
96 |
0110 0000 |
60 |
97 |
0110 0001 |
61 |
98 |
0110 0010 |
62 |
99 |
0110 0011 |
63 |
100 |
0110 0100 |
64 |
101 |
0110 0101 |
65 |
102 |
0110 0110 |
66 |
103 |
0110 0111 |
67 |
104 |
0110 1000 |
68 |
105 |
0110 1001 |
69 |
106 |
0110 1010 |
6A |
107 |
0110 1011 |
6B |
108 |
0110 1100 |
6C |
109 |
0110 1101 |
6D |
110 |
0110 1110 |
6E |
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych (ciąg dalszy)
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
111 |
0110 1111 |
6F |
112 |
0111 0000 |
70 |
113 |
0111 0001 |
71 |
114 |
0111 0010 |
72 |
115 |
0111 0011 |
73 |
116 |
0111 0100 |
74 |
117 |
0111 0101 |
75 |
118 |
0111 0110 |
76 |
119 |
0111 0111 |
77 |
120 |
0111 1000 |
78 |
121 |
0111 1001 |
79 |
122 |
0111 1010 |
7A |
123 |
0111 1011 |
7B |
124 |
0111 1100 |
7C |
125 |
0111 1101 |
7D |
126 |
0111 1110 |
7E |
127 |
0111 1111 |
7F |
128 |
1000 0000 |
80 |
129 |
1000 0001 |
81 |
130 |
1000 0010 |
82 |
131 |
1000 0011 |
83 |
132 |
1000 0100 |
84 |
133 |
1000 0101 |
85 |
134 |
1000 0110 |
86 |
135 |
1000 0111 |
87 |
136 |
1000 1000 |
88 |
137 |
1000 1001 |
89 |
138 |
1000 1010 |
8A |
139 |
1000 1011 |
8B |
140 |
1000 1100 |
8C |
141 |
1000 1101 |
8D |
142 |
1000 1110 |
8E |
143 |
1000 1111 |
8F |
144 |
1001 0000 |
90 |
145 |
1001 0001 |
91 |
146 |
1001 0010 |
92 |
147 |
1001 0011 |
93 |
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych (ciąg dalszy)
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
148 |
1001 0100 |
94 |
149 |
1001 0101 |
95 |
150 |
1001 0110 |
96 |
151 |
1001 0111 |
97 |
152 |
1001 1000 |
98 |
153 |
1001 1001 |
99 |
154 |
1001 1010 |
9A |
155 |
1001 1011 |
9B |
156 |
1001 1100 |
9C |
157 |
1001 1101 |
9D |
158 |
1001 1110 |
9E |
159 |
1001 1111 |
9F |
160 |
1010 0000 |
A0 |
161 |
1010 0001 |
A1 |
162 |
1010 0010 |
A2 |
163 |
1010 0011 |
A3 |
164 |
1010 0100 |
A4 |
165 |
1010 0101 |
A5 |
166 |
1010 0110 |
A6 |
167 |
1010 0111 |
A7 |
168 |
1010 1000 |
A8 |
169 |
1010 1001 |
A9 |
170 |
1010 1010 |
AA |
171 |
1010 1011 |
aB |
172 |
1010 1100 |
aC |
173 |
1010 1101 |
aD |
174 |
1010 1110 |
aE |
175 |
1010 1111 |
aF |
176 |
1011 0000 |
B0 |
177 |
1011 0001 |
B1 |
178 |
1011 0010 |
B2 |
179 |
1011 0011 |
B3 |
180 |
1011 0100 |
B4 |
181 |
1011 0101 |
B5 |
182 |
1011 0110 |
B6 |
183 |
1011 0111 |
B7 |
184 |
1011 1000 |
B8 |
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych (ciąg dalszy)
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
185 |
1011 1001 |
B9 |
186 |
1011 1010 |
bA |
187 |
1011 1011 |
bB |
188 |
1011 1100 |
bC |
189 |
1011 1101 |
bD |
190 |
1011 1110 |
bE |
191 |
1011 1111 |
bF |
192 |
1100 0000 |
C0 |
193 |
1100 0001 |
C1 |
194 |
1100 0010 |
C2 |
195 |
1100 0011 |
C3 |
196 |
1100 0100 |
C4 |
197 |
1100 0101 |
C5 |
198 |
1100 0110 |
C6 |
199 |
1100 0111 |
C7 |
200 |
1100 1000 |
C8 |
201 |
1100 1001 |
C9 |
202 |
1100 1010 |
cA |
203 |
1100 1011 |
cB |
204 |
1100 1100 |
cC |
205 |
1100 1101 |
cD |
206 |
1100 1110 |
cE |
207 |
1100 1111 |
cF |
208 |
1101 0000 |
D0 |
209 |
1101 0001 |
D1 |
210 |
1101 0010 |
D2 |
211 |
1101 0011 |
D3 |
212 |
1101 0100 |
d4 |
213 |
1101 0101 |
d5 |
214 |
1101 0110 |
d6 |
215 |
1101 0111 |
D7 |
216 |
1101 1000 |
D8 |
217 |
1101 1001 |
D9 |
218 |
1101 1010 |
dA |
219 |
1101 1011 |
dB |
220 |
1101 1100 |
dC |
221 |
1101 1101 |
dD |
Tabela 5.3. Tablica konwersji liczb dziesiętnych, dwójkowych i szesnastkowych (ciąg dalszy)
Dziesiętnie |
Dwójkowo |
Szesnastkowo |
222 |
1101 1110 |
dE |
223 |
1101 1111 |
dF |
224 |
1110 0000 |
E0 |
225 |
1110 0001 |
E1 |
226 |
1110 0010 |
E2 |
227 |
1110 0011 |
E3 |
228 |
1110 0100 |
E4 |
229 |
1110 0101 |
E5 |
230 |
1110 0110 |
E6 |
231 |
1110 0111 |
E7 |
232 |
1110 1000 |
E8 |
233 |
1110 1001 |
E9 |
234 |
1110 1010 |
eA |
235 |
1110 1011 |
eB |
236 |
1110 1100 |
eC |
237 |
1110 1101 |
eD |
238 |
1110 1110 |
eE |
239 |
1110 1111 |
eF |
240 |
1111 0000 |
F0 |
241 |
1111 0001 |
F1 |
242 |
1111 0010 |
F2 |
243 |
1111 0011 |
F3 |
244 |
1111 0100 |
F4 |
245 |
1111 0101 |
F5 |
246 |
1111 0110 |
F6 |
247 |
1111 0111 |
F7 |
248 |
1111 1000 |
F8 |
249 |
1111 1001 |
F9 |
250 |
1111 1010 |
fA |
251 |
1111 1011 |
fB |
252 |
1111 1100 |
fC |
253 |
1111 1101 |
fD |
254 |
1111 1110 |
fE |
255 |
1111 1111 |
Ff |
Funkcje wydajnościowe protokołów
W celu osiągnięcia wysokiej wydajności usług sesji stosuje się różnorodne funkcje uzupełniające podstawowe mechanizmy protokołów. Najistotniejsze z nich wymieniamy poniżej.
MTU — największa jednostka przesyłania (Maximum Transmission Unit). Wartość MTU dla sieci to, określony w bajtach, największy dopuszczalny rozmiar ramki, która może być przesyłana między przyłączami sieciowymi. Dla najpopularniejszych sieci wynosi:
Ethernet = 1500
Token Ring = 4464
FDDI = 4352
ISDN = 576
SLIP = 1006
PPP = 1500
Uzgadnianie (handshaking). Procedura uzgadniania reguluje wymianę informacji w trakcie inicjowania sesji i prowadzi do określenia parametrów komunikacji między dwoma końcami połączenia.
Okna transmisji (windowing). Funkcja ta polega na uzgodnieniu przez węzły końcowe połączenia liczby pakietów pojedynczej transmisji. Liczbę tę określa się jako rozmiar okna transmisji. Gdy rozmiar okna przyjmie przykładową wartość 3, stacja źródłowa wysyłać będzie jednorazowo trzy segmenty danych, po czym rozpocznie oczekiwanie na potwierdzenie. Jego odbiór będzie sygnałem do wysłania kolejnych trzech pakietów itd.
Buforowanie (buffering). Wyposażenie sprzętowe sieci złożonych (routery itp.) wykorzystuje własną pamięć odbieranych komunikatów. Ich odbiór jest więc uwarunkowany wystarczającą ilością miejsca w tej pamięci. Przepełnienie bufora prowadzi do odrzucania pakietów.
Tłumienie źródła (source quenching). Uzupełnieniem buforowania jest tłumienie źródła, polegające na wysyłaniu odpowiednich komunikatów do węzła źródłowego w sytuacjach, gdy pojemność bufora stacji odbierającej zaczyna się wyczerpywać. W praktyce najczęściej dotyczy to routera wysyłającego komunikaty przekroczenia limitu czasowego (time-out), które sygnalizują nadającej stacji konieczność ograniczenia ilości przesyłanych danych do czasu ponownego opróżnienia buforów.
Wykrywanie błędów (error checking). Wykrywanie błędów realizowane jest zazwyczaj w sesjach połączeniowych. Polega na sprawdzeniu, czy zawartość odbieranych pakietów nie uległa zniekształceniu. Stosuje się w tym celu przede wszystkim tzw. sumy kontrolne (checksums). Stacja wysyłająca wylicza taką wartość i przesyła wraz z pakietem. Stacja odbierająca powtarza obliczenia i weryfikuje zgodność z odebraną wartością sumy kontrolnej. Warunkuje to dalsze przetwarzanie pakietu. Brak zgodności sumy kontrolnej odebranej i obliczonej powoduje przesłanie komunikatu nakazującego retransmisję pakietu.
Technologie sieciowe
Adresowanie MAC i kody producentów
Zgodnie z tym, o czym pisaliśmy już we wcześniejszych rozdziałach, adres MAC (adres kontroli dostępu do nośnika, media access control address) wykorzystywany jest w podwarstwie MAC warstwy łącza modelu OSI. Adres ten identyfikuje fizyczne przyłączenie sieciowe i zapisany jest w pamięci ROM. Adres każdego przyłącza musi być niepowtarzalny, zwłaszcza w zakresie sieci lokalnej. Adresy MAC grają istotną rolę również w komunikacji opartej na protokole IPX (patrz rozdział 2.). Adres MAC składa się z 6 bajtów (48 bitów), a jego podział jest następujący:
początkowe 24 bity to kod producenta,
końcowe 24 bity to niepowtarzalny numer seryjny, przypisany przez producenta.
Kod producenta to istotna dla hakera informacja i ważny element danych rozpoznania stacji docelowej. Na tej podstawie można m.in. określić, czy przyłącze będzie obsługiwać tryb pasywny, co pozwala na użycie ukrytego programu do przechwytywania pakietów. Nie bez znaczenia są informacje o różnorodnych parametrach komunikacji, jak tryb duplex czy typ nośnika.
Ethernet
Podczas analizy przechwyconych danych pomocna może być znajomość czterech formatów ramek sieci Ethernet (patrz rysunek 5.4).
Rysunek 5.4. Formaty ramek sieci Ethernet |
|
Znaczenie stosowanych w nich pól jest następujące.
Preambuła (Preamble). Pomaga w synchronizacji komunikacji między dwoma stacjami.
Adres docelowy (Destination Address). Adres stacji, dla której przeznaczona jest ramka.
Adres źródłowy (Source Address). Adres stacji wysyłającej.
Typ ramki (Frame Type). Określa typ danych ramki. Na tej podstawie wybierany jest moduł protokołu używany do ich przetwarzania. Zestawienie typów ramek przedstawiamy w tabeli 5.4.
Tabela 5.4. Tablica typów ramek Ethernet
Ethernet dziesiątkowo |
heksadecymalnie |
dziesiątkowo |
Ethernet ósemkowo |
Opis |
0000 |
0000-05DC |
— |
— |
IEEE802.3 Length Field |
0257 |
0101-01FF |
— |
— |
eksperymentalna |
0512 |
0200 |
512 |
1000 |
Xerox PUP |
0513 |
0201 |
— |
— |
PUP Address Translation |
|
0400 |
— |
— |
Nixdorf |
1536 |
0600 |
1536 |
3000 |
Xerox NS IDP |
|
0660 |
— |
— |
DLOG |
|
0661 |
— |
— |
DLOG |
2048 |
0800 |
513 |
1001 |
Internet IP (IPv4) |
2049 |
0801 |
— |
— |
X.75 Internet |
2050 |
0802 |
— |
— |
NBS Internet |
2051 |
0803 |
— |
— |
ECMA Internet |
2052 |
0804 |
— |
— |
Chaosnet |
2053 |
0805 |
— |
— |
X.25 Level 3 |
2054 |
0806 |
— |
— |
ARP |
2055 |
0807 |
— |
— |
XNS Compatibility |
2056 |
0808 |
— |
— |
Frame Relay ARP |
2076 |
081C |
— |
— |
Symbolics Private |
2184 |
0888 - 088A |
— |
— |
Xyplex |
2304 |
0900 |
— |
— |
Ungermann-Bass Net Debugger |
2560 |
0A00 |
— |
— |
Xerox IEEE802.3 PUP |
2561 |
0A01 |
— |
— |
PUP Address Translation |
2989 |
0BAD |
— |
— |
Banyan VINES |
2990 |
0BAE |
— |
— |
VINES Loopback |
2991 |
0BAF |
— |
— |
VINES Echo |
4096 |
1000 |
— |
— |
Berkeley Trailer nego |
Tabela 5.4. Tablica typów ramek Ethernet (ciąg dalszy)
Ethernet dziesiątkowo |
heksadecymalnie |
dziesiątkowo |
Ethernet ósemkowo |
Opis |
4097 |
1001-100F |
— |
— |
Berkeley Trailer encap/IP |
5632 |
1600 |
— |
— |
Valid Systems |
16962 |
4242 |
— |
— |
PCS Basic Block Protocol |
21000 |
5208 |
— |
— |
BBN Simnet |
24576 |
6000 |
— |
— |
DEC Unassigned (Exp.) |
24577 |
6001 |
— |
— |
DEC MOP Dump/Load |
24578 |
6002 |
— |
— |
DEC MOP Remote Console |
24579 |
6003 |
— |
— |
DEC DECNET Phase IV Route |
24580 |
6004 |
— |
— |
DEC Lat |
24581 |
6005 |
— |
— |
DEC Diagnostic Protocol |
24582 |
6006 |
— |
— |
DEC Customer Protocol |
24583 |
6007 |
— |
— |
DEC LAVC, SCA |
24584 |
6008 - 6009 |
— |
— |
DEC Unassigned |
24586 |
6010 - 6014 |
— |
— |
3Com Corporation |
25944 |
6558 |
— |
— |
Trans Ether Bridging |
25945 |
6559 |
— |
— |
Raw Frame Relay |
28672 |
7000 |
— |
— |
Ungermann-Bass download |
28674 |
7002 |
— |
— |
Ungermann-Bass dia/loop |
28704 |
7020 - 7029 |
— |
— |
LRT |
28720 |
7030 |
— |
— |
Proteon |
28724 |
7034 |
— |
— |
Cabletron |
32771 |
8003 |
— |
— |
Cronus VLN |
32772 |
8004 |
— |
— |
Cronus Direct |
32773 |
8005 |
— |
— |
HP Probe |
32774 |
8006 |
— |
— |
Nestar |
32776 |
8008 |
— |
— |
AT&T |
32784 |
8010 |
— |
— |
Excelan |
32787 |
8013 |
— |
— |
SGI Diagnostics |
32788 |
8014 |
— |
— |
SGI Network Games |
32789 |
8015 |
— |
— |
SGI Reserved |
32790 |
8016 |
— |
— |
SGI Bounce Server |
32793 |
8019 |
— |
— |
Apollo Domain |
32815 |
802E |
— |
— |
Tymshare |
32816 |
802F |
— |
— |
Tigan, Inc. |
32821 |
8035 |
— |
— |
Reverse ARP |
32822 |
8036 |
— |
— |
Aeonic Systems |
Tabela 5.4. Tablica typów ramek Ethernet (ciąg dalszy)
Ethernet dziesiątkowo |
heksadecymalnie |
dziesiątkowo |
Ethernet ósemkowo |
Opis |
32824 |
8038 |
— |
— |
DEC LANBridge |
32825 |
8039 - 803C |
— |
— |
DEC Unassigned |
32829 |
803D |
— |
— |
DEC Ethernet Encryption |
32830 |
803E |
— |
— |
DEC Unassigned |
32831 |
803F |
— |
— |
DEC LAN Traffic Monitor |
32832 |
8040 - 8042 |
— |
— |
DEC Unassigned |
32836 |
8044 |
— |
— |
Planning Research Corp. |
32838 |
8046 |
— |
— |
AT&T |
32839 |
8047 |
— |
— |
AT&T |
32841 |
8049 |
— |
— |
ExperData |
32859 |
805B |
— |
— |
Stanford V Kernel exp. |
32860 |
805C |
— |
— |
Stanford V Kernel prod. |
32861 |
805D |
— |
— |
Evans & Sutherland |
32864 |
8060 |
— |
— |
Little Machines |
32866 |
8062 |
— |
— |
Counterpoint Computers |
32869 |
8065 |
— |
— |
Univ. of Mass. @ Amherst |
32870 |
8066 |
— |
— |
Univ. of Mass. @ Amherst |
32871 |
8067 |
— |
— |
Veeco Integrated Auto. |
32872 |
8068 |
— |
— |
General Dynamics |
32873 |
8069 |
— |
— |
AT&T |
32874 |
806A |
— |
— |
Autophon |
32876 |
806C |
— |
— |
ComDesign |
32877 |
806D |
— |
— |
Computgraphic Corp. |
32878 |
806E - 8077 |
— |
— |
Landmark Graphics Corp. |
32890 |
807A |
— |
— |
Matra |
32891 |
807B |
— |
— |
Dansk Data Elektronik |
32892 |
807C |
— |
— |
Merit Internodal |
32893 |
807D - 807F |
— |
— |
Vitalink Communications |
32896 |
8080 |
— |
— |
Vitalink TransLAN III |
32897 |
8081 - 8083 |
— |
— |
Counterpoint Computers |
32923 |
809B |
— |
— |
Appletalk |
32924 |
809C - 809E |
— |
— |
Datability |
32927 |
809F |
— |
— |
Spider Systems Ltd. |
32931 |
80A3 |
— |
— |
Nixdorf Computers |
32932 |
80A4 - 80B3 |
— |
— |
Siemens Gammasonics, Inc. |
32960 |
80C0 - 80C3 |
— |
— |
DCA Data Exchange Cluster |
Tabela 5.4. Tablica typów ramek Ethernet (ciąg dalszy)
Ethernet dziesiątkowo |
heksadecymalnie |
dziesiątkowo |
Ethernet ósemkowo |
Opis |
32964 |
80C4 |
— |
— |
Banyan Systems |
32965 |
80C5 |
— |
— |
Banyan Systems |
32966 |
80C6 |
— |
— |
Pacer Software |
32967 |
80C7 |
— |
— |
Applitek Corporation |
32968 |
80C8 - 80CC |
— |
— |
Intergraph Corporation |
32973 |
80CD - 80CE |
— |
— |
Harris Corporation |
32975 |
80CF - 80D2 |
— |
— |
Taylor Instrument |
32979 |
80D3 - 80D4 |
— |
— |
Rosemount Corporation |
32981 |
80D5 |
— |
— |
IBM SNA Service on Ether |
32989 |
80DD |
— |
— |
Varian Associates |
32990 |
80DE - 80DF |
— |
— |
Integrated Solutions TRFS |
32992 |
80E0 - 80E3 |
— |
— |
Allen-Bradley |
32996 |
80E4 - 80F0 |
— |
— |
Datability |
33010 |
80F2 |
— |
— |
Retix |
33011 |
80F3 |
— |
— |
AppleTalk AARP (Kinetics) |
33012 |
80F4 - 80F5 |
— |
— |
Kinetics |
33015 |
80F7 |
— |
— |
Apollo Computer |
33023 |
80FF - 8103 |
— |
— |
Wellfleet Communications |
33031 |
8107 - 8109 |
— |
— |
Symbolics Private |
33072 |
8130 |
— |
— |
Hayes Microcomputers |
33073 |
8131 |
— |
— |
VG Laboratory Systems |
33074 |
8132 - 8136 |
— |
— |
Bridge Communications |
33079 |
8137 - 8138 |
— |
— |
Novell, Inc. |
33081 |
8139 - 813D |
— |
— |
KTI |
|
8148 |
— |
— |
Logicraft |
|
8149 |
— |
— |
Network Computing Devices |
|
814A |
— |
— |
Alpha Micro |
33100 |
814C |
— |
— |
SNMP |
|
814D |
— |
— |
BIIN |
|
814E |
— |
— |
BIIN |
|
814F |
— |
— |
Technically Elite Concept |
|
8150 |
— |
— |
Rational Corp |
|
8151 - 8153 |
— |
— |
Qualcomm |
|
815C - 815E |
— |
— |
Computer Protocol Pty Ltd |
|
8164 - 8166 |
— |
— |
Charles River Data System |
|
817D |
— |
— |
XTP |
Tabela 5.4. Tablica typów ramek Ethernet (ciąg dalszy)
Ethernet dziesiątkowo |
heksadecymalnie |
dziesiątkowo |
Ethernet ósemkowo |
Opis |
|
817E |
— |
— |
SGI/Time Warner prop. |
|
8180 |
— |
— |
HIPPI-FP encapsulation |
|
8181 |
— |
— |
STP, HIPPI-ST |
|
8182 |
— |
— |
Reserved for HIPPI-6400 |
|
8183 |
— |
— |
Reserved for HIPPI-6400 |
|
8184 - 818C |
— |
— |
Silicon Graphics prop. |
|
818D |
— |
— |
Motorola Computer |
|
819A - 81A3 |
— |
— |
Qualcomm |
|
81A4 |
— |
— |
ARAI Bunkichi |
|
81A5 - 81AE |
— |
— |
RAD Network Devices |
|
81B7 - 81B9 |
— |
— |
Xyplex |
|
81CC - 81D5 |
— |
— |
Apricot Computers |
|
81D6 - 81DD |
— |
— |
Artisoft |
|
81E6 - 81EF |
— |
— |
Polygon |
|
81F0 - 81F2 |
— |
— |
Comsat Labs |
|
81F3 - 81F5 |
— |
— |
SAIC |
|
81F6 - 81F8 |
— |
— |
VG Analytical |
|
8203 - 8205 |
— |
— |
Quantum Software |
|
8221 - 8222 |
— |
— |
Ascom Banking Systems |
|
823E - 8240 |
— |
— |
Advanced Encryption Systems |
|
827F - 8282 |
— |
— |
Athena Programming |
|
8263 - 826A |
— |
— |
Charles River Data System |
|
829A - 829B |
— |
— |
Inst Ind Info Tech |
|
829C - 82AB |
— |
— |
Taurus Controls |
|
82AC - 8693 |
— |
— |
Walker Richer & Quinn |
|
8694 - 869D |
— |
— |
Idea Courier |
|
869E - 86A1 |
— |
— |
Computer Network Tech |
|
86A3 - 86AC |
— |
— |
Gateway Communications |
|
86DB |
— |
— |
SECTRA |
|
86DE |
— |
— |
Delta Controls |
|
86DD |
— |
— |
IPv6 |
34543 |
86DF |
— |
— |
Atomic |
|
86E0 - 86EF |
— |
— |
Landis & Gyr Powers |
|
8700 - 8710 |
— |
— |
Motorola |
34667 |
876B |
— |
— |
TCP/IP Compression |
34668 |
876C |
— |
— |
IP Autonomous Systems |
Tabela 5.4. Tablica typów ramek Ethernet (ciąg dalszy)
Ethernet dziesiątkowo |
heksadecymalnie |
dziesiątkowo |
Ethernet ósemkowo |
Opis |
34669 |
876D |
— |
— |
Secure Data |
|
880B |
— |
— |
PPP |
|
8847 |
— |
— |
MPLS Unicast |
|
8848 |
— |
— |
MPLS Multicast |
|
8A96 - 8A97 |
— |
— |
Invisible Software |
36864 |
9000 |
— |
— |
Loopback |
36865 |
9001 |
— |
— |
3Com (Bridge) XNS Sys Mgmt |
36866 |
9002 |
— |
— |
3Com (Bridge) TCP-IP Sys |
36867 |
9003 |
— |
— |
3Com (Bridge) loop detect |
65280 |
FF00 |
— |
— |
BBN VITAL-LanBridge cache |
|
FF00 - FF0F |
— |
— |
ISC Bunker Ramo |
65535 |
FFFF |
— |
— |
Reserved |
Długość ramki (Frame Length). Decyduje o długości ramki danych.
DSAP — docelowy punkt dostępu do usługi (Destination Service Access Point). Określa protokół docelowy ramki.
SSAP — źródłowy punkt dostępu do usługi (Source Service Access Point). Określa protokół źródłowy ramki.
DSAP/SSAP AA. Sygnalizuje ramkę SNAP.
CTRL. Pole sterujące.
Typ sieci Ethernet (Ethernet Type). Decyduje o długości ramki danych.
Dane ramki (Frame Data). Właściwe dane przesyłane w ramce, odpowiadające typowi danych określonemu w polu typu ramki.
CRC. Pomaga wykrywać błędy transmisji. Stacja wysyłająca wylicza tę wartość na podstawie zawartości ramki, zgodność identycznych obliczeń przeprowadzonych przez stację odbierającą potwierdza udaną operację przesłania danych.
Zestawienie na rysunku 5.5 ukazuje powiązanie odmian sieci Ethernet z topologią, szybkością przesyłania danych, wielkością segmentu i typem nośnika. Podane informacje mogą być przydatne przy planowaniu okablowania sieci.
Rysunek 5.5. Podstawowe parametry okablowania różnych standardów sieci Ethernet |
|
Token Ring
Ramki sieci opartych na technologii Token Ring można rozpoznać za pomocą schematów na rysunku 5.6 (format ramki żetonu) oraz 5.7 (format ramki danych i poleceń).
Rysunek 5.6. Budowa żetonu |
|
Ramka zawierająca żeton składa się z pola znacznika początku ramki, bajtu kontroli dostępu oraz pola znacznika końca ramki.
Znacznik początku ramki. Sygnalizuje każdemu interfejsowi nadejście ramki żetonu.
Bajt kontroli dostępu. Zawiera priorytet dostępu związany z żetonem:
000 normalny priorytet,
001 normalny priorytet,
010 normalny priorytet,
011 normalny priorytet,
100 most/router,
101 zarezerwowane (IBM),
110 zarezerwowane (IBM),
111 zarządzanie stacją.
Znacznik końca ramki. Sygnalizuje koniec żetonu, ramki danych lub polecenia.
Rysunek 6.7. Budowa ramki danych i poleceń |
|
Ramka danych i poleceń jest zbudowana z dziewięciu pól, zdefiniowanych według następującej listy.
Znacznik początku ramki. Sygnalizuje każdemu interfejsowi nadejście ramki żetonu.
Bajt kontroli dostępu. Zawiera priorytet dostępu związany z żetonem:
000 normalny priorytet,
001 normalny priorytet,
010 normalny priorytet,
011 normalny priorytet,
100 most/router,
101 zarezerwowane (IBM),
110 zarezerwowane (IBM),
111 zarządzanie stacją.
Znacznik kontrolny. Określa, czy w ramce transportowane są dane, czy też informacje kontrolne.
Adres docelowy. 6-bajtowy adres interfejsu sieciowego odbiorcy ramki.
Adres źródłowy. 6-bajtowy adres interfejsu sieciowego nadawcy ramki.
Dane. Zawiera dane przeznaczone do przetworzenia przez odbiorcę.
Sekwencja kontrolna (FCS — Frame Check Sequence) . Podobnie jak CRC służy do detekcji błędów w przesyłanych ramkach. FCS jest obliczane podczas formowania ramki, po raz drugi zaś przy jej odbieraniu. Jeśli obie wartości się nie zgadzają — ramka zostaje wyeliminowana.
Znacznik końca ramki. Sygnalizuje koniec ramki danych lub polecenia.
Status ramki. Jednobajtowe pole zawierające znaczniki sygnalizujące zakończenie ramki, rozpoznany adres oraz skopiowanie ramki.
Sieci Token Ring i mostkowanie trasy nadawcy
Znajomość konstrukcji ramek SRB (source route bridging) umożliwia uzyskanie istotnych informacji o trasach w rozpoznawanej sieci. Pojęcie „trasa nadawcy” odnosi się do wstępnego określania przez stację źródłową optymalnej trasy do stacji docelowej. Przebieg takiej procedury najlepiej zilustruje przykład (patrz rysunek 5.8).
Załóżmy, że stacja A ma wstępnie wybrać optymalną trasę do stacji B. Wykonywane są następujące kroki.
Stacja A rozpoczyna od rozesłania „ramki próbnej” w lokalnym pierścieniu 0x25. Prowadzi to do ustalenia, czy stacja B znajduje się w segmencie lokalnym.
Rysunek 5.8. Mostkowanie trasy nadawcy |
|
Stacja A rozsyła „ramkę eksploracyjną”, której celem jest odnalezienie stacji B (charakterystyczna dla ramki jest wartość pierwszego bitu adresu MAC lub bitu multiemisji ustawiona na 1). Ramka taka przekazywana jest przez każdy most. Na podstawie wszystkich odebranych kopii „ramek eksploracyjnych” stacja B buduje ramkę, w której zapisane zostają wszystkie trasy od stacji A.
Stacja A otrzymuje od stacji B informację o dwu dostępnych trasach:
pierścień 0x25 — most 0xA — pierścień 0x26 — most 0xB — pierścień 0x27 — stacja B,
pierścień 0x25 — most 0xC — pierścień 0x28 — most 0xD — pierścień 0x27 — stacja B.
Właściwa komunikacja między stacjami rozpoczyna się, gdy stacja A pozna trasę do stacji B — najczęściej wybierana jest bowiem trasa, o której informacja otrzymana zostanie jako pierwsza. W naszym przykładzie wybraną trasą może być trasa pierwsza: pierścień 0x25 — most 0xA — pierścień 0x26 — most 0xB — pierścień 0x27 — stacja B.
Przyjrzyjmy się teraz bliżej dwóm najistotniejszym polom ramki MAC 802.5 (patrz rysunek 5.9).
Rysunek 5.9. Format ramki MAC 802.5 SRB |
|
RII — sygnał danych trasy (Route Information Indicator) . Jeżeli bit RII ma wartość 1, to ramka kierowana jest do innej sieci i zawiera informację o trasie w polu RIF.
RIF — pole danych trasy (Route Information Field). W tym polu umieszczana jest informacja o trasie, którą ramka kierowana jest do stacji docelowej. Przyjrzymy się bliżej jego składnikom pod kątem naszego przykładu (patrz rysunek 5.10).
Rysunek 5.10. Pole RIF |
|
Na pole danych trasy RIF składają się dane sterujące oraz trzy deskryptory trasy.
Dane sterujące (Routing Control). Dane te dzielą się na pięć segmentów (patrz rysunek 5.11).
Rysunek 5.11. Segmenty danych sterujących |
|
Typ (Type). Sygnalizuje jeden z trzech typów trasy:
000: trasa określona (jak w naszym przykładzie),
110: rozgłoszenie na jednej trasie/w drzewie częściowym (jak na przykład wykorzystywane przez NetBIOS); przekazywane wyłącznie przez mosty w lokalnym drzewie częściowym,
100: rozgłoszenie na wszystkich trasach (jak na przykład wykorzystywane przez NSA, Agencję Bezpieczeństwa Narodowego USA); przekazywane zawsze.
Długość (Length). Całkowita wielkość pola RIF (od 2 do 18).
Kierunek (Direction). Określa, czy pole RIF należy odczytywać od lewej do prawej (0), czy od prawej do lewej (1).
MTU. Określa wartość MTU odpowiednio do wymagań węzłów ścieżki pakietu:
000- 516 lub niższa
001- 1500 (Ethernet)
010- 2052
011- 4472 (Token Ring)
100- 8144
101- 11407
110- 17800
111: ramki rozgłaszania
Deskryptor trasy. Pole złożone z numeru pierścienia i numeru mostu.
Możemy teraz wyznaczyć zawartość pola RIF dla ramek przesyłanych w przedstawionym przykładzie. Doszliśmy wcześniej do momentu, gdy stacja A zna trasę do stacji B i rozpoczyna komunikację, korzystając z trasy (patrz rysunek 5.12).
stacja A — (pierścień 0x25 — most 0xA) — (pierścień 0x26 — most 0xB)
— (pierścień 0x27) — stacja B
Trzy wyróżnione nawiasami bloki odpowiadają tutaj trzem polom deskryptorów trasy w polu RIF.
Rysunek 5.12. Przykładowa sieć |
|
Pełne obliczenia zawartości pola RIF przestawia rysunek 5.13.
Rysunek 5.13. Obliczanie wartości pola RIF |
|
Z przeprowadzonej analizy wynika, że gdy stacja A przesyła dane do stacji B, korzystając z trasy stacja A — (pierścień 0x25 — most 0xA) — (pierścień 0x26 — most 0xB) — (pierścień 0x27) — stacja B, pole RIF zawierać będzie wartości:
0830.025A.026B.0270
Sieci Token Ring
i translacyjne mostkowanie trasy nadawcy
Mechanizm SR/TLB (source route translational bridging) umożliwia sieciom złożonym łączenie za pośrednictwem mostów segmentów bazujących na różnych nośnikach. Skrót SR sygnalizuje tutaj mostkowanie trasy nadawcy (sieci Token Ring), a TLB
— mostkowanie „przezroczyste” (niewidoczne, jak w sieciach Ethernet). Połączenie tych technologii w jeden protokół mostkowania prowadzi do realizacji mostkowania translacyjnego. Przykładowo ramka zawierająca pole RIF wymusi na moście wybranie trasy nadawcy, ale inne czynności zostaną podjęte w przypadku ramki pozbawionej tego pola.
Istotnym utrudnieniem w takich układach jest to, że sieci Token Ring i Ethernet w różny sposób zapisują 48-bitowe adresy MAC. Ogólnie rzecz ujmując, w sieci Ethernet bity adresu zapisywane są w każdym bajcie od lewej do prawej, w porządku kanonicznym, podczas gdy w sieci Token Ring poszczególne bajty zapisuje się od prawej do lewej, co określa się jako porządek niekanoniczny.
Aby lepiej wyjaśnić tę prostą konwersję, podzielimy ją na kilka kroków.
Przyjmijmy, że docelowa stacja B ma ethernetowy adres MAC (0000.25b8.cbc4). Stacja A przesyła ramkę do stacji B (patrz rysunek 5.14). Jaką wartość docelowego adresu MAC przechwyci ukryty szperacz sieciowy (sniffer), pracujący w pierścieniu 0x25?
Rysunek 5.14. Przykładowa sieć wykorzystująca mechanizm SR/TLB |
|
Translacja uporządkowania bitów w takiej sytuacji jest dość prosta. Przyjrzyjmy się uważnie adresowi MAC stacji B, w jego ethernetowej postaci, zwłaszcza zapisanej w systemie dwójkowym (patrz rysunek 5.15).
Rysunek 5.15. Krok 2. — konwersja adresu MAC stacji B na postać dwójkową |
|
Mamy sześć bajtów, które odwracamy teraz, niezależnie od siebie, wprowadzając kolejność niekanoniczną (patrz rysunek 5.16).
Rysunek 5.16.
Krok 3. |
|
Zamieniamy bajty na postać szesnastkową (patrz rysunek 5.17).
Rysunek 5.17.
Krok 4. |
|
Gotowe! Jeżeli ethernetowy MAC adres stacji B to 0000.25b8.cbc4, a stacja A przesyła dane do stacji B, to szperacz pracujący w pierścieniu Token Ring przechwyci adres stacji B jako 0000.a41d.d323.
Rekapitulując:
adres MAC stacji B w segmencie Ethernet (szesnastkowo): 0000.25b8.cbc4
adres MAC stacji B w segmencie Ethernet (postać dwójkowa adresu z kroku 1.):
00000000.00000000.00100101.10111000.11001011.11000100
Adres MAC stacji B w segmencie Token Ring (wartość z kroku 2., niekanoniczna kolejność bitów):
00000000.00000000.10100100.00011101.11010011.00100011
Adres MAC stacji B w segmencie Token Ring (postać szesnastkowa adresu z kroku 3.): 0000.a41d.d323.
Sieci FDDI
Architektura sieci FDDI (Fiber Distributed Data Interface, łącze danych sieci światłowodowych) opiera się na dwóch pierścieniach, gdzie każda ze stacji przyłączona jest do obu pierścieni. Kierunek przekazywania żetonu w pierwszym pierścieniu jest przeciwny do kierunku przekazywania żetonu w drugim pierścieniu. Każda stacja wyposażona jest w dwa porty A i B, z których tylko jeden jest w danej chwili aktywny. Dostęp do nośnika opiera się na zasadach niemal identycznych z siecią Token Ring. Stacja gotowa do transmisji przejmuje żeton i wysyła dane w postaci ramek FDDI (patrz rysunek 5.18). Znaczenie pól formatu ramek FDDI jest następujące.
Rysunek 5.18. Format ramki FDDI |
|
Preambuła (Preamble). Sekwencja przygotowująca stację do odebrania ramki.
Ogranicznik początkowy (Start Delimiter). Informuje o dotarciu żetonu do stacji.
Sygnał danych sterujących (Frame Control). Określa, czy ramka zawiera dane, czy informacje sterujące.
Adres docelowy (Destination Address). Sześciobajtowe pole adresu węzła docelowego.
Adres źródłowy (Source Address). Sześciobajtowe pole adresu węzła źródłowego.
Dane. Zawiera transmitowane dane, przeznaczone do przetwarzania przez stację odbierającą.
Sekwencja kontrolna ramki (Frame Check Sequence, FCS). Podobnie jak w przypadku stosowania mechanizmu CRC, stacja źródłowa oblicza na podstawie zawartości ramki pewną wartość kontrolną. Stacja odbierająca wylicza tę wartość ponownie. W przypadku braku zgodności sekwencji FCS, ramka jest odrzucana.
Ogranicznik końcowy (End Delimiter). Sygnalizuje koniec ramki.
Sygnał stanu ramki (Frame Status). Informuje o wystąpieniu błędów i podaje, czy stacja odbierająca skopiowała ramkę.
Komunikacja FDDI korzysta z symboli alokowanych w 5-bitowych sekwencjach. Tworzą one, w połączeniu z kolejnym symbolem, jeden bajt. Jest to specyficzna sekwencja kodowania, na którą składa się 16 symboli danych, 8 symboli sterujących oraz 8 symboli naruszenia (patrz tabela 6.5).
Tabela 5.5. Symbole sekwencji kodowania FDDI
Symbol |
Kodowanie |
|
Symbole danych |
|
|
0 (dwójkowo 0000) |
11110 |
|
1 (dwójkowo 0001) |
01001 |
|
2 (dwójkowo 0010) |
10100 |
|
3 (dwójkowo 0011) |
10101 |
|
4 (dwójkowo 0100) |
01010 |
|
5 (dwójkowo 0101) |
01011 |
|
6 (dwójkowo 0110) |
01110 |
|
7 (dwójkowo 0111) |
01111 |
|
8 (dwójkowo 1000) |
10010 |
|
9 (dwójkowo 1001) |
10011 |
|
A (dwójkowo 1010) |
10110 |
|
B (dwójkowo 1011) |
10111 |
|
C (dwójkowo 1100) |
11010 |
|
D (dwójkowo 1101) |
11011 |
|
E (dwójkowo 1110) |
11100 |
|
F (dwójkowo 1111) |
11101 |
|
Symbole sterujące |
||
Q |
00000 |
|
H |
00100 |
|
I |
11111 |
|
J |
11000 |
|
K |
10001 |
|
T |
01101 |
|
R |
00111 |
|
S |
11001 |
|
Symbole naruszenia |
||
V lub H |
00001 |
|
V lub H |
00010 |
|
V |
00011 |
|
V |
00101 |
|
V |
00110 |
|
V lub H |
01000 |
|
V |
01100 |
|
V lub H |
10000 |
Protokoły wybierania tras
Na kolejnych kilku stronach przedstawimy jedynie krótki przegląd specyfikacji i dostarczymy podstawowych informacji pomocnych przy analizowaniu przechwyconych z sieci danych oraz pogłębianiu wiedzy o ośrodku rozpoznawanym w trakcie analizy zabezpieczeń.
Protokoły wektorowo-odległościowe
i protokoły stanów przyłączy
Podstawowe różnice między protokołami wybierania tras wektorowo-odległościowymi a protokołami stanów przyłączy przedstawione zostały na rysunku 5.19.
Rysunek 5.19. Porównanie protokołów wybierania tras |
|
Krótko mówiąc, protokoły wektorowo-odległościowe charakteryzuje przesyłanie pełnej tabeli tras w stałych, określanych najczęściej w sekundach, odstępach czasu. Ścieżki wyznaczane są w oparciu o liczbę przeskoków (przeskok następuje za każdym razem, gdy pakiet zostaje odebrany przez kolejny router), interpretowaną jako odległość między stacjami. Nie jest stosowany mechanizm identyfikacji sąsiadów. Protokoły tego rodzaju wyróżniają się również wysoką konwergencją.
W przypadku protokołów stanów przyłączy przesyłane są jedynie częściowe uaktualnienia tabel tras, a wymiana danych następuje tylko wtedy, gdy jest to wymagane (zmienia się stan przyłącza). Ścieżki wyznaczane są na bazie znacznie bardziej rozbudowanego algorytmu Dijkstry — wyszukiwana, a następnie wybierana jest trasa najlepsza lub najkrótsza. Przykładem ilustrującym korzyści z jego wprowadzenia może być sytuacja, gdy stosowane jest komutowane wąskopasmowe łącze telefoniczne (tylko jeden przeskok), jak również o szerszym paśmie łącza dzierżawione, implikujące zazwyczaj minimum 2 - 3 przeskoki. Protokół wektorowo-odległościowy może uznać komutowane łącze telefoniczne za najlepsze, bo wymagające pojedynczego przeskoku. Protokół stanów przyłączy wybierze łącze dzierżawione o szerszym paśmie unikając przeciążeń i w konsekwencji zapewniając szybsze przesyłanie danych.
Na rysunku 5.20 przedstawione zostało zestawienie najpopularniejszych protokołów wybierania tras i ich krótkie opisy.
Rysunek 5.20. Pięć najpopularniejszych protokołów wybierania tras |
|
Odległość administracyjna
Odległość administracyjna (administrative distance) to mechanizm pozwalający na dokonanie wyboru pomiędzy dostępnymi trasami do sieci docelowej. Odległości najmniejszej odpowiada najwyższy priorytet.
Trasa |
Odległość administracyjna |
Przyłącze własne |
0 |
Trasa statyczna |
1 |
EIGRP Summary |
5 |
EBGP |
20 |
EIGRP Internal |
90 |
IGRP |
100 |
OSPF |
110 |
IS-IS |
115 |
RIP |
120 |
EGP |
140 |
EIGRP External |
170 |
IBGP |
200 |
Metody zapobiegania powstawaniu pętli
Jedną z głównych przesłanek stosowania protokołów wybierania tras jest potrzeba zapewnienia szybkiej konwergencji, czyli stanu, kiedy stan tabel tras wszystkich routerów jest zgodny i nie ma możliwości wystąpienia zjawiska pętli. Poniższa lista jest zestawieniem najistotniejszych mechanizmów zapobiegających zapętlaniu tras.
Podział horyzontu. Uaktualnienia nie są odsyłane do przyłącza, z którego zostały otrzymane.
Odtrutka. Uaktualnienia są odsyłane do przyłącza z którego zostały otrzymane, ale odebrane wcześniej trasy zostają oznaczone jako niedostępne.
Naliczanie do nieskończoności. Określenie największej dopuszczalnej liczby przeskoków a więc liczby przyłączy, które mogą pośredniczyć w przesyłaniu pakietu.
Liczniki wstrzymania aktualizacji. Kiedy stan łącza ulega zmianie (łącze zostaje wyłączone), wprowadzany jest okres opóźnienia przed ogłoszeniem przez router awarii trasy.
Uaktualnienia na żądanie. Kiedy topologia łączy ulega zmianie (uaktywniane jest nowe łącze), uaktualnienie może zostać ogłoszone natychmiast.
Protokół RIP
W podstawowej wersji protokół RIP (Routing Information Protocol, protokół informowania o trasach) jest protokołem, którego funkcjonowanie oparte jest na klasach sieci. W wersji 2 wprowadzona została możliwość pracy bezklasowej. Formaty pakietów RIP przedstawiają rysunki 5.21 (wersja pierwsza) i 5.22 (wersja druga).
Rysunek 5.21. Format pakietu RIP |
|
Rysunek 5.22.
Format pakietu |
|
Znaczenie pól jest następujące.
Polecenie (Command). Określa, czy pakiet jest żądaniem, czy odpowiedzią na żądanie.
Numer wersji (Version Number). Stosowana wersja protokołu RIP.
Identyfikator rodziny adresów (AFI, Address Family Identifier). Sygnalizuje typ stosowanego adresu:
1 |
IP (IPv4) |
2 |
IP6 (IPv6) |
3 |
NSAP |
4 |
HDLC (8-bitowy wielopunktowy) |
5 |
BBN 1822 |
6 |
802 (zawiera wszystkie nośniki typu 802) |
7 |
E.163 |
8 |
E.164 (SMDS, Frame Relay, ATM) |
9 |
F.69 (Telex) |
10 |
X.121 (X.25, Frame Relay) |
11 |
IPX |
12 |
Appletalk |
13 |
Decnet IV |
14 |
Banyan Vines |
Znacznik trasy (Route Tag). Określa, czy trasa jest trasą wewnętrzną, czy zewnętrzną.
Adres wpisu (Entry Address). Adres IP wpisu.
Maska podsieci (Subnet mask). Maska podsieci IP wpisu.
Następny przeskok (Next Hop). Adres IP routera kolejnego przeskoku.
Miernik (Metric). Liczba przeskoków do sieci docelowej.
Protokół IGRP
Protokół IGRP (Interior Gateway Routing Protocol, protokół bram wewnętrznych) opracowany został przez firmę Cisco jako protokół wektorowo-odległościowy, wykorzystywany w routingu wewnątrz systemu autonomicznego. Późniejsze połączenie technologii wektorowo-odległościowej i stanów przyłączy zaowocowało wprowadzeniem rozszerzonej wersji protokołu EIGRP (Enhanced Interior Gateway Routing Protocol). Formaty pakietów przedstawiamy na rysunkach 5.23 (IGRP) i 5.24 (EIGRP).
Rysunek 5.23. Format pakietu IGRP |
|
Rysunek 5.24. Format pakietu EIGRP |
|
Znaczenie pól jest następujące.
Numer wersji (Version Number). Stosowana wersja protokołu.
Kod operacji (OC, Operation Code). Określa czy pakiet jest żądaniem, czy aktualizacją.
AS (Autonomous System, system autonomiczny). Numer systemu autonomicznego.
AS — podsieci (AS Subnets). Informacja o podsieciach na zewnątrz danego systemu autonomicznego.
AS — sieci (AS Nets). Informacja o liczbie i sieciach na zewnątrz danego systemu autonomicznego.
Suma kontrolna (Checksum). Obliczana według standardowego algorytmu UDP.
Protokół RTMP sieci Appletalk
Funkcjonujący jako protokół warstwy transportu, stosowany w sieciach Appletalk RTMP (Routing Table Maintenance Protocol, protokół zarządzania tabelami tras) opracowany został jako protokół wektorowo-odległościowy zapewniający informowanie routerów lokalnych o dostępności sieci. Format pakietu RTMP przedstawiamy na rysunku 5.25, a opisy pól poniżej.
Rysunek 5.25. Format pakietu RTMP |
|
Sieć routera (RN, Router's Network). Określa sieć, w której pracuje router.
Długość ID (IDL, ID Length). Określa długość identyfikatora węzła.
ID węzła (NID, Node ID). Identyfikator węzła.
Początek zakresu 1 (Start Range 1). Początek zakresu sieci 1.
Odległość (Distance). Odległość sieci.
Koniec zakresu 1 (End Range 1). Koniec zakresu sieci 1.
Protokół OSPF
Protokół stanów przyłączy OSPF (Open Shortest Path First, protokół wybierania najkrótszej ścieżki) jest normą przemysłową i zalicza się do grupy bogatych w funkcje zaawansowane protokołów bram wewnętrznych. Format pakietu przedstawia rysunek 5.26, pola opisujemy poniżej.
Rysunek 5.26. Format pakietu OSPF |
|
Maska (Mask). Maska sieci przyłącza.
Interwał (Interval). Odstęp czasowy między kolejnymi pakietami Hello, w sekundach.
Opcje (Opt). Opcjonalne funkcje routera.
Priorytet (Priority). Priorytet routera. Wartość 0 uniemożliwia wybranie routera jako wyróżnionego.
Interwał nieaktywności (Dead Interval). Limit czasowy nieaktywności routera, w sekundach.
DR (Designated Router). Informacja o wyróżnionym routerze sieci.
BDR (Backup Designated Router). Informacja o zastępcy wyróżnionego routera sieci.
Sąsiad (Neighbor). Identyfikatory routerów mających brać udział w transmisjach pakietów Hello.
Ważne polecenia
Informacje zawarte w tej części książki są bardzo ważne dla każdego, kto chce się uważać za „wtajemniczonego”. Zajmiemy się w niej bowiem omówieniem ważniejszych poleceń systemu operacyjnego MS DOS.
Na początek zapamiętaj, drogi Czytelniku, że każdy system operacyjny jest swego rodzaju tłumaczem, pośredniczącym między użytkownikiem i programami użytkowymi a komputerem. System operacyjny wraz z programami systemowymi i użytkowymi umożliwia komunikację z różnymi urządzeniami i wydawanie im poleceń (na przykład pamięciom dyskowym, drukarkom itp.) oraz wprowadzanie danych i zarządzanie nimi. Najpopularniejsze systemy operacyjne (z serii MS Windows 3.xx oraz 9x) są, prawdę mówiąc, nakładkami graficznymi na MS DOS. Oznacza to, że DOS pomaga zarządzać danymi i programami. Kiedy DOS zostanie już uruchomiony, możliwe jest uaktywnienie interfejsu graficznego (GUI — Graphical User Interface) w Windows, pomagającego sprawniej uruchamiać i wykorzystywać programy oraz zarządzać peryferiami.
|
Lista komend w tej części książki jest oparta o moją pracę, wykonaną ponad 10 lat temu dla społeczności „podziemia” i udostępnioną tylko bardzo wąskiej grupie ludzi. Należy zwrócić uwagę na fakt, iż od tego czasu wiele z tych poleceń zostało zablokowanych lub usuniętych i z tego powodu nie są kompatybilne z rożnymi wersjami interfejsów użytkownika GUI systemów operacyjnych. |
Opcje poleceń zawierają między innymi określenia, które wyjaśniamy poniżej.
Dysk — odpowiada napędowi dyskowemu.
Ścieżka — odpowiada nazwie katalogu.
Nazwa_pliku — odpowiada nazwie pliku wraz z rozszerzeniem.
Pełna_nazwa_pliku — odpowiada nazwie pliku wraz z ścieżką dostępu.
Przełączniki — odpowiadają dodatkowym opcjom komend DOS — przełączniki rozpoczynają się od ukośnika (/).
Argumenty — pozwalają podać dokładniejsze dane poleceniom DOS w postaci ciągów znaków.
Ciąg_znaków — pojedyncza grupa znaków: liter, cyfr, spacji i innych znaków.
Elementy w nawiasach kwadratowych ([]) — w nawiasach kwadratowych znajdują się parametry opcjonalne (nawiasów oczywiście nie należy pisać!).
Wielokropek (...) — oznacza, że podany element można powtarzać wielokrotnie.
append
Ustawia ścieżkę wyszukiwania dla plików.
Składnia:
Pierwsze użycie:
append [/x] [/e]
Określenie listy katalogów ścieżki wyszukiwania:
append [dysk:]ścieżka [;[dysk:][ścieżka]...]
Wyświetlenie obecnie używanej ścieżki wyszukiwania:
append
Wyczyszczenie ścieżki wyszukiwania:
append ;
Komentarz:
Polecenie append akceptuje przełączniki tylko podczas pierwszego uruchomienia. Omawiamy je poniżej.
/x — rozszerza ścieżkę wyszukiwania również dla plików innych niż wykonywalne. DOS przeszukuje bieżący katalog w poszukiwaniu pliku. Jeśli plik nie zostanie znaleziony w tym katalogu, DOS zacznie przeszukiwać kolejno katalogi znajdujące się w ścieżce wyszukiwania. Jeżeli i w tym przypadku plik nie zostanie znaleziony, jego poszukiwanie jest przerywane. DOS nie będzie w trakcie szukania pliku przeszukiwał pełnego drzewa katalogów.
/e — powoduje, że dodane do ścieżki wyszukiwania katalogi będą przechowywane w zmiennej otoczenia.
Można oczywiście wyspecyfikować większą liczbę katalogów do przeszukiwania, rozdzielając je średnikiem (;). Powtórne użycie polecenia append powoduje usunięcie poprzedniej ścieżki wyszukiwania i zastąpienie jej nową. Użycie polecenia bez parametrów spowoduje wyświetlenie bieżącej ścieżki wyszukiwania, natomiast z pojedynczym parametrem (;) — ustawienie zerowej ścieżki wyszukiwania, co oznacza, że DOS będzie w poszukiwaniu plików przeszukiwał jedynie bieżący katalog.
Uwagi:
Możliwe jest użycie polecenia append również dla ścieżek sieciowych.
Jeżeli używane jest polecenie assign, musi ono występować po poleceniu append.
Aby ustawić ścieżkę wyszukiwania dla poleceń i programów zewnętrznych, należy użyć polecenia path.
Przykład:
Załóżmy, że chcemy mieć bezpośredni dostęp do plików w katalogu listy (położonym na dysku B) oraz w katalogu raporty (na dysku A). Aby utworzyć taką ścieżkę wyszukiwania, należy wykonać polecenie:
append b:\listy;a:\raporty
assign
Polecenie assign przypisuje literę dysku innemu dyskowi.
Składnia:
assign [x[=]y[...]]
Gdzie x jest bieżącą literą dysku, którą chcemy przypisać literze y.
Komentarz:
Polecenie assign pozwala aplikacjom, które potrafią obsługiwać tylko dwa dyski (A i B), odczytywać i zapisywać inne dyski. Nie można przypisać dysku będącego w użyciu, tak samo jak nie można przypisać niezdefiniowanego dysku. Należy pamiętać, by nie używać dwukropka (:) w zapisie liter dysków x i y.
Przykład:
Aby przywrócić domyślne przypisania dysków do liter, należy użyć komendy assign bez parametrów:
assign
attrib
Polecenie attrib wyświetla lub zmienia atrybuty wybranych plików.
Składnia:
attrib [+-r] [+-a] [dysk:]ścieżka [/s]
gdzie:
+r — ustawia atrybut „tylko do odczytu”,
-r — usuwa atrybut „tylko do odczytu”,
+a — ustawia atrybut „do archiwizacji”,
-a — usuwa atrybut „do archiwizacji”.
Komentarz:
Polecenie attrib służy do ustawiania i wyłączania atrybutów „tylko do odczytu” oraz „do archiwizacji”. Możliwe jest użycie symboli globalnych (*) oraz (?) do oznaczenia grupy plików. Attrib nie przyjmuje nazwy katalogu zamiast nazwy pliku. Litera dysku oraz ścieżka dostępu określają położenie pliku lub plików. Przełącznik /s powoduje, że attrib będzie również zagłębiał się rekursywnie w podkatalogi wyspecyfikowanej ścieżki dostępu.
Polecenia backup, restore oraz xcopy używają atrybutu „do archiwizacji” jako mechanizmu kontrolnego. Można na przykład za pomocą atrybutów +a i -a wybrać te pliki, które zostaną poddane archiwizacji przy użyciu backup /m lub też skopiowaniu przez xcopy /m lub xcopy /a.
Przykład:
Aby wyświetlić atrybuty pliku report, znajdującego się w bieżącym katalogu, wystarczy wydać polecenie:
attrib report
backup
Polecenie backup służy do wykonywania kopii zapasowych jednego lub wielu plików na innym dysku.
Składnia:
backup [dysk1:] [ścieżka]nazwa_pliku [dysk2:] [/s] [/m] [/a] [/f] [/d:data] [/t:czas] [/L:[dysk:] [ścieżka]nazwa_pliku]
gdzie dysk1 oznacza dysk, którego kopia zapasowa ma zostać wykonana, natomiast dysk2 oznacza dysk, na którym kopia ma zostać umieszczona.
Komentarz:
Komenda backup może służyć do wykonywania kopii zapasowych plików na różnych urządzeniach (dyskach twardych, stacjach dyskietek). Backup potrafi również wykonywać kopie zapasowe dyskietki jedna na drugą, nawet gdy różnią się one ilością sektorów czy używanych stron. Opcje programu opisujemy poniżej.
/s — działanie programu zostanie rozszerzone również na podkatalogi.
/m — wykonuje kopię zapasową jedynie tych plików, które zmieniły się od ostatniego zarchiwizowania (tzn. tych, które mają ustawiony atrybut „do archiwizacji”).
/a — dodaje pliki do już znajdujących się na dysku.
/f — powoduje uprzednie sformatowanie dysku, na którym ma zostać umieszczona kopia zapasowa.
/d:data — zarchiwizowane zostaną tylko te pliki, których data ostatniej modyfikacji jest równa lub późniejsza, niż data.
/L:nazwa_pliku — powoduje zapisanie informacji o utworzonej kopii zapasowej w pliku nazwa_pliku.
Przykład:
Aby wykonać kopię zapasową wszystkich plików znajdujących się w katalogu c:\listy \radek na czystą sformatowaną dyskietkę znajdującą się w napędzie A, należy wykonać polecenie:
backup c:\listy\radek a:
break
Polecenie break ustawia kontrolę naciśnięcia klawiszy ctrl+c.
Składnia:
break [on|off]
Komentarz:
Zależnie od tego, jaki program jest w danym momencie uruchomiony, możliwe jest włączenie rozszerzonego rozpoznawania kombinacji klawiszy ctrl+c. Normalnie DOS sprawdza, czy została naciśnięta podczas odczytu z klawiatury lub zapisu na ekran. Włączenie tej funkcji powoduje, że naciśnięcie ctrl+c wykona przerwanie pracy programu również podczas innych operacji systemu, takich jak na przykład odczyt i zapis na dysk.
Przykład:
Aby wyłączyć rozszerzone rozpoznawanie kombinacji ctrl+c, należy wykonać następujące polecenie:
break off
chcp
Chcp wyświetla i ustawia bieżącą stronę kodową używaną przez command.com.
Składnia:
chcp [nnn]
gdzie nnn oznacza stronę kodową do ustawienia.
Komentarz:
Polecenie chcp przyjmuje jako parametr numer jednej z dwu uprzednio przygotowanych stron kodowych. W przypadku podania numeru strony, która nie została przygotowana, zwrócony jest komunikat o błędzie. Wywołanie programu chcp bez parametrów spowoduje wyświetlenie numeru strony kodowej aktualnie używanej, jak i tej przygotowanej.
Możliwe jest wybranie każdej strony uprzednio przygotowanej (w pliku config.sys) z następującej listy:
437 — amerykańska,
850 — wielojęzyczna,
852 — polska,
860 — portugalska,
863 — francuska (kanadyjska).
Przykład:
Aby ustawić stronę kodową na uprzednio przygotowaną, przystosowaną do używania języka polskiego, należy wykonać polecenie:
chcp 852
chdir (cd)
Chdir (CHange DIRectory) zmienia bieżący katalog na inny.
Składnia:
chdir [ścieżka]
cd [ścieżka]
Przykład:
Załóżmy, że katalog pierwszy posiada podkatalog, nazywający się drugi. Aby zmienić katalog bieżący na \pierwszy\drugi, należy wykonać:
cd \pierwszy\drugi
Szybkim sposobem na powrót do katalogu nadrzędnego jest wykonanie polecenia:
cd..
Aby powrócić do katalogu głównego, należy użyć polecenia:
cd\
chkdsk
Zadaniem programu chkdsk jest sprawdzanie dysków w poszukiwaniu błędów.
Składnia:
chkdsk [dysk:] [ścieżka_dostępu] [/f] [/v]
Komentarz:
Polecenie chkdsk bada dysk w poszukiwaniu błędów. Program ten należy co pewien czas uruchamiać, by sprawdzić, czy na dyskach nie znalazły się błędy wymagające naprawienia. Jeśli w parametrach programu pojawi się nazwa pliku, DOS wyświetli raport o stanie zarówno systemu plików, jak i wybranego pliku.
Komenda chkdsk przyjmuje następujące przełączniki, które omawiamy poniżej.
/f — znalezione błędy zostaną natychmiast naprawione.
/v — chkdsk będzie wyświetlał postęp skanowania, pokazując nazwę aktualnie sprawdzanego pliku.
Przykład:
Jeśli chkdsk znajdzie błędy na dysku, naprawić je można, wykonując polecenie:
chkdsk c: /f
cls
Polecenie cls powoduje wyczyszczenie zawartości konsoli.
Składnia:
cls
Komentarz:
Za pomocą tej komendy można usunąć całą zawartość ekranu, pozostawiając na nim jedynie znak zachęty oraz kursor.
command
Polecenie command uruchamia nowy interpreter poleceń.
Składnia:
command [dysk:] [ścieżka] [ctt-dev] [/e:nnnnn] [/p] [/c polecenie]
Komentarz:
Po wykonaniu tego polecenia uruchomiony zostaje nowy interpreter poleceń wraz z nowym zestawem zmiennych otoczenia. Interpreter jest wczytywany do pamięci w dwóch częściach: przejściowej i rezydentnej. Niektóre programy po ich uruchomieniu, nadpisują przejściową część pamięci interpretera command.com. W takim wypadku jest ona ponownie wczytywana z dysku.
Argumenty dysk:ścieżka przekazują do DOS-a informację, gdzie znajduje się interpreter command.com. Dostępne opcje wymieniamy niżej.
/e:nnnnn — określa rozmiar pamięci przeznaczonej dla zmiennych otoczenia, gdzie nnnnn określa jej rozmiar w bajtach.
/p — uruchomiony w ten sposób nowy interpreter pozostanie w pamięci po wykonaniu polecenia i nie nastąpi automatyczne przełączenie się do pierwotnego interpretera.
/c polecenie — powoduje, że po załadowaniu do pamięci nowy interpreter wykona polecenie, następnie jego praca zostanie zakończona, a sterowanie automatycznie przejmie pierwotny interpreter poleceń.
Przykład:
Polecenie:
command /c chkdsk b:
nakazuje interpreterowi DOS-a:
rozpoczęcie pracy nowego interpretera poleceń,
wykonanie polecenia chkdsk b:,
zakończenie pracy nowego interpretera i zwrócenie sterowania pierwotnemu..
comp
Polecenie comp porównuje zawartość dwóch zbiorów plików.
Składnia:
comp [dysk:][ścieżka_dostępu1] [dysk:][ścieżka_dostępu2]
Komentarz:
Polecenie comp porównuje plik lub zbiór plików z innym plikiem lub ich zbiorem. Pliki mogą się znajdować na tym samym dysku lub różnych dyskach, jak i w tych samych lub różnych katalogach. Jeśli ścieżki dostępu nie zostaną podane jako parametry, program sam o nie poprosi.
Przykład:
W przykładzie tym comp porównuje każdy plik o rozszerzeniu .wk1 znajdujący się w katalogu bieżącym dysku C z plikami o tych samych nazwach, lecz rozszerzeniu .bak, znajdującymi się w katalogu bieżącym dysku B.
comp c:*.wk1 b:*.bak
copy
Polecenie copy kopiuje pliki do innego miejsca na dysku lub dołącza pliki do już istniejących.
Składnia:
Kopiowanie:
copy [dysk:]ścieżka_dostępu1 [dysk:][ścieżka_dostępu2] [/v] [/a] [/b]
copy [dysk:]ścieżka_dostępu1 [/v] [/a] [/b] [dysk:][ścieżka_dostępu2]
Dołączanie:
copy ścieżka_dostępu1 + ścieżka_dostępu2 [...] ścieżka_dostępuN
Komentarz:
Polecenie copy akceptuje następujące przełączniki.
/v — wymusza sprawdzenie, czy pliki skopiowane mają identyczną zawartość, co pliki oryginalne.
/a — przełącza program copy w tryb kopiowania plików ASCII. Przełącznik ten odnosi się do wszystkich plików występujących po nim, aż do napotkania /b.
/b — przełącza program copy w tryb kopiowania plików binarnych. Przełącznik ten odnosi się do wszystkich plików występujących po nim, aż do napotkania /a.
Przykłady:
Aby skopiować plik list.doc z bieżącego katalogu bieżącego dysku do katalogu c:\docs, należy wpisać i wykonać polecenie:
copy list.doc c:\docs
Możliwe jest również połączenie paru plików w jeden:
copy *.doc razem.doc
Polecenie to połączy ze sobą wszystkie pliki o rozszerzeniu .doc znajdujące się w bieżącym katalogu w jeden plik razem.doc.
ctty
Ctty pozwala zmieniać urządzenie, z którego interpreter poleceń odbiera polecenia i gdzie wysyła wyniki.
Składnia:
ctty urządzenie
gdzie urządzenie określa urządzenie, z którego będą systemowi DOS wydawane polecenia.
Komentarz:
Ctty jest przydatny w sytuacjach, gdy trzeba zmienić urządzenie, z którego będą wydawane polecenia.
Przykłady:
Następujące polecenie przekierowywuje wejście/wyjście interpretera poleceń DOS z obecnego urządzenia (na przykład konsoli) na port AUX (który może być związany na przykład z dodatkowym terminalem):
ctty aux
Następne polecenie przekierowywuje wejście/wyjście interpretera z powrotem na konsolę standardową (CON):
ctty con
date
Polecenie date służy do pobierania lub ustawiania bieżącego czasu zegara RTC (Real Time Clock) znajdującego się na płycie głównej komputera.
Składnia:
Date [mm-dd-yy]
Komentarz:
Należy pamiętać, że prawidłowy format daty, obsługiwany przez to polecenie, zawiera jedynie cyfry. Prawidłowe ich wartości, to:
mm = 1 - 12
dd = 1 - 31
yy = 80 - 79, lub też 1980 - 2079
Liczby te mogą być rozdzielone za pomocą łączników (-) lub też ukośników (/).
Przykład:
Aby wyświetlić bieżącą datę, należy użyć polecenia:
date
W wyniku wykonania tego polecenia zostanie wyświetlona bieżąca data, a następnie zapytanie o chęć jej zmiany. Jeśli nie ma potrzeby zmienić daty, wystarczy nacisnąć klawisz Enter.
del (erase)
Polecenia te (oba są równoznaczne, chociaż erase jest już przestarzałe) służą do usuwania plików z dysku.
Składnia:
del [dysk:]ścieżka_dostępu
erase [dysk:]ścieżka_dostępu
Komentarz:
Usuwanie plików jest operacją nieodwracalną. Przywrócenie raz usuniętych plików może być bardzo trudne, a w większości przypadków niemożliwe.
Przykłady:
Poniższe polecenie usuwa plik nazywający się raport:
del raport
Przypuśćmy, że należy skasować wszystkie pliki o nazwie raport, ale różnym rozszerzeniu. Aby to zrobić, należy wykonać polecenie:
del raport.*
dir
Wynikiem działania polecenia dir jest lista plików znajdujących się w katalogu.
Składnia:
dir [dysk:][ścieżka_dostępu] [/p] [/w]
Komentarz:
Polecenie dir bez parametrów powoduje wyświetlenie wszystkich plików i podkatalogów katalogu bieżącego. Jeśli wyspecyfikowane zostaną parametry dysk oraz ścieżka_ dostępu, wyświetlone zostaną te pliki i katalogi, które będą do tych parametrów pasować.
Polecenie akceptuje następujące przełączniki.
/p — powoduje, że informacje są wyświetlane na stronach. Przejście do kolejnej strony następuje po naciśnięciu dowolnego klawisza.
/w — powoduje, że nazwy plików zostają wyświetlone w pięciu kolumnach z pominięciem dokładniejszych informacji.
Dir wyświetla listę plików zawierającą dla każdego pliku jego nazwę, rozmiar w bajtach oraz czas i datę ostatniej modyfikacji.
Przykład:
Jeśli w katalogu bieżącym znajduje się więcej plików, niż może się zmieścić za jednym razem na ekranie, należy wykorzystać właściwości przełącznika /p.
dir /p
diskcomp
Polecenie to służy do porównywania zawartości dwóch dysków.
Składnia:
diskcomp [dysk1:] [dysk2:] [/1] [/8]
Komentarz:
Polecenie diskcomp porównuje dokładnie (ścieżka po ścieżce) zawartość dwóch dysków. Ilość stron (dla dyskietek), cylindrów (dla dysków) i sektorów na ścieżkę jest ustalana automatycznie na podstawie formatu pierwszego z dysków.
Program akceptuje dwa przełączniki modyfikujące jego działanie.
/1 — powoduje, że przy porównywaniu wykorzystana zostaje tylko pierwsza strona dyskietki.
/8 — powoduje, że przy porównywaniu wykorzystane zostanie tylko osiem pierwszych sektorów każdej ścieżki.
Przykład:
W przypadku, gdy komputer wyposażony jest w tylko jedną stację dyskietek, a konieczne jest porównanie dwóch dyskietek, należy wykonać polecenie:
diskcomp a:
Program diskcomp wyświetli prośbę o włożenie do stacji drugiej dyskietki.
diskcopy
Polecenie diskcopy służy do kopiowania zawartości jednego dysku na inny.
Składnia:
diskcopy [dysk1:] [dysk2:] [/1]
gdzie dysk1 jest dyskiem źródłowym, a dysk2 dyskiem docelowym.
Komentarz:
Dysk1 oraz dysk2 mogą oznaczać to samo urządzenie. Jeśli dysk docelowy nie jest sformatowany, zostanie sformatowany automatycznie tak jak dysk źródłowy.
Polecenie akceptuje następujący przełącznik:
/1 — powoduje, że zostanie skopiowana tylko jedna strona dyskietki.
Przykład:
Aby skopiować dyskietkę ze stacji A na dyskietkę znajdującą się w stacji B, należy wykonać następujące polecenie:
diskcopy a: b:
exe2bin
Program exe2bin konwertuje pliki wykonywalne na postać binarną.
Składnia:
exe2bin [dysk:]nazwa_pliku1 [dysk:]nazwa_pliku2
gdzie nazwa_pliku1 oznacza plik wejściowy, natomiast nazwa_pliku2 — wyjściowy.
Komentarz:
Polecenie to służy do konwertowania plików wykonywalnych o rozszerzeniach *.exe na format binarny. Jeżeli w nazwie pliku wejściowego nie wyspecyfikowano rozszerzenia, domyślnie przyjmuje się, że jest to .exe. Następnie program jest konwertowany na format .bin (obrazu pamięci programu) i umieszczony w pliku wyjściowym. Jeśli nie określimy wyraźnie rozszerzenia pliku wynikowego, domyślnie zostanie przyjęte .bin. Przy braku określenia nazwy dysku, domyślnie przyjęta zostanie nazwa związana z plikiem wejściowym.
Plik wejściowy musi być zgodny z formatem .exe. Kod programu wraz z danymi musi się ponadto mieścić w 64-kilobajtowym segmencie pamięci; program nie może być również segmentem stosu.
exit
Polecenie exit powoduje opuszczenie bieżącego interpretera poleceń i powrócenie do poprzedniego (o ile taki istnieje).
Składnia:
exit
Komentarz:
Jeśli DOS-owy interpreter poleceń zostanie wykorzystany do uruchomienia nowego interpretera, użycie tego polecenia pozwala go zamknąć i powrócić do pierwotnego.
fastopen
Fastopen zmniejsza nakład czasu przeznaczony na otwieranie często używanych plików i katalogów.
Składnia:
fastopen [dysk:[=nnn] [...]]
gdzie nnn jest liczbą plików na dysku.
Komentarz:
Program fastopen w celu przyśpieszenia dostępu zapisuje położenie nnn plików i katalogów na dysku. Każdorazowo, gdy otwierany jest plik fastopen zapisuje jego nazwę i położenie. Gdy plik jest ponownie otwierany, a jego nazwa znajduje się jeszcze w pamięci, fastopen podaje wskaźnik do pliku na dysku, co znacznie przyśpiesza operację otwierania. Każdy dodatkowy rekord zawierający dane o nazwie pliku i jego położeniu zajmuje 40 bajtów pamięci.
Przykład:
Polecenie nakazujące DOS-owi przechowywać dane o maksymalnie 100 plikach na dysku C
fastopen c:=100
fc
Program ten porównuje zawartość dwóch lub większej liczby plików, a następnie wypisuje różnice pomiędzy nimi.
Składnia:
Dla porównywania plików tekstowych (ASCII):
fc [/a] [/c] [/L] [/LB n] [/n] [/t] [/w] [/nnnn] [dysk:]ścieżka_dostępu1
* [dysk:]ścieżka_dostępu2
Dla porównywania plików binarnych:
fc [/b] [/nnnn] [dysk:]ścieżka_dostępu1 [dysk:]ścieżka_dostępu2
gdzie ścieżka_dostępu1 oznacza pierwszy z plików do porównania, natomiast ścieżka_ dostępu2 — drugi z nich.
Komentarz:
Polecenie fc akceptuje następujące przełączniki.
/a — pokazuje wyniki porównania w trybie ASCII. Zamiast wyświetlać wszystkie linie zawierające różnice, program pokazuje jedynie linie rozpoczynające i kończące obszary różnic.
/b — wymusza porównanie plików w trybie binarnym. W takim wypadku fc porównuje pliki bajt po bajcie bez próby synchronizacji w przypadku niezgodności. Miejsca takie są sygnalizowane na ekranie w następujący sposób:
xxxxxxxx:yy zz
gdzie xxxxxxxx oznacza adres początku pliku, zaś yy oraz zz oznaczają pierwsze bajty plików, które się między sobą różniły. Tryb binarny porównywania plików jest domyślny dla plików o rozszerzeniach .exe, .com, .sys, .obj, .lib, .bin.
/c — powoduje, że duże i małe litery nie będą rozróżniane (fc przyjmuje, że wszystkie litery są duże).
/L — wymusza porównanie plików w trybie ASCII. Przełącznik ten jest domyślnie ustawiony, gdy porównywane są pliki o rozszerzeniach innych niż .exe, .com, .sys, .obj, .lib, .bin.
/LB — ustawia rozmiar wewnętrznego bufora na n linii. Domyślny rozmiar to 100 linii. W sytuacji, gdy podczas porównywania dwóch plików okaże się, że różnią się one liczbą bezpośrednio po sobie następujących linii, większą niż rozmiar tego bufora, porównywanie zostanie przerwane, gdyż niemożliwe będzie ponowne zsynchronizowanie plików.
/n — podczas porównywania w trybie ASCII będą wyświetlane numery linii.
/t — powoduje, że znaki tabulacji nie będą zamieniane na spacje. Domyślnie znaki tabulacji powodują wstawienie spacji (co najmniej jednej) do uzupełnienia bieżącej liczby znaków w linii do pełnych ósemek.
/w — podczas wykonywania porównania nakazuje programowi fc kompresowanie dowolnej liczby odstępów (spacji, znaków tabulacji) do pojedynczej spacji.
/nnnn — w wypadku wystąpienia różnic w plikach tekstowych oznacza liczbę kolejnych linii, które muszą się zgadzać ze sobą, aby program fc uznał, że zsynchronizował pliki.
Przykład:
Aby porównać dwa pliki tekstowe — raport.1 oraz raport.2 — należy napisać:
fc /a raport.1 raport.2
fdisk
Fdisk służy do przygotowania dysków do użycia w systemie DOS.
Składnia:
fdisk
Komentarz:
Program fdisk wyświetla menu pomagające zarządzać partycjami systemu DOS znajdującymi się na twardym dysku. Możliwe jest m.in.:
utworzenie partycji podstawowej,
utworzenie partycji rozszerzonej,
zmiana aktywnej partycji,
usunięcie partycji DOS,
wyświetlenie informacji o partycjach,
wybranie innego dysku do partycjonowania (o ile komputer jest wyposażony w inny dysk).
find
Zadaniem programu find jest przeszukiwanie plików w celu znalezienia zadanego ciągu znaków.
Składnia:
find [/v] [/c] [/n] "ciąg_znaków" [[dysk:][ścieżka] ...]
gdzie ciąg_znaków jest grupą znaków, która będzie poszukiwana.
Komentarz:
Ciąg_znaków musi zostać zamknięty w cudzysłowy. Ponadto należy pamiętać, że program find rozróżnia podczas poszukiwania duże i małe litery.
Polecenie to akceptuje następujące przełączniki.
/v — pokazuje wszystkie linie niezawierające określonego ciągu znaków.
/c — program find, zamiast wyświetlać całe linie, będzie wypisywał jedynie ich numery.
/n — każda linia będzie poprzedzona jej numerem liczonym od początku pliku.
Przykład:
Następujące polecenie pokazuje wszystkie linie z pliku autoexec.bat zawierające ciąg znaków „REM”:
find "REM" autoexec.bat
format
Polecenie format formatuje określony dysk tak, by mogły być na nim umieszczone dane.
Składnia:
format dysk: [/1] [/4] [/8] [/n:xx] [/t:yy] [/v] [/s]
format dysk: [/1] [/b] [/n:xx] [/t:yy]
Komentarz:
Każdy dysk, aby go użyć, musi być sformatowany. Dotyczy to również dyskietek. Formatowanie dysku lub dyskietki bezpowrotnie niszczy zawarte na nośniku informacje. Program format akceptuje następujące argumenty.
/1 — formatuje tylko jedną stronę dyskietki.
/8 — formatuje tylko osiem sektorów na każdej ścieżce.
/b — formatuje dysk, zostawiając dostatecznie dużo miejsca dla systemu operacyjnego.
/s — kopiuje system operacyjny na nowo sformatowany dysk.
/t:yy — oznacza liczbę ścieżek na dysku. Dla 3½ calowych dyskietek (720 kB i 1.44 MB) prawidłową liczbą ścieżek jest 80 (/t:80).
/n:xx — oznacza liczbę sektorów na ścieżce. Dla 3½ calowych dyskietek (720 kB i 1.44 MB) prawidłową liczbą sektorów na ścieżce jest 9 (/n:9).
/v — powoduje, że format wyświetli prośbę o podanie etykiety dysku. Etykietą może być ciąg złożony z maksymalnie 11 znaków.
Przykład:
Aby sformatować dyskietkę znajdującą się w stacji dyskietek A, a następnie skopiować na nią system operacyjny, należy wykonać polecenie:
format a: /s
graftabl
Program graftabl pozwala korzystać z alternatywnych stron kodowych w trybie graficznym.
Składnia:
graftabl [xxx]
graftabl /status
gdzie xxx oznacza numer strony kodowej.
Komentarz:
Dostępne są m.in. następujące strony kodowe:
437 — amerykańska,
850 — wielojęzyczna,
852 — polska,
860 — portugalska,
863 — francuska (kanadyjska).
Wykonanie polecenia graftabl /status spowoduje wyświetlenie aktywnej strony kodowej.
Przykład:
Aby załadować do pamięci tablicę znaków graficznych, należy wykonać polecenie graftabl bez parametrów:
graftabl
Graphics
Umożliwia graficzny wydruk zawartości ekranu na drukarce w przypadku stosowania karty graficznej, której możliwości nie ograniczają się do trybu znakowego.
Składnia:
graphics [drukarka] [/b] [/p=port] [/r [/lcd]
Parametr drukarka może przyjmować następujące wartości.
color1 |
IBM PC Color Printer z czarną taśmą. |
color4 |
IBM PC Color Printer z kolorową taśmą RGB. |
color8 |
IBM PC Color Printer z kolorową taśmą CMY. |
compact |
IBM PC Compact Printer. |
graphics |
IBM Personal Graphics Printer lub IBM Pro Printer. |
Komentarze:
Wartością domyślną parametru drukarka jest graphics.
Można stosować przełączniki, wymienione poniżej.
/b — Drukowanie kolorowego tła. Funkcja dostępna dla drukarek color4 i color8.
/p=port — Określa port drukarkowy (LPT), do którego polecenie prześle dane po wciśnięciu przez użytkownika kombinacji klawiszy Shift+Print Screen. Wartością port jest liczba 1 (domyślna), 2 lub 3.
/r — Drukuje białe znaki na czarnym tle.
/lcd — Drukowanie zawartości ekranu LCD komputera przenośnego IBM PC.
Przykład:
Aby wydrukować na drukarce zawartość pracującego w trybie graficznym ekranu, wprowadzamy:
graphics
Ekran zostanie wydrukowany, gdy użytkownik wciśnie kombinację Shift+Print Screen.
join
Polecenie to umożliwia zamontowanie dysku do struktury katalogów na innym dysku.
Składnia:
join [dysk: dysk:ścieżka_dostępu]
join dysk: /d
Komentarz:
Dzięki poleceniu join nie jest konieczne korzystanie z osobnych liter różnych dysków fizycznych. Zamiast tego możliwe jest „podpięcie” struktury katalogów dysków do struktury katalogów jednego z dysków. Pamiętać należy, że nie można tej operacji wykonywać na dysku aktualnie wykorzystywanym przez inny proces.
Jeśli ścieżka, do której ma być dysk zamontowany, nie istnieje, DOS spróbuje ją utworzyć. Po zamontowaniu dysku w nowym katalogu nie będzie możliwe odwołanie się do niego, wywołując jego nazwę. Przy próbie odwołania się do litery dysku, DOS zwróci komunikat o błędzie.
Przykłady:
Dysk można zamontować tylko w katalogu znajdującym się bezpośrednio w katalogu głównym innego dysku, na przykład:
join d: c:\docs
Aby odwrócić operację montowania dysku, należy wydać polecenie join z nazwą dysku i parametrem /d:
join d: /d
keyb
Polecenie keyb wczytuje do pamięci program obsługi klawiatury.
Składnia:
keyb [xx[,[yyy],[[dysk:][ścieżka]nazwa_pliku]]]
gdzie:
xx — oznacza dwuliterowy kod kraju,
yyy — jest stroną kodową zawierającą właściwy zestaw znaków,
dysk, ścieżka, nazwa_pliku — oznaczają położenie pliku zawierającego definicję klawiatury.
Komentarz:
Oto przykłady kilku kodów narodowościowych:
us — Stany Zjednoczone (domyślne),
pl — Polska,
fr — Francja,
gr — Niemcy,
it — Włochy,
sp — Hiszpania,
uk — Wielka Brytania,
po — Portugalia,
sg — Szwajcaria (niemiecka),
sf — Szwajcaria (francuska),
df — Dania,
be — Belgia,
nl — Holandia,
no — Norwegia,
la — Ameryka Łacińska,
sv — Szwecja,
su — Finlandia.
|
Polecenia ustawiające właściwy układ klawiatury i stronę kodową wygodnie jest umieścić w pliku autoexec.bat, który jest automatycznie wczytywany i wykonywany przy każdym uruchomieniu systemu DOS. |
Przykład:
Aby ustawić niemiecki układ klawiatury, należy użyć następującej komendy:
keyb gr
label
Label tworzy, zmienia lub usuwa etykietę dysku.
Składnia:
label [dysk:] [ciąg_znaków]
gdzie ciąg_znaków oznacza nową etykietę dysku (maksymalnie 11 znaków).
Komentarz:
Etykieta dysku jest dodatkową nazwą charakteryzującą dysk. DOS wyświetla etykietę dysku, gdy zwraca listę katalogów i plików, aby zaznaczyć, do którego z dysków lista ta się odnosi. Można ją uzyskać na przykład za pomocą poleceń dir oraz vol.
Polecenie label nie przynosi efektów w stosunku do dysków zaangażowanych w polecenia subst lub join. Ponadto w etykiecie nie wolno używać żadnego ze znaków: *?/\|.,;:+=[]()&^ .
Przykład:
Aby nadać dyskietce znajdującej się w stacji A etykietę „raport”, należy wydać komendę:
label a: raport
mkdir (md)
Mkdir tworzy nowy katalog.
Składnia:
mkdir [dysk:]ścieżka
md [dysk:]ścieżka
Komentarz:
Za pomocą polecenia mkdir możliwe jest utworzenie wielopoziomowej struktury katalogów.
Przykład:
Aby utworzyć nowy katalog o nazwie raporty, należy wykonać polecenie:
md \raporty
mode
Polecenie mode służy do konfigurowania parametrów urządzeń.
Składnia:
Dla portu równoległego drukarki (LPT):
mode LPTn[:] [znaki] [,[linie] [,p]]
Dla portu szeregowego (COM):
mode
COMm[:]przepustowość[,bit_parzystości[,bity_danych[,bity_stopu[,p]]]]
Przekierowanie portu równoległego:
mode LPTn[:]=COMm[:]
Tryb wyświetlania:
mode tryb
mode [tryb],przesunięcie[,t]
Strony kodowe urządzeń:
mode urządzenie codepage prepare = [[yyy] [dysk:][ścieżka]nazwa_pliku]
mode urządzenie codepage select = yyy
mode urządzenie codepage refresh
mode urządzenie codepage [/status]
Komentarz:
Polecenie mode przygotowuje system DOS do komunikacji za pomocą urządzeń, takich jak porty szeregowe, równoległe, modemy i konsola. Przygotowuje również urządzenia podłączone do tych portów (na przykład drukarki, konsola) do ewentualnej zmiany strony kodowej. Możliwe jest wykorzystanie polecenia mode do przekierowania wyjścia różnych urządzeń.
Port równoległy drukarki
Pierwszy port równoległy drukarki jest oznaczany przez LPT1, drugi przez LPT2 itd. Pierwszy port ma jeszcze jedno, równoważne oznaczenie: PRN. Objaśnienia parametrów polecenia mode służących do konfigurowania portów równoległych wyliczamy poniżej.
n — numer portu drukarki (1, 2, lub 3).
znaki — liczba znaków w linii (80 lub 132).
linie — odstęp pionowy między kolejnymi wierszami w liniach na cal
(6 lub 9 lpi).
p — powoduje, że dane będą wysyłane do drukarki, nawet w wypadku gdy nastąpił błąd przeterminowania. Parametr ten powoduje ponadto, że w pamięci pozostanie rezydentna część programu mode.
Szeregowy port komunikacyjny
Objaśnienie parametrów służących do konfigurowania szeregowego portu komunikacyjnego.
m — numer portu szeregowego (1, 2, 3 lub 4).
przepustowość — pierwsze dwie cyfry przepustowości portu (możliwe do wyboru: 110, 150, 300, 600, 1200, 2400, 4800, 9600 lub 19200 bodów).
bit_parzystości — powoduje ustawienie jednego z następujących sposobów kontrolowania parzystości:
N — brak bitu parzystości,
O — bit nieparzysty,
E — bit parzysty (domyślny).
bity_danych — liczba bitów danych: 7 (domyślnie) lub 8.
bity_stopu — liczba bitów stopu: 1 lub 2. W przypadku gdy transmisja jest prowadzona na poziomie 110 bodów, domyślną liczbą bitów stopu jest 2, w pozostałych jest to 1.
p — powoduje, że program wykorzystuje port COM przy wpięciu w niego szeregowej drukarki, a w wypadku wystąpienia błędów przeterminowania transmisja będzie powtarzana „do skutku”. Włączenie tej opcji powoduje ponadto, że rezydentna część programu mode będzie stale pozostawać w pamięci. Ustawienia domyślne to COM1, badanie na parzystość i 7 bitów danych.
Tryby wyświetlania
Poniższe opcje służą do konfigurowania parametrów wyświetlacza.
tryb — określa jeden ze standardowych trybów wyświetlania: 40, 80, BW40, BW80, CO40, CO80 lub MONO. 40 i 80 oznaczają liczbę znaków w wierszu. BW i CO oznaczają kolejno wyłączoną i włączoną obsługę kolorów. MONO oznacza tryb z wyłączoną obsługą kolorów i 80 znakami w wierszu.
przesunięcie — pozwala przesunąć obraz na wyświetlaczu. Znaczącymi wartościami są: jeden znak w lewo (L) oraz jeden znak w prawo (P).
t — powoduje, że DOS wyświetli obraz testowy, pozwalający dobrać właściwe parametry wyświetlacza.
Strony kodowe urządzeń
Program mode można wykorzystać również do określenia strony kodowej używanej przez różne urządzenia, na przykład drukarkę czy też konsolę. Poniższe parametry są stosowane podczas konfigurowania stron kodowych dla urządzeń.
urządzenie — określa urządzenie, dla którego zostanie ustalona strona kodowa. Dopuszczalnymi urządzeniami są w tym wypadku CON, LPT1 (PRN), LPT2 oraz LPT3.
yyy — strona kodowa (na przykład 437, 850, 852, 860, 863 oraz 865).
dysk, ścieżka, nazwa_pliku — określają położenie pliku .cpi, za pomocą którego należy przygotować stronę kodową dla danego urządzenia.
Istnieją cztery słowa kluczowe, które mogą być użyte wraz z poleceniem mode podczas konfigurowania i przełączania strony kodowej dla urządzeń. Każde z nich powoduje wykonanie innej czynności.
prepare — jest używane do przygotowania strony kodowej dla określonego urządzenia. Strona kodowa musi być przygotowana, nim będzie mogła być użyta.
select — jest używane do przełączania między przygotowanymi uprzednio dla danego urządzenia stronami kodowymi.
refresh — powoduje odtworzenie (wczytanie z dysku) strony kodowej, która mogła zostać uszkodzona (na przykład w wyniku różnego rodzaju błędów).
/status — wyświetla bieżącą i przygotowane strony kodowe. Warto zaznaczyć, że poniższe polecenia są sobie równoważne:
mode con codepage
mode con codepage /status
|
Zamiast pełnych słów kluczowych możliwe jest użycie ich skrótów: cp — codepage /sta — /status prep — prepare sel — select ref — refresh |
Przykłady:
Przypuśćmy, że trzeba zmusić system do przekierowania portu drukarki na złącze szeregowe (na przykład dlatego, że zakupiono drukarkę szeregową, natomiast oprogramowanie używane w firmie potrafi korzystać jedynie z drukarek podłączonych do portów równoległych). Aby to zrobić, należy użyć polecenia mode dwukrotnie. Pierwsze konfiguruje złącze szeregowe; drugie przekierowuje port równoległy na port szeregowy. Jeśli drukarka wymaga przepustowości łącza szeregowego rzędu 4800 bodów z parzystością parzystą oraz jest podłączona do złącza COM1, należy wykonać polecenie:
mode COM1:48,e,,,p
mode LPT1:=COM1:
Jeśli drukarka podłączona do drugiego złącza równoległego wymaga skonfigurowania, tak by drukowała 80 znaków w linii oraz 8 linii na cal, należy napisać:
mode LPT2: 80,8
lub
mode LPT2:,8
more
More dzieli strumień danych, wysyłanych na konsolę, na strony.
Składnia:
more <źródło
gdzie źródło jest plikiem lub poleceniem.
Przykład:
Przypuśćmy, że trzeba wyświetlić na konsoli długi plik, nazywający się alicja.doc. Następujące polecenie spowoduje wyświetlenie tego pliku w porcjach zajmujących jedną stronę, oczekując za każdym razem naciśnięcia dowolnego klawisza przed wyświetleniem następnej.
more <alicja.doc
nlsfunc
Nlsfunc wczytuje do pamięci dane o ustawieniach regionalnych.
Składnia:
nlsfunc [[dysk:] [ścieżka]nazwa_pliku]
gdzie ścieżka i nazwa_pliku wskazują plik zawierający informacje o ustawieniach regionalnych.
Komentarz:
Domyślnym plikiem jest config.sys. Jeśli nie zawiera żadnego polecenia ustawiającego opcje regionalne, użyty zostaje plik country.sys znajdujący się w głównym katalogu dysku.
Przykład:
W przypadku gdy chcemy wykorzystać ustawienia regionalne z pliku ustreg.sys zamiast z pliku country.sys, należy wykonać następujące polecenie:
nlsfunc ustreg.sys
path
Polecenie path ustawia ścieżkę wyszukiwania.
Składnia:
path [dysk:][ścieżka][;[dysk:][ścieżka]...]
path ;
Komentarz:
Polecenie path służy do określenia, które katalogi będą używane podczas wyszukiwania programów realizujących wydane polecenie. Możliwe jest wyspecyfikowanie większej ilości katalogów — w tym przypadku muszą być rozdzielone średnikami. Katalogi będą przeszukiwane zgodnie z kolejnością występowania w poleceniu path, jednakże pierwszym przeszukiwanym katalogiem jest zawsze katalog bieżący.
Przykład:
W tym przykładzie polecenie wydane systemowi DOS nakazuje mu podczas wyszukiwania sprawdzać (oprócz katalogu bieżącego) katalogi c:\bin, c:\progs\nc oraz c:\progs\ edytory:
path c:\bin;c:\progs\nc;c:\progs\edytory
Polecenie print drukuje w tle pliki tekstowe, z możliwością wykonywania w tym samym czasie innych poleceń.
Składnia:
print [/d:urządzenie] [/b:rozmiar] [/u:wartość1] [/m:wartość2] [/s:czas]
* [/q:rozmiar] [/t] [/c] [/p] [dysk:][ścieżka_dostępu]
Komentarz:
Użycie polecenia print jest dozwolone tylko w wypadku posiadania urządzenia drukującego, takiego jak drukarka czy ploter. Polecenie to akceptuje następujące opcje.
/d:urządzenie — nazwa portu, do którego jest podłączone urządzenie drukujące (domyślnie jest to LPT1).
/b:rozmiar — ustawia rozmiar (w bajtach) wewnętrznego bufora danych.
/u:wartość1 — liczba taktów zegara, w czasie której print będzie oczekiwał na przygotowanie się drukarki. Prawidłowe wartości mieszczą się w zakresie 512 do 16 386. Domyślnie jest to 1.
/m:wartość2 — liczba taktów zegara, w czasie której print będzie oczekiwał, zanim wyśle kolejny znak do drukowania. Prawidłowe wartości mieszczą się w zakresie 1 do 255. Domyślną jest 2.
/s:czas — określa długość przedziału czasu przeznaczonego na wykonanie drukowania.
/q:rozmiar — określa maksymalną długość kolejki plików do wydruku
(o ile konieczne jest użycie kolejki dłuższej niż 10). Dopuszczalne wartości mieszczą się w zakresie od 4 do 32 (domyślną jest 10). Aby zmienić wartość domyślną, należy użyć polecenia print bez pozostałych parametrów, na przykład: print /q:32.
/t — usuwa wszystkie pliki znajdujące się w kolejce do drukowania.
/c — włącza tryb anulowania i usuwa z kolejki poprzedni plik oraz wszystkie następne.
/p — włącza tryb drukowania i dodaje do kolejki poprzedni plik oraz wszystkie następne.
Polecenie print bez parametrów wyświetla aktualną kolejkę plików oczekujących na wydrukowanie, bez ingerencji w samą kolejkę.
Przykłady:
Następujące polecenie opróżnia kolejkę drukowania dla drukarki podłączonej do pierwszego portu drukarki (LPT1):
print /t /d:LPT1
Następne zaś usuwa plik list.doc z domyślnej kolejki drukowania:
print list.doc /c
prompt
Polecenie prompt służy do ustawiania wyglądu znaku zachęty systemu DOS.
Składnia:
prompt [ciąg_znaków]
Komentarz:
Za pomocą tego polecenia możliwa jest zmiana klasycznego znaku zachęty systemu DOS (składającego się z oznaczenia bieżącego dysku, katalogu oraz znaku >) na inny, zaprojektowany przez użytkownika. Ciąg_znaków jest dowolnym ciągiem znaków, w którym pewne kombinacje dwuliterowe (rozpoczynające się znakiem dolara $) są interpretowane w specjalny sposób:
$q — znak (=),
$$ — znak ($),
$t — obecny czas,
$d — obecna data,
$p — katalog bieżący,
$v — numer wersji systemu,
$n — bieżący dysk,
$g — znak (>),
$l — znak (<),
$b — znak (|),
$_ — znak nowej linii,
$e — escape,
$h — backspace.
Przykład:
Za pomocą tego polecenia można ustawić dwuwierszowy znak zachęty zawierający bieżącą datę oraz czas:
prompt time = $t$_date = $d$_
recover
Recover przywraca pliki zawierające uszkodzone sektory.
Składnia:
recover [dysk:] [ścieżka]nazwa_pliku
lub
recover [dysk:]
Komentarz:
Jeśli chkdsk wykryje, że pewien sektor lub sektory na dysku uległy uszkodzeniu, można spróbować odzyskać pliki znajdujące się w zagrożonym obszarze za pomocą programu recover. Program ten odczytuje pliki sektor po sektorze, opuszczając sektory uszkodzone.
Przykłady:
Aby przywrócić zawartość uszkodzonej dyskietki znajdującej się w napędzie A, należy wykonać:
recover a:
Natomiast, jeśli na dysku znajduje się plik baza.dat, w którym zostały wykryte uszkodzone sektory, można spróbować go przywrócić, wydając polecenie:
recover baza.dat
rename (ren)
Rename zmienia nazwę pliku.
Składnia:
rename [dysk:] [ścieżka]nazwa_pliku1 nazwa_pliku2
ren [dysk:] [ścieżka]nazwa_pliku1 nazwa_pliku2
gdzie nazwa_pliku1 oznacza dotychczasową nazwę pliku, natomiast nazwa_pliku2 — nową.
Komentarz:
Nowa nazwa pliku nie może być identyczna z nazwą dotychczasową — w takim wypadku zostanie zwrócony komunikat o błędzie. Błąd zostanie zasygnalizowany również w sytuacji, gdy istnieje już plik lub katalog o takiej nazwie.
Przykłady:
Następujące polecenie zmienia rozszerzenia wszystkich plików .txt na .doc:
ren *.txt *.doc
Polecenie kolejne zmienia nazwę pliku raport1.doc na raport2.doc:
ren raport1.doc raport2.doc
replace
Program replace uaktualnia wersje plików.
Składnia:
replace [dysk:]ścieżka_dostępu1 [dysk:][ścieżka_dostępu2] [/a] [/p] [/r] [/s] [/w]
gdzie ścieżka_dostępu1 wskazuje na źródło, natomiast ścieżka_dostępu2 na położenie pliku docelowego.
Komentarz:
Polecenie replace akceptuje następujące przełączniki.
/a — dodaje nowe pliki do katalogu docelowego, zamiast zastępować istniejące.
/p — program będzie żądał potwierdzenia przed każdym zastąpieniem istniejącego pliku.
/r — program będzie zastępował również pliki oznaczone atrybutem tylko do odczytu.
/s — w poszukiwaniu plików do zastąpienia program będzie również przeszukiwał wszystkie podkatalogi katalogu docelowego.
/w — program będzie czekał na włożenie dyskietki przed rozpoczęciem wyszukiwania plików źródłowych.
Przykład:
Przypuśćmy, że na dysku twardym (C) znajdują się różne katalogi zawierające plik o nazwie klienci.txt (zawierający listę klientów wraz z adresami i numerami telefonów). Aby zamienić wszystkie te pliki w najnowszą listę klientów znajdującą się na dyskietce w stacji A, należy wykonać polecenie:
replace a:\klienci.txt c:\ /s
restore
Polecenie restore przywraca pliki z kopii zapasowej wykonanej za pomocą programu backup.
Składnia:
restore dysk1:[dysk2:] [ścieżka_dostępu] [/s] [/p] [/b:data] [/a:data] [/e:godzina] * [/L:godzina] [/m] [/n]
gdzie dysk1 zawiera kopię zapasową plików znajdujących się na dysku docelowym (dysk2).
Komentarz:
Pozostałe argumenty polecenia restore wymieniamy poniżej.
/s — przywraca również podkatalogi.
/p — pyta o potwierdzenie zastąpienia plików.
/b:data — przywraca tylko pliki zmodyfikowane przed dniem lub w dniu określonym datą.
/a:data — przywraca tylko pliki zmodyfikowane po dniu lub w dniu określonym datą.
/e:godzina — przywraca tylko pliki zmodyfikowane o określonej godzinie lub przed nią.
/L:godzina — przywraca tylko pliki zmodyfikowane o określonej godzinie lub po niej.
/m — przywraca tylko pliki zmodyfikowane od czasu wykonania poprzedniej kopii zapasowej.
/n — przywraca tylko pliki, które od czasu wykonania ostatniej kopii zapasowej zostały usunięte.
Przykład:
Aby przywrócić plik raport.1 z kopii zapasowej znajdującej się na dyskietce w stacji A do katalogu \sprzedaz na dysku C, należy wykonać:
restore a: c:\sprzedaz\raport.1
rmdir (rd)
Rmdir usuwa katalog ze struktury katalogów.
Składnia:
rmdir [dysk:]ścieżka
lub
rd [dysk:]ścieżka
Komentarz:
Rmdir usuwa puste katalogi z wyjątkiem katalogów specjalnych „ . ” oraz „ .. ”. Katalogi te oznaczają kolejno katalog bieżący oraz katalog nadrzędny w strukturze. Aby móc usunąć katalog, należy najpierw usunąć wszystkie znajdujące się w nim pliki i podkatalogi (włącznie z plikami ukrytymi i systemowymi).
Przykład:
Aby usunąć katalog nazywający się \docs\listy, należy napisać:
rd \docs\listy
select
Select instaluje system DOS na dyskietce z określonymi ustawieniami regionalnymi i układem klawiatury.
Składnia:
select [[dysk1:] [dysk2:] [ścieżka]] [yyy] [xx]
gdzie dysk1 oznacza dysk źródłowy, dysk2 — docelowy.
Komentarz:
Polecenie select powoduje zainstalowanie systemu DOS na dyskietce wraz z określonymi ustawieniami regionalnymi (takimi jak na przykład format daty i godziny) oraz układem klawiatury. Polecenie select wykonuje następujące czynności:
formatuje dysk docelowy,
na dysku docelowym tworzy pliki config.sys oraz autoexec.bat,
kopiuje zawartość dysku źródłowego na dysk docelowy.
Dyskiem źródłowym może być dyskietka znajdująca się zarówno w napędzie A, jak i B. Domyślnie select odczytuje źródło z napędu A, natomiast zapisuje na dyskietkę docelową w napędzie B. Ponadto można użyć następujących opcji:
yyy — oznacza stronę kodową,
xx — kod układu klawiatury (zobacz opis polecenia keyb).
Przykład:
Załóżmy, że chcemy utworzyć nową dyskietkę systemu DOS zawierającą informacje regionalne oraz układ klawiatury specyficzny dla użytkowników narodowości polskiej. Jeśli dyskietka źródłowa znajduje się w stacji B, natomiast docelowa w stacji A, można wykonać polecenie:
select b: a: 852 pl
set
Polecenie set przypisuje jeden ciąg znaków innemu, do późniejszego wykorzystania w programach, korzystając przy tym z przestrzeni pamięci przeznaczonej na zmienne otoczenia (tworząc, zmieniając lub usuwając zmienne otoczenia).
Składnia:
set [zmienna = [ciąg_znaków]]
Komentarz:
Kiedy zostaje wywołane polecenie set, DOS tworzy w części pamięci przeznaczonej na zmienne otoczenia, nową zmienną, przypisując jej jednocześnie ciąg_znaków jako wartość. Jeśli zmienna o tej nazwie już istnieje, zostaje zastąpiona nową. Jeśli polecenie set zostanie wywołane tylko z nazwą zmiennej, to zostaną usunięte poprzednie ustawienia zmiennej z otoczenia. Jeśli polecenie set będzie użyte bez jakichkolwiek parametrów, spowoduje to wyświetlenie wszystkich zmiennych otoczenia.
Przykład:
Następujące polecenie tworzy zmienną „hello” i przypisuje jej ciąg znaków c:\list do momentu zmiany tego przypisania przy użyciu kolejnego wywołania polecenia set.
set hello=c:\list
share
Program share instaluje w systemie DOS obsługę współdzielenia i blokowania plików.
Składnia:
share [/f:rozmiar] [/L:liczba]
Komentarz:
Programu share można używać tylko wtedy, gdy w systemie jest skonfigurowana obsługa sieci. Wygodnie jest wtedy umieścić odpowiednie polecenie instalujące obsługę współdzielenia w pliku autoexec.bat.
Polecenie share akceptuje następujące argumenty.
/f:rozmiar — powoduje zarezerwowanie odpowiedniej przestrzeni pamięci operacyjnej (w bajtach) przeznaczonej do zapisywania informacji o współdzieleniu plików. Domyślnym rozmiarem jest 2048 bajtów. Warto zapamiętać, że każdy otwarty plik wymaga przestrzeni o rozmiarze ciągu znaków złożonego z pełnej ścieżki dostępu do pliku i jego nazwy, a więc statystycznie około 20 bajtów.
/L:liczba — maksymalna liczba zablokowanych plików. Domyślnie 20.
Przykład:
Następujące polecenie powoduje zainstalowanie w systemie współdzielenia plików, używając jednocześnie domyślnych wartości dla przełączników /f oraz /L:
share
sort
Sort pobiera dane ze standardowego wejścia, sortuje je, a następnie wyprowadza na standardowe wyjście (do pliku, na konsole lub inne urządzenie).
Składnia:
[źródło] | sort [/r] [/+n]
lub
sort [/r] [/+n] źródło
gdzie źródło może być zarówno plikiem, jak i poleceniem.
Komentarz:
Program sort jest filtrem sortującym alfabetycznie dane wejściowe i wyprowadzającym je na wyjście. Podczas sortowania uwzględniane są wymagania regionalne (dane pobierane ze strony kodowej oraz pliku .cpi z ustawieniami regionalnymi).
Symbole (|) oraz (<) kierują przepływem strumienia danych wejściowych. Dla przykładu jako źródło danych może zostać użyte polecenie dir lub plik. Wyjście programu sort może zostać skierowane zarówno do pliku, jak i na inne urządzenie (na przykład konsolę) lub do innego polecenia.
Polecenie sort wykorzystuje następujące przełączniki.
/r — odwraca wynik sortowania.
/+n — sortuje dane w pliku, poczynając od znaku znajdującego się w n-tej kolumnie (gdzie n jest liczbą).
W przypadku gdy nie zostanie wyspecyfikowane wejście, sort będzie sortował dane otrzymane ze standardowego wejścia.
Przykład:
Następujące polecenie czyta dane wejściowe z pliku wydatki.txt, sortuje je w odwróconym porządku, a następnie wyświetla na ekranie:
sort /r wydatki.txt
subst
Polecenie subst przypisuje katalogowi literę dysku.
Składnia:
subst [dysk: dysk:ścieżka]
lub
subst dysk: /d
Komentarz:
Polecenie subst potrafi przypisać istniejącemu katalogowi literę dysku. Od tego momentu katalog ten będzie się zachowywał jak regularny dysk systemu DOS (będzie posiadał swoją literę, katalog główny, większość poleceń będzie rozpoznawało go jako dysk itp.).
Kiedy DOS rozpoznaje polecenie odwołujące się do wirtualnego dysku, zamienia literę dysku na właściwą ścieżkę dostępu do rzeczywistego katalogu, z którego powstał dysk.
Wykonanie polecenia subst bez parametrów spowoduje wyświetlenie wszystkich wirtualnych dysków w systemie.
Można usunąć dysk wirtualny, używając polecenia subst z parametrem /d.
Przykład:
Następujące polecenie tworzy dysk wirtualny (Z), używając do tego katalogu b:\listy\ alicja\2001:
subst z: b:\listy\alicja\2001
sys
Sys kopiuje system operacyjny z dysku w domyślnym napędzie na określony dysk.
Składnia:
sys dysk:
Przykład:
Aby utworzyć dyskietkę startową systemu DOS, należy włożyć świeżo sformatowaną dyskietkę do stacji dyskietek (na przykład A), przejść do katalogu dysku systemowego (przeważnie C), a następnie wydać polecenie:
sys a:
Powyższa operacja jest równoważna poleceniu format a: /s, które ponadto formatuje dyskietkę.
time
Za pomocą polecenia time możliwe jest wyświetlenie lub ustawienie aktualnego czasu zegara systemowego.
Składnia:
time [hh:mm[:ss[.ii]]]
Komentarz:
DOS używa (domyślnie) 24-godzinnego formatu czasu. Wykonanie polecenia bez parametrów spowoduje wyświetlenie aktualnego czasu. Podanie czasu ustawia zegar systemowy. Poszczególne pola oznaczają:
hh — godzina,
mm — minuta,
ss — sekunda,
ii — setna część sekundy.
tree
Tree wyświetla ścieżkę (oraz opcjonalnie zawartość) każdego katalogu i podkatalogu wyspecyfikowanego dysku.
Składnia:
tree [dysk:] [/f]
Komentarz:
Przełącznik /f powoduje, że tree wyświetla również pliki znajdujące się w podkatalogach.
type
Type wyświetla na ekranie zawartość pliku tekstowego.
Składnia:
type [dysk:] [ścieżka_dostępu]
Przykład:
Aby wysłać na konsolę zawartość pliku list.txt, należy wykonać polecenie:
type list.txt
Jeśli zawartość pliku jest dłuższa niż jeden ekran, może okazać się konieczne podzielenie wyświetlanego tekstu na porcje o długości jednego ekranu (patrz polecenie more).
more <type list.txt
ver
Polecenie ver wyświetla na ekranie wersję systemu operacyjnego.
Składnia:
ver
Przykład:
Aby wyświetlić na ekranie wersję aktualnie używanego systemu operacyjnego DOS, należy wydać polecenie:
ver
verify
Polecenie verify włącza lub wyłącza weryfikowanie operacji zapisu na dysk.
Składnia:
verify [on]
lub
verify [off]
Komentarz:
Użytkownik może włączyć opcję weryfikowania każdej operacji zapisu na dysk, jeśli chce być pewny, że dane są rzeczywiście prawidłowo zapisane na dysku (aby uchronić się na przykład przed uszkodzonymi sektorami). W trybie włączonej weryfikacji każda operacja zapisu na dysk jest weryfikowana przez odczytanie zapisanych danych i porównanie z oryginałem.
vol
Vol wyświetla etykietę dysku, o ile taka istnieje.
Składnia:
vol [dysk:]
Przykład:
W przypadku gdy użytkownik chce sprawdzić etykietę dyskietki znajdującej się w stacji A, może wykonać polecenie:
vol a:
Innym rozwiązaniem w tej sytuacji jest wykonanie polecenia dir w katalogu głównym dyskietki; z danych w ten sposób otrzymanych można odczytać etykietę dysku.
xcopy
Xcopy służy do kopiowania plików i katalogów (wraz z podkatalogami).
Składnia:
xcopy [dysk:]ścieżka_dostępu [dysk:][ścieżka_dostępu] [/a] [/d:data] [/e] [/m] [/p] * [/s] [/v] [/w]
lub
xcopy dysk:[ścieżka_dostępu][dysk:][ścieżka_dostępu] [/a] [/d:data] [/e] [/m] [/p] * [/s] [/v] [/w]
Komentarz:
Pierwszy zestaw dysk:ścieżka_dostępu określa położenie pliku lub katalogu do skopiowania, drugi określa położenie docelowe. Jeśli położenie docelowe nie zostanie określone, xcopy przyjmie, że jest to katalog bieżący.
Xcopy rozpoznaje następujące przełączniki.
/a — kopiuje jedynie pliki posiadające ustawiony atrybut „do archiwizacji”.
/d:data — kopiuje jedynie pliki zmodyfikowane w określonym dniu lub później.
/e — kopiuje również podkatalogi, nawet gdy są puste (musi być użyte włącznie z przełącznikiem /s).
/m — działa podobnie do /a z tym, że skopiowanym plikom źródłowym wyłącza atrybut „do archiwizacji”.
/p — powoduje, że xcopy będzie żądał potwierdzenia skopiowania każdego pliku.
/s — powoduje, że skopiowane zostaną również niepuste podkatalogi.
/v — zmusza do zweryfikowania każdej operacji zapisu.
/w — xcopy będzie czekał na rozpoczęcie kopiowania plików.
Przykład:
W poniższym przykładzie skopiowaniu ulegną wszystkie pliki i podkatalogi (włącznie z pustymi podkatalogami) dysku A na dysk B:
xcopy a: b: /s /e
200 Hack Wars. Tom 1. Na tropie hakerów
Rozdział 5. ♦ Niezbędnik hakera 199
200 C:\Biezace\Hack Wars\hack wars 1\9-1 makieta\05.doc
C:\Biezace\Hack Wars\hack wars 1\9-1 makieta\05.doc 199
C:\Biezace\Hack Wars\hack wars 1\9-1 makieta\05.doc 127