1
00:00:00,000 --> 00:00:02,000
Spójrzmy więc na pełniejszy przykład.

2
00:00:03,000 --> 00:00:11,000
W tym przykładzie host A inicjuje sesję z portem źródłowym 1024 w porcie docelowym 23,

3
00:00:12,000 --> 00:00:14,000
innymi słowy telnet.

4
00:00:15,000 --> 00:00:20,000
Host A wysyła 10 bajtów danych i początkowy numer kolejny 10.

5
00:00:21,000 --> 00:00:26,000
Host B potwierdza odbiór 10 bajtów, wysyłając potwierdzenie z

6
00:00:27,000 --> 00:00:30,000
powrotem na A z 11.

7
00:00:31,000 --> 00:00:35,000
Host B w tym przykładzie ustawia również początkowy numer sekwencji na 5.

8
00:00:40,000 --> 00:00:47,000
pamiętaj także, że numery portów są odwrócone

port źródłowy dla ruchu z B do A wynosi 23, a port docelowy to 1024.

9
00:00:48,000 --> 00:00:51,000
W tym przykładzie, ponieważ używamy przesuwanego okna

10
00:00:52,000 --> 00:00:55,000
A może wysłać np. 250 bajtów danych.

11
00:00:56,000 --> 00:00:59,000
Zauważ, że numer kolejny wzrasta do 260.

12
00:01:00,000 --> 00:01:03,000
W poprzednich przykładach używaliśmy łatwych numerów o wielkości okna 1

13
00:01:04,000 --> 00:01:08,000
lub o rozmiarze okna 3, ale proszę zauważyć, że w rzeczywistości rozmiary okien są

14
00:01:09,000 --> 00:01:12,000
ustawione na ilość danych, które mogą być przesyłane w bajtach.

15
00:01:13,000 --> 00:01:18,000
To może nie być tak łatwe do odczytania, jak sekwencje 1, 2 i 3.

16
00:01:23,000 --> 00:01:28,000
odbiór danych do sekwencji 5, a tym samym potwierdzanie numeru sekwencyjnego 6.

17
00:01:29,000 --> 00:01:31,000
Porty źródłowe są ponownie zamieniane,

18
00:01:32,000 --> 00:01:35,000
więc port źródłowy to 1024, a docelowy port 23.

19
00:01:36,000 --> 00:01:43,000
Teraz host B potwierdza dla numeru sekwencyjnego 261 pamiętając A wysyłają 10 bajtów

20
00:01:44,000 --> 00:01:48,000
i 250 bajtów, czyli innymi słowy 260 bajtów

21
00:01:49,000 --> 00:01:50,000
danych.

22
00:01:51,000 --> 00:01:57,000
B wysyła numer sekwencyjny 6 i po raz kolejny numery portów są odwrócone.

23
00:01:58,000 --> 00:02:02,000
Bardzo ważne jest, abyś rozumiał, jak działają porty źródłowe i

24
00:02:07,000 --> 00:02:14,000
docelowe. W związku z tym nie ma nic lepszego niż pokazanie przykładu z prawdziwego świata za pomocą Wiresharka.

25
00:02:15,000 --> 00:02:18,000
Więc zamierzam przechwycić ruch w mojej

26
00:02:19,000 --> 00:02:27,000
sieci, a potem przejdę na przykład do google. com z moją przeglądarką.

27
00:02:28,000 --> 00:02:41,000
Wrócę do Wireshark i zatrzymam przechwytywanie. Oto przykład zapytania DNS.

28
00:02:42,000 --> 00:02:48,000
Mamy hosta 10. 0. 0. 1, która jest

29
00:02:49,000 --> 00:02:53,000
moją maszyną, laptopem Dell, wysyłającym zapytania do serwera DNS.

30
00:02:54,000 --> 00:03:01,000
W warstwie 2 możesz zobaczyć, że źródłem jest moje urządzenie Dell trafiające do mojego routera Cisco.

31
00:03:02,000 --> 00:03:07,000
To jest ramka Ethernet 2 i proszę zwrócić uwagę na pole typu.

32
00:03:08,000 --> 00:03:15,000
W warstwie 2, jak wspomniano, pole typu określa protokół w warstwie 3.

33
00:03:16,000 --> 00:03:24,000
W tym przypadku 0x0800 w systemie szesnastkowym określa, że protokół warstwy 3 to IPv4.

34
00:03:25,000 --> 00:03:32,000
W warstwie 3 można zobaczyć źródłowy adres IP i docelowy adres IP.

35
00:03:33,000 --> 00:03:40,000
Mój komputer i serwer DNS, widać, że jest to IPv4, a długość

36
00:03:41,000 --> 00:03:44,000
nagłówka to 20 bajtów.

37
00:03:45,000 --> 00:03:51,000
Punkty DSCP lub punkty usług o zróżnicowanym dostępie nie są używane

38
00:03:52,000 --> 00:03:58,000
w tym przykładowym komunikacie ECN, który ma związek z jawnym powiadomieniem

39
00:04:02,000 --> 00:04:14,000
o przeciążeniu, o którym wspominałem krótko, gdy mówimy o nagłówku TCP. 42 To, co chciałbym zobaczyć tutaj, to zauważenie, że protokołem na warstwie 4

40
00:04:15,000 --> 00:04:22,000
jest UDP, który wartościuje szesnastkowo, więc 11 w systemie szesnastkowym jest równe 17 numerowi protokołu po

41
00:04:23,000 --> 00:04:26,000
raz kolejny dla UDP wynosi 17.

42
00:04:27,000 --> 00:04:32,000
Tak więc w warstwie 4 widzimy, że używany jest User Datagram Protocol lub UDP.

43
00:04:33,000 --> 00:04:38,000
Port źródłowy to 62249, innymi słowy, dynamiczny lub efemeryczny port

44
00:04:39,000 --> 00:04:43,000
docierający do portu docelowego 53, czyli DNS.

45
00:04:44,000 --> 00:05:01,000
Widzimy numery portów jeszcze raz i po otwarciu zapytania DNS widzimy,

46
00:05:02,000 --> 00:05:17,000
że było to zapytanie, szukając konkretnego adresu hosta.

47
00:05:18,000 --> 00:05:29,000
Tutaj mamy odpowiedź DNS z serwera DNS do mojego hosta.

48
00:05:30,000 --> 00:05:34,000
Tak więc bardzo szybko w warstwie 2 widać, że pole typu

49
00:05:35,000 --> 00:05:37,000
oznacza protokół w warstwie 3.

50
00:05:38,000 --> 00:05:49,000
W warstwie 3, pole protokołu, informuje nas, który protokół jest używany w warstwie 4

51
00:06:00,000 --> 00:06:09,000
Oto kolejna kwerenda DNS z mojego hosta do serwera DNS.

52
00:06:10,000 --> 00:06:14,000
A jeśli otworzymy informacje o kwerendzie DNS, zobaczysz, że jest

53
00:06:15,000 --> 00:06:19,000
to zapytanie dla google. com i jest to

54
00:06:20,000 --> 00:06:26,000
zapytanie hosta, powiadomienie typu A, serwer DNS odpowiada i zauważ w odpowiedzi,

55
00:06:27,000 --> 00:06:33,000
to daje nam adres IP google. com Oto trzydniowy

56
00:06:34,000 --> 00:06:41,000
uścisk dłoni między moim komputerem a Google.

57
00:06:42,000 --> 00:06:44,000
Zwróć uwagę, że źródłem jest 10. 0. 0. 1,

58
00:06:45,000 --> 00:06:48,000
a miejscem docelowym jest ten adres IP, którym jest Google.

59
00:06:58,000 --> 00:07:00,000
Zauważ, że port źródłowy ma 58313 celów, to 80

innymi słowy, otwieram połączenie internetowe z serwerem sieciowym.

60
00:07:01,000 --> 00:07:06,000
Otwierając to, możesz zobaczyć ponownie numery portu źródłowego i docelowego, ale

61
00:07:07,000 --> 00:07:10,000
zauważ, że ustawiona flaga to SYN.

62
00:07:11,000 --> 00:07:15,000
Tak więc otwierając powyższe można zobaczyć,

63
00:07:16,000 --> 00:07:21,000
że wszystkie inne flagi lub bit ustawiony na 0,

64
00:07:22,000 --> 00:07:31,000
z wyjątkiem bitów SYN i otwierania, które widać, próbujemy ustawić połączenie z serwerem, więc mamy

65
00:07:32,000 --> 00:07:36,000
połączenie ustanowienia żądania wiadomość na serwer.

66
00:07:37,000 --> 00:07:45,000
Nie ustawiono żadnych innych flag. Zwróć uwagę, że początkowy rozmiar okna

67
00:07:46,000 --> 00:07:56,000
to 8192 i otwierając opcje, możesz zauważyć, że MSS lub Maksymalny rozmiar segmentu jest ustawiony na 1460 bajtów.

68
00:07:57,000 --> 00:08:04,000
Odpowiedź od Google na mój komputer na warstwie 4 pokazuje, że port źródłowy to 80, a

69
00:08:05,000 --> 00:08:07,000
port docelowy to 58313.

70
00:08:08,000 --> 00:08:14,000
Otwierając to, zauważ, że ustawione flagi są SYN ACK, więc jest

71
00:08:15,000 --> 00:08:18,000
to druga część potrójnego uzgadniania.

72
00:08:19,000 --> 00:08:24,000
Zauważ, że bit potwierdzenia jest ustawiony, a bit

73
00:08:25,000 --> 00:08:32,000
synchronizacji ustawiony jest na otwarcie, widać, że jest to połączenie potwierdzające od Google.

74
00:08:33,000 --> 00:08:43,000
Zauważ, że żądanie rozmiaru okna wynosi 5720, a jeśli otworzymy tu informację o opcjach, maksymalny

75
00:08:44,000 --> 00:08:47,000
rozmiar segmentu to 1430.

76
00:08:48,000 --> 00:08:52,000
Patrząc na ostatnią część potrójnego uzgadniania, moja

77
00:08:53,000 --> 00:08:56,000
maszyna rozmawia z Google otwierającym

78
00:08:57,000 --> 00:09:08,000
TCP, widać, że ustawione flagi są tylko bitem potwierdzenia i żądanym rozmiarem okna 64350 85 i patrząc na analizę

79
00:09:14,000 --> 00:09:18,000
potwierdzenia sekwencji, zauważ, że jest to

80
00:09:19,000 --> 00:09:20,000
potwierdzenie.

81
00:09:21,000 --> 00:09:24,000
Wracając do pierwszego kroku potrząsania ręcznego zauważ,

82
00:09:25,000 --> 00:09:30,000
że początkowy numer sekwencji z mojego komputera do Google jest ustawiony na 0.

83
00:09:31,000 --> 00:09:35,000
Przechodząc do właściwego nagłówka TCP, zwróć uwagę na numer sekwencji 0.

84
00:09:36,000 --> 00:09:42,000
Googles odpowiadają jako numer kolejny 0 i potwierdzenie 1.

85
00:09:43,000 --> 00:09:45,000
Jak możesz zobaczyć tutaj.

86
00:09:46,000 --> 00:09:52,000
Dlatego nas informują, kolejnym segmentem, który spodziewają się otrzymać, jest segment 1.

87
00:09:53,000 --> 00:10:00,000
Naszym zdaniem, wysyłamy numer kolejny 1 i potwierdzamy

88
00:10:01,000 --> 00:10:04,000
numer kolejny 1.

89
00:10:05,000 --> 00:10:08,000
Jest to zgodne z tym, o czym rozmawialiśmy.

90
00:10:09,000 --> 00:10:15,000
Później, gdy otrzymamy powiadomienie HTTP, otrzymujemy informację od Google do

91
00:10:16,000 --> 00:10:21,000
naszego komputera o jego TCP i zauważmy,

92
00:10:22,000 --> 00:10:28,000
że jest to segment TCP ponownie zmontowanej Jednostki Danych Protokołu.

93
00:10:29,000 --> 00:10:31,000
Innymi słowy, jest to fragment.

94
00:10:32,000 --> 00:10:41,000
Patrząc na TCP, możemy zobaczyć źródła HTTP, a miejsce docelowe to nasz numer portu.

95
00:10:42,000 --> 00:10:45,000
Innymi słowy, Google wysyła do nas

96
00:10:46,000 --> 00:10:49,000
informację o tym, że numer

97
00:10:50,000 --> 00:10:54,000
kolejny to 2861, następny numer sekwencyjny to 3798,

98
00:10:55,000 --> 00:10:58,000
a numer potwierdzenia to 944.

99
00:10:59,000 --> 00:11:04,000
więc następnym numerem sekwencji jest 3798, idąc do następnej

100
00:11:05,000 --> 00:11:07,000
części powiadomienia o

101
00:11:08,000 --> 00:11:15,000
przechwytywaniu, tutaj numer sekwencji to 3798, a następny numer sekwencji to 5228.

102
00:11:16,000 --> 00:11:19,000
Zauważ, że nasz komputer otrzymał od

103
00:11:20,000 --> 00:11:23,000
Google potwierdzenie, że oczekujemy otrzymania 5228.

104
00:11:24,000 --> 00:11:28,000
A następnie kolejne przechwycenie, które można zobaczyć, że numer sekwencji

105
00:11:29,000 --> 00:11:32,000
5228, zostały wysłane z Google do nas.

106
00:11:33,000 --> 00:11:39,000
Następny numer sekwencyjny to 6658, który jest kolejnym odebranym elementem.

107
00:11:43,000 --> 00:11:48,000
Uwaga 6658 to otrzymany numer sekwencji. 114 Nasz gospodarz potwierdza otrzymanie tego

108
00:11:49,000 --> 00:11:53,000
i mówi, że następnym bitem danych do odbioru jest 7894 przechodzenie do

109
00:11:54,000 --> 00:11:59,000
następnego przechwycenia, możesz zobaczyć, że numer sekwencji jest tym, co Google do nas wysłał.

110
00:12:00,000 --> 00:12:02,000
Teraz, już nie nudząc Cię, mam

111
00:12:03,000 --> 00:12:06,000
nadzieję, że to przechwycenie daje ci trochę wglądu w

112
00:12:07,000 --> 00:12:09,000
to, co się dzieje w drucie.

113
00:12:10,000 --> 00:12:14,000
WireHark zapamiętuje darmową aplikację, którą możesz pobrać, po prostu wyszukaj ją w

114
00:12:15,000 --> 00:12:16,000
Internecie. Sugeruję

115
00:12:17,000 --> 00:12:19,000
teraz przechwycenie ruchu na twoim komputerze,

116
00:12:20,000 --> 00:12:23,000
abyś mógł zobaczyć, co się dzieje na zapleczu.

117
00:12:24,000 --> 00:12:25,000
Co więc omówiliśmy?

118
00:12:26,000 --> 00:12:30,000
W tej sekcji przyjrzymy się 2 głównym protokołom znajdującym się na warstwie 4.

119
00:12:31,000 --> 00:12:39,000
UDP lub User Datagram Protocol i TCP lub Transmission Control Protocol.

120
00:12:40,000 --> 00:12:45,000
Wyjaśniłem numery portów i jakie numery portów byłyby używane w jakich scenariuszach.

121
00:12:46,000 --> 00:12:48,000
Wyjaśniłem potrójny uścisk dłoni

122
00:12:49,000 --> 00:12:52,000
TCP, który wyjaśniłem windowing i wyjaśniłem numery sekwencji.

123
00:12:53,000 --> 00:12:55,000
Dziękuję za obejrzenie!
