WEBVTT

1
00:08.160 --> 00:14.670
Evet, çocuklar, şimdi asenkron programlama
üzerine örnek

2
00:14.670 --> 00:19.110
projemizle başlama zamanı, bu yüzden bu
proje

3
00:19.110 --> 00:19.590
aracılığıyla bu derste öğreneceğimiz
kavramları uygulayacağız.

4
00:20.580 --> 00:25.290
Böylece proje async projesi olan bu
dizinde bulunabilir.

5
00:25.500 --> 00:27.690
Ve bu da sorun açıklamasıdır.

6
00:28.750 --> 00:34.270
Ve çözüm, Ussing proje çözümü olarak

7
00:34.270 --> 00:34.870
adlandırılan aynı konumdaki dizinde
bulunabilir.

8
00:36.210 --> 00:39.150
Konsolda görebileceğiniz gibi, ben bu
bölümdeyim.

9
00:40.310 --> 00:40.730
Tamam.

10
00:41.270 --> 00:45.500
Ve bu dizinin içinde, projemizi temsil
eden bir grup dosyam var.

11
00:45.980 --> 00:52.700
Şimdi tüm bu dosyaların ne olduğunu ve
bunların her birinin

12
00:52.700 --> 00:54.230
neyi temsil edeceğini ve bu projeye nasıl
başlayabileceğimizi tartışalım. Başlangıç

13
00:54.890 --> 00:59.620
olarak slaytta görebileceğiniz gibi,
Typekit'in görmediği bir dosyamız var.

14
01:00.350 --> 01:00.770
Tamam.

15
01:01.160 --> 01:04.190
Yani bu, uygulamamızı temsil eden
dosyadır.

16
01:04.610 --> 01:07.350
Ve adından da anlaşılacağı gibi, şartlı
tohumdur.

17
01:07.370 --> 01:11.840
Bu, mantıksal olarak tek iş parçacıklı bir
uygulama olması gerektiği anlamına gelir.

18
01:12.380 --> 01:12.770
Tamam.

19
01:14.340 --> 01:18.210
Bu uygulama kendi iç veri yapısından
sorumludur.

20
01:18.570 --> 01:24.900
Şimdi bu veri yapısı herhangi bir şey
olabilir ama ben yönlendirme tablosu

21
01:24.910 --> 01:26.760
adı verilen basit bir tablo seçtim, örnek
bir yönlendirme tablosunu burada
görebilirsiniz.

22
01:27.270 --> 01:34.470
Eğer bir ağ geçmişiniz yoksa, STV süreci
tarafından tutulan

23
01:34.470 --> 01:37.520
herhangi bir veri yapısı uğruna burada da
önemli değildir.

24
01:37.530 --> 01:44.460
Ben sadece bir yönlendirme tablosu aldım,
ancak siz başka herhangi

25
01:44.460 --> 01:44.820
bir şey alabilirsiniz ve bunu örnek
yönlendirme tablosunda görebilirsiniz.

26
01:44.820 --> 01:46.050
Dört alanımız var.

27
01:46.260 --> 01:52.770
Bu dört hedef ve cami alanından hedef

28
01:52.770 --> 01:53.520
Mars Ağ Geçidi ve giden arayüz
anahtarlardır.

29
01:54.090 --> 02:01.170
Ağ Geçidi ve ağ geçidi değerlerinin nedeni
ise, her zaman rastgele bir IP adresi ve
yaşamı alabilirsiniz.

30
02:01.170 --> 02:04.260
Her zaman rastgele bir arayüz adı
alabilirsiniz.

31
02:04.830 --> 02:05.250
Tamam.

32
02:08.630 --> 02:15.020
Yani bu yönlendirme tablosu dosyada
uygulanıyor, eklenmiş bir ek

33
02:15.020 --> 02:15.910
görmüyorum, bu yüzden burada iki dosyamız
olduğunu görebilirsiniz.

34
02:15.920 --> 02:19.340
Bu dosyada eklenmiş bir ek görmedim.

35
02:19.340 --> 02:22.650
Sadece ve sadece yönlendirme tablosu
API'lerini uygularım.

36
02:23.750 --> 02:26.930
Başlangıç olarak, dosyayı üzerine
açarsanız, bu.

37
02:28.340 --> 02:35.090
Yönlendirme tablosunun hiçbir şey
olmadığını göreceksiniz, ancak bu sadece
hiçbir

38
02:35.090 --> 02:40.580
şeyin etrafındaki iplerin bağlantılı bir
listesidir, ancak yönlendirme tablosundaki

39
02:40.580 --> 02:41.750
bir yatay kural olan yönlendirme
tablosundaki bireysel bir girdidir.

40
02:43.130 --> 02:51.290
Bu durumda, David'i çevreleyen yönlendirme
tablosu girişi olarak adlandırıyorum ve
yönlendirme

41
02:51.290 --> 02:55.190
tablosunun bir adı var ve iplerin bağlı
bir listesi olarak uygulanıyor.

42
02:55.970 --> 02:56.360
Doğru.

43
02:56.720 --> 03:02.390
Yani bu, yönlendirme tablosundaki ilk
çıkışı gösteren bağlantı listesinin
başıdır

44
03:02.390 --> 03:04.460
ve count, rota sayısı ve yönlendirme
tablosu anlamına gelir.

45
03:05.670 --> 03:12.330
Yani bu listedeki giriş sayısı ve bağlı
listenin her bir

46
03:12.330 --> 03:13.740
düğümü hiçbir şey değildir, ancak
yönlendirme tablosu girişimizi temsil
eder.

47
03:14.490 --> 03:21.210
Dediğim gibi, bu rotada hedef, cami hedefi
ve cami olmak üzere dört alan vardır.

48
03:21.210 --> 03:23.130
Bir anahtarı ne temsil eder? Ve

49
03:23.790 --> 03:26.520
ağ geçidimiz ve giden arayüzümüz var.

50
03:27.780 --> 03:33.690
Son güncellenme zamanı, bu yönlendirme
tablosu girişinin oluşturulduğu zaman
damgasıdır.

51
03:33.690 --> 03:39.090
Dolayısıyla, birinci başlık kartı olan
yönlendirme tablosu girişinin
oluşturulduğu sadece ABD sistem zaman
damgasıdır.

52
03:39.900 --> 03:40.290
Tamam.

53
03:41.220 --> 03:45.600
Ve bunların iki üye olduğunu
görebilirsiniz, önceki ve sonraki.

54
03:45.630 --> 03:48.900
Grupların bağlantı listesini bu şekilde
uygulayabilirsiniz.

55
03:49.620 --> 03:54.300
Ve dediğim gibi, yönlendirme tablosu
hiçbir şey değildir, ancak yönlendirme
tablosu girişlerinin bir bağlantı
listesidir.

56
03:54.930 --> 03:58.070
Yine de her yönlendirme tablosu girişinin
mükemmel bir önceki noktası vardır.

57
03:58.800 --> 03:59.160
Tamam.

58
04:00.060 --> 04:06.680
Ve bunlar yönlendirme tablosu ile
çalışmamızı yönetmemize yardımcı olan bir
grup API'dir.

59
04:09.900 --> 04:14.790
Dolayısıyla, elbette, bu API'nin dahili
uygulamasını görmek zorunda değilsiniz, bu

60
04:14.790 --> 04:20.380
nedenle bu API'yi hemen kullanabilirsiniz,
böylece yeni bir yazı kağıdı

61
04:20.410 --> 04:26.340
yönlendirme tablosu oluşturmak için
yönlendirme tablosunun adını geçmeniz
yeterlidir ve

62
04:26.340 --> 04:28.110
başlatılmış bir yönlendirme tablosu
oluşturacak ve yönlendirme tablosuna
işaretçi verecektir.

63
04:29.010 --> 04:33.630
Benzer şekilde, yönlendirme tablosuna yeni
bir girdi eklemek için kullanılan ikinci
API'ye de sahipsiniz.

64
04:34.140 --> 04:39.570
Yani bu ilk argüman, yeni bir rota eklemek
istediğiniz yönlendirme tablosuna bir
işaretçidir.

65
04:40.110 --> 04:46.560
Ve zaten her şüphede bu dört alana sahip
olmanız gerektiğini biliyoruz,

66
04:46.560 --> 04:48.570
yani hedef ağ geçidi IP adresi ve giden
arayüz olmalıdır.

67
04:49.290 --> 04:52.950
Yani bu API başarılı olduğunda sıfır,
başarısız

68
04:53.220 --> 04:53.670
olduğunda eksi bir mi oluyor? Pekala.

69
04:54.090 --> 05:00.330
Yönlendirme tablosunda yinelenen girişlere
izin verilmez ve yönlendirme tablosundaki
giriş,

70
05:00.330 --> 05:03.990
hedef ve cami anahtar olarak kullanılarak
benzersiz bir şekilde tanımlanır.

71
05:04.680 --> 05:10.890
Varış noktası ve piyasa değeri
kombinasyonu, yuvarlak masada benzersiz
bir şekilde bir rota belirlemek

72
05:10.890 --> 05:16.080
için anahtar olarak ele alınmaktadır ve
basitlik adına, çalışmam arasında her
zaman şunu seçtim.

73
05:17.830 --> 05:21.170
Benzer şekilde, yönlendirme tablosundan
bir rotayı silmek istersiniz.

74
05:21.190 --> 05:26.110
Bunun için hedefi ve kütle değerini
anahtar olarak geçirmeniz gerekir.

75
05:26.740 --> 05:30.550
Ve bu API sıfırda altı bin eksi bir
başarısızlıkla sonuçlandı.

76
05:31.300 --> 05:35.080
Benzer şekilde, yönlendirme tablosu
girişindeki yönlendirmeyi güncellemek
istersiniz.

77
05:35.590 --> 05:40.690
Bunun için, yönlendirme tablosunda
güncellenmesi gereken belirli bir rotayı

78
05:40.690 --> 05:43.120
tanımlayacak olan hedef ve kitle değerini
iletmeniz gerekir.

79
05:43.780 --> 05:47.590
Ve sonra yeni Ağ Geçidi IP adresini de
geçmeniz gerekir.

80
05:47.590 --> 05:54.550
Ve güncelleme yapacağınız yeni giden
arayüz yönlendirme tablosu girişlerinde
yer alır.

81
05:55.000 --> 05:59.770
Yani bunlar, bu API'nin geliştiriciden
geçmesini beklediği yeni değerlerdir.

82
06:00.790 --> 06:01.180
Tamam.

83
06:02.140 --> 06:06.100
Ve tabii ki, bu API başarıda sıfır,
başarısızlıkta eksi bir.

84
06:06.640 --> 06:08.080
Yani bu oldukça kolay.

85
06:08.110 --> 06:14.470
Yönlendirme tablosu, bağlantı listesinin
yönetimiyle ilgili olduğu anlamına gelir;
bu da

86
06:14.470 --> 06:16.510
çağrılan bir tür veriyi geri yükler ve
başka bir şey değildir.

87
06:17.650 --> 06:21.220
Bu da yönlendirme tablosunu görüntülemek
için kullanılan API'dir.

88
06:22.790 --> 06:23.210
Tamam.

89
06:23.780 --> 06:29.150
Bu da yönlendirme tablosundan belirli bir
rotayı aramak için kullanılan API'dir.

90
06:29.750 --> 06:35.570
Bu yüzden, yuvarlak masadan yukarı
bakmanız için size emanet edilen bir yolun
anahtarını ayrıştırmanız gerekir.

91
06:36.860 --> 06:37.260
Tamam.

92
06:37.280 --> 06:42.710
Bu yüzden bu API'lerin uygulanmasını
tartışmayayım çünkü buna gerek yok.

93
06:43.160 --> 06:51.050
Bununla birlikte, ilginizi çekmesi için,
bu API'nin uygulanmasını

94
06:51.050 --> 06:51.410
ve dosyayı her zaman görebilirsiniz veya
görmediniz.

95
06:56.370 --> 06:58.650
İşte dosyanın içindeyim, ah, görmedim.

96
07:01.400 --> 07:05.930
Evet arkadaşlar, şimdi ana uygulamamız
olan aptal uygulamamıza geliyoruz.

97
07:06.590 --> 07:11.960
Yönlendirme tablosunun, adım adım işlemle
sahip olunan veri yapısını temsil ettiğini
görebilirsiniz.

98
07:12.740 --> 07:18.770
SGP sürecimizin tek iş parçacıklı bir
süreç olması gerektiğini

99
07:18.770 --> 07:21.860
ve bu kısıtlamayı ihlal edersek projemizin
başarısız olacağını unutmayın.

100
07:22.580 --> 07:28.550
Mantıksal olarak, SGP sürecimizi her zaman
tek bir

101
07:28.550 --> 07:29.180
iş parçacıklı süreç olarak sürdürmemiz
gerektiğini görmeliyiz.

102
07:30.350 --> 07:39.410
Şimdi Dot C dosyası ortalama fonksiyonunu
ve bu ortalama fonksiyon sırasını
içerdiğinden, ana

103
07:39.410 --> 07:46.100
tehdidin kullanıcıdan girdi kabul etme ve
yönlendirme tablosunu güncelleme
sorumluluğuna sahip olduğunu
görebilirsiniz.

104
07:49.330 --> 07:57.160
Şimdi, dosyayı Typekit be easy olarak
çalıştırırsanız, dosyanın aşağıdakileri
göstereceğini göreceksiniz.

105
07:58.550 --> 08:04.940
Ana menü ve yan yana, SDP dosyasını da
tartışmama izin verin.

106
08:08.620 --> 08:15.490
Burada ask to be dosyasını açtım ve
tartışmamıza ana işlevle başlayalım,

107
08:15.490 --> 08:20.650
böylece bunu görebilirsiniz, ancak Typekit
Nazi olarak yönlendirme tablosundan kim
sorumludur.

108
08:20.650 --> 08:23.740
Bu yüzden Nazi olmak için dosyalarda
küresel bir oran aldım.

109
08:24.430 --> 08:29.110
Ve SDP süreçlerimiz başlar başlamaz,
yuvarlak masayı başlatıyoruz.

110
08:29.110 --> 08:31.960
Yeni yönlendirme tablosu oluşturmak için
API'mizi kullanma.

111
08:32.260 --> 08:38.770
Cerf boş bir yönlendirme tablosu
oluşturacak ve ardından ana iş
parçacığımız sonsuz bir döngüye
girecektir.

112
08:41.730 --> 08:47.400
Ve ilk yıllarınızda programlamayı
öğrenerek birçok kez

113
08:48.090 --> 08:49.380
menü odaklı bir program yazmış
olmalısınız.

114
08:49.950 --> 08:55.830
İşte burada görüntülenen ana döngü budur.

115
08:56.520 --> 09:00.690
Yani şimdi, eğer Çin'in bir numaralı
merakını seçerseniz, yönlendirme tablosu
boş olacaktır.

116
09:01.260 --> 09:09.360
Ve eğer iki numaralı seçeneği seçerseniz,
bu sizden yeni

117
09:09.360 --> 09:09.740
bir yönlendirme tablosu girişi
oluşturmanızı istediği anlamına gelir.

118
09:09.750 --> 09:16.770
Diyelim ki hedef IP adresini 122 nokta

119
09:16.770 --> 09:18.240
1.1.1 olarak belirleyerek yuvarlak masa
girişi oluşturdum.

120
09:18.750 --> 09:25.350
Kütle değeri de her zaman varsayılan
olarak hedeftir, bu nedenle cami değerini
ve

121
09:25.350 --> 09:29.910
seçebileceğiniz ağ geçidi IP adresini ve
IP adresini ve giden arabirimi girmeniz
gerekmez.

122
09:29.910 --> 09:33.690
Arayüz adını temsil eden herhangi bir
rastgele dize seçebilirsiniz.

123
09:34.650 --> 09:39.780
Pekala, enter tuşuna bastığınızda
yönlendirme tablosunun güncellendiğini
görebilirsiniz.

124
09:41.860 --> 09:46.810
Böylece bir numaralı seçeneği seçerek
yuvarlak tabloyu görüntüleyebilir ve

125
09:46.810 --> 09:51.340
kullanıcı tarafından oluşturulan ante'nin
yönlendirme tablosuna eklendiğini
görebilirsiniz.

126
09:52.150 --> 09:57.070
Benzer şekilde, yönlendirme tablosuna daha
fazla giriş eklemek

127
09:57.070 --> 09:57.520
için iki numaralı seçeneği tekrar tekrar
seçebilirsiniz.

128
09:58.180 --> 10:03.430
Yönlendirme tablosundan mevcut bir girişi
silmek için dört numaralı seçeneği
seçebilirsiniz.

129
10:04.210 --> 10:04.600
Tamam.

130
10:04.990 --> 10:07.240
Böylece bu ana menü ile bir süre
oynayabilirsiniz.

131
10:08.840 --> 10:14.120
Şimdi slayta geri dönecek olursak,
kullanıcıdan gelen girdiyi kabul etme ve
Nazi'nin istila

132
10:14.120 --> 10:20.030
ettiği yönlendirme tablosu veri yapısını
güncelleme sorumluluğunun ana iş
parçacığında olduğunu söylemiştim.

133
10:20.540 --> 10:25.550
Bu sadece yönlendirme tablosunun ana
tehdit bağlamında güncellendiği anlamına
gelir.

134
10:26.420 --> 10:32.120
Gördüğünüz gibi yönlendirme tablosunu
işleten ana tehdidin kendisidir.

135
10:34.250 --> 10:40.550
Kullanıcı seçim yaptıktan sonra, kullanıcı
seçim numarasını girdiğinde,

136
10:40.550 --> 10:41.540
Clia işleyici işlevini yalnızca ana iş
parçacığından çağırırız.

137
10:42.410 --> 10:44.690
Ve bu Clia işleyici işlevinde.

138
10:46.020 --> 10:52.380
Seçime bağlı olarak, kullanıcı bir, iki,
üç, vb. seçenek numarasını girmiş

139
10:52.380 --> 10:57.540
olsun, ben ölüyorum veya girişi
yönlendirme tablosundan siliyorum, bu
kadar basit.

140
10:59.320 --> 11:03.990
Yani asıl önemli olan, yönlendirme
tablosunun, bilirsiniz, yapısının

141
11:03.990 --> 11:05.970
bu adım sürecinin ana tehdidi bağlamında
güncelleniyor olmasıdır.

142
11:07.800 --> 11:09.510
Sonra ağ geliyor.

143
11:09.960 --> 11:17.580
Kullanıcının paket dinleyici tuzakları
oluşturmasına izin vermek için hüküm
sağladım.

144
11:18.270 --> 11:24.990
Bu paket dinleyici iş parçacıkları ağ
soketini dinler ve

145
11:24.990 --> 11:25.590
ağ paketlerini almak için bir konumda
hazır olur.

146
11:26.520 --> 11:26.940
Tamam.

147
11:28.620 --> 11:36.240
Yani ikili dosyada, beş numaralı seçeneği
seçerseniz,

148
11:36.240 --> 11:37.950
kullanıcı bir paket dinleyici iş parçacığı
oluşturuyor.

149
11:38.970 --> 11:44.040
Dolayısıyla, beş numaralı seçeneği
seçtiğinizde, ağ soketinin oluşturulacağı
veya paket

150
11:45.330 --> 11:49.800
dinleyici iş parçacığının dinleyeceği bazı
bağlantı noktası numaralarını belirtmeniz
gerekir.

151
11:50.520 --> 11:58.920
Örneğin, bu durumda, rastgele kırk bin
sayısını girdim ve yerel

152
11:58.920 --> 12:07.920
IP adresi olan 127.0.0.1 IP adresini
dinleyen, ancak kırk bin

153
12:07.920 --> 12:09.510
numaralı bağlantı noktasını dinleyen paket
dinleyici iş parçacığı oluşturuldu.

154
12:10.440 --> 12:15.180
Benzer şekilde, yine beş numaralı seçeneği
seçerek başka bir paket dinleyici izi

155
12:15.660 --> 12:20.490
oluşturabilir ve bu sefer 50000 olan başka
bir bağlantı noktası numarası
sağlayabilirsiniz.

156
12:21.030 --> 12:23.190
Yani yine bir paket dinleyicisi
oluşturmaya çalışıyor.

157
12:26.270 --> 12:28.340
Şimdi şu aptala gelelim.

158
12:31.080 --> 12:33.420
Bakalım geri çekilmiş, en azından doğru
yaratılmamış.

159
12:33.930 --> 12:36.960
Yani kullanıcı beş numaralı seçeneği girer
girmez.

160
12:38.950 --> 12:45.670
Gösterimde de görebileceğiniz gibi,
kullanıcıdan port numarasını girmesini
istiyorum ve ardından basitçe

161
12:45.670 --> 12:54.160
bir API UDP sunucusu çağırıyorum,
oluşturuyorum ve başlatıyorum ve 127.0.0.1
IP adresini

162
12:54.160 --> 13:00.760
ve kullanıcı tarafından girilen port
numarasını dinleyen UDP sunucu iş
parçacığım oluşturuluyor.

163
13:01.210 --> 13:08.290
Ve sonra paket dinleyicisi tarafından
ağdan alınacak tüm

164
13:08.290 --> 13:13.990
paketleri alacak olan bu paket işlem
işlevini geçiriyorum.

165
13:14.970 --> 13:22.200
Ya da başka bir deyişle, geriye dönük
dinleme, geriye dönük süreç işlevini

166
13:22.200 --> 13:27.510
çağırarak aptal Nazi sürecinin iç yapısını
azaltmaya yönelik bir yol diyebilirsiniz.

167
13:28.560 --> 13:28.950
Tamam.

168
13:31.890 --> 13:39.450
Şimdi, başlatmak için oluşturulan bu FBI
UDP sunucusu, başlatmadığınız

169
13:39.450 --> 13:43.680
dosya ağında uygulandı ve uygulaması ağ
yönlendiricilerinde, dropsy'de mevcut.

170
13:44.160 --> 13:49.260
Şimdi bu noktada, ağ programcılığı ile

171
13:49.260 --> 13:50.280
çalışmak için bir geçmişiniz
olmayabileceğini varsayıyorum.

172
13:50.670 --> 13:55.800
Bu nedenle, ağ geriye dönük dinleyici iş
parçacıkları olan paket dinleyici iş
parçacıklarının nasıl

173
13:55.800 --> 14:01.310
oluşturulacağına dair tüm uygulamaları
duydum ve tüm karmaşıklık ve ayrıntılar
dosya ağında gizlidir.

174
14:01.320 --> 14:07.830
Paket dinleyici iş parçacıklarının nasıl
oluşturulacağına ilişkin dahili uygulamayı

175
14:07.830 --> 14:08.970
görmek için işle ilgili hiçbir amacınız
olmadığını görmeye başlayabilirsiniz.

176
14:09.330 --> 14:18.180
İhtiyacınız olan tek şey, bir paket
dinleyici iş parçacığı oluşturmak için

177
14:18.180 --> 14:19.410
bir API UDP sunucusu çağırmanız,
oluşturmanız ve başlatmanız gerektiğini
bilmektir.

178
14:20.100 --> 14:20.550
Tamam.

179
14:21.000 --> 14:26.430
Beş numaralı seçenek seçildiğinde, tahmin
süreci istediği

180
14:26.430 --> 14:27.090
kadar paket ve iş parçacığı oluşturabilir.

181
14:28.130 --> 14:34.110
Kova dinleyicisi, bir iş parçacığı harici
ağdan paketi

182
14:34.110 --> 14:35.840
alır almaz, bu işlev paket işleme işlevi
çağrılacaktır.

183
14:36.530 --> 14:41.720
Bu paket işlem işlevi yerel bir işlevdir
ve

184
14:41.720 --> 14:42.500
Dot C olması istenir ve aşağıdaki imzalara
sahiptir.

185
14:43.490 --> 14:46.400
Yani bu, ağdan alınan mesajdır.

186
14:46.430 --> 14:48.320
Bu, mesaj boyutu davetleridir.

187
14:48.950 --> 14:55.290
Bu, uzak makineden bu mesajı gönderen
kişinin gönderici IP adresidir.

188
14:55.700 --> 15:01.010
Bu göndericinin IP adresi ve göndericinin
kendisinin bir port numarası olacaktır.

189
15:01.670 --> 15:02.090
Tamam.

190
15:02.420 --> 15:04.730
Ve bu dosya tanımlayıcısını her zaman yok
sayabilirsiniz.

191
15:05.960 --> 15:11.060
Bu noktada, 40000 ve 50000 numaralı
bağlantı noktalarını

192
15:11.060 --> 15:12.800
dinleyen yinelenen bir dinleyici iş
parçacığı oluşturdum.

193
15:13.490 --> 15:19.190
Şimdi size tüm paket dinleyici iş
parçacıklarının uzak ağdan paket
alabileceğini göstereceğim.

194
15:24.000 --> 15:30.180
Bunun için, istemciniz olan bir dosya
olduğunu görebilir veya bu programı
çalıştırıp çalıştırmadığınızı
görebilirsiniz.

195
15:31.200 --> 15:39.390
En azından bizim kurulum sürecimizin bir
parçası değil, arkaya rota

196
15:39.390 --> 15:41.460
göndermek için ayakta durmak için belirli
parametreleri geçmeniz gerekiyor.

197
15:42.030 --> 15:42.450
Tamam.

198
15:43.650 --> 15:49.380
Dolayısıyla, bu çalıştırılabilir dosyayı
çağırmak için, paket dinleme

199
15:49.380 --> 15:50.820
iş parçacığınızın dinlediği yerel IP
adresini geçmeniz gerekir.

200
15:51.240 --> 15:56.970
Dediğim gibi, paket dinleyici 127.0.0.1 IP
adresini dinleyerek başarılı olur.

201
15:57.660 --> 16:02.460
Ve iki paket dinleyici tuzağı olduğundan,
hangi

202
16:02.460 --> 16:02.820
pakete olduğunu belirtmeniz gerekir, hadi
belirtmeyelim.

203
16:02.820 --> 16:04.170
Neden veri göndermek istiyorsunuz? Bu
durumda,

204
16:04.860 --> 16:10.320
kırk bin numaralı bağlantı noktasını
dinleyen

205
16:10.320 --> 16:11.430
paket dinleyicisi triad'a veri göndermeye
çalışıyorum.

206
16:12.240 --> 16:18.660
Ve belirtmem gereken bir sonraki şey,
paket dinleyici iş parçacığına göndermek
istediğim rota.

207
16:19.560 --> 16:28.140
Diyelim ki 100 veya 1.1 ağ geçidi IP
adresini imzalamak istiyorum.

208
16:28.140 --> 16:35.130
Standart 1.1.1 herhangi bir şey alabilir
ve arayüzü zamanında alabilirsiniz.

209
16:36.300 --> 16:36.740
Tamam.

210
16:36.750 --> 16:42.170
Yani enter tuşuna basar basmaz, oh, bu
yetersiz.

211
16:42.390 --> 16:42.780
TAMAM.

212
16:43.230 --> 16:50.430
Ve aktarmanız gereken son argüman, o adım
işleminde yönlendirme tablosu

213
16:50.430 --> 16:54.180
üzerinde ne tür bir işlem gerçekleştirmek
istediğiniz, silmek isteyip
istemediğinizdir.

214
16:55.280 --> 16:56.470
Bu özel rota.

215
16:57.440 --> 17:00.250
Bunu siparişle ilgili güncellemek istiyor
musunuz, buna inanmak istiyor

216
17:01.280 --> 17:05.990
musunuz? Yani buna dayanarak, belirli bir
kodu geçmeniz gerekiyor.

217
17:06.740 --> 17:10.250
Yani kod burada tanımlanmıştır, bu yüzden
bir tane geçirmeniz gerekir.

218
17:10.250 --> 17:16.400
Tip adım işleminin yönlendirme tablosunda
bir rota oluşturmak istiyorsanız,

219
17:16.400 --> 17:21.110
rotayı güncellemek istiyorsanız ikiyi
geçmeniz gerekir ve bunu yönlendirme

220
17:21.110 --> 17:22.940
tablosundan silmek istiyorsanız geçmeniz
gerekir, bu kadar basit.

221
17:25.530 --> 17:30.150
Diyelim ki bir rota oluşturmak istiyorum,
bu yüzden basitçe bir tane geçeceğim.

222
17:31.140 --> 17:37.860
Ve enter tuşuna basın, şimdi çalışmakta
olan adım sürecine

223
17:37.860 --> 17:39.630
gelin, paket dinleyici iş parçacığının
bazı bilgiler aldığını görebilirsiniz.

224
17:40.710 --> 17:41.130
Tamam.

225
17:41.670 --> 17:46.050
Böylece, tarafından gönderilen yönlendirme
tablosunu güncelleyecektir.

226
17:47.070 --> 17:48.420
Uzak ağ tarafından.

227
17:48.960 --> 17:54.030
Şimdi yönlendirme tablosunun içeriğinin ne
olduğunu görmek için bir numaralı

228
17:54.600 --> 17:56.580
seçeneği seçmeme izin verin. Ve yeni bir
rota oluşturulduğunu görebilirsiniz.

229
17:56.700 --> 18:01.410
Dolayısıyla, paket dinleyici iş parçacığı
uzak ağdan

230
18:01.410 --> 18:02.400
bilgi aldığı için bu kuraklık yaratılır.

231
18:03.630 --> 18:04.050
Tamam.

232
18:07.360 --> 18:13.510
Benzer şekilde, STV sürecimizin paket
dinleyici iş parçacığına bir veri
göndererek daha fazla rota
oluşturabilirsiniz.

233
18:14.050 --> 18:19.150
Diyelim ki bu sefer yaklaşık 100 ve 100
Nokta 1.1.2 oluşturmak istiyorum.

234
18:20.890 --> 18:27.310
Ve yine, yönlendirme tablosunun içeriğini
görüntülemek için bire

235
18:27.700 --> 18:29.710
basarsanız, daha fazla sayıda girişin
oluşturulduğunu görebilirsiniz.

236
18:30.550 --> 18:31.000
Tamam.

237
18:32.140 --> 18:35.470
Benzer şekilde, yönlendirme tablosundan
daha fazla rota oluşturabilirsiniz.

238
18:35.650 --> 18:38.740
Şu anda, 100 ve 1'i oluşturuyorum.

239
18:39.730 --> 18:46.170
Diyelim ki bu sefer nokta 1.1.3 rotasını
oluşturuyorum ve

240
18:46.180 --> 18:48.640
verileri 50000 dinleyen paket dinleyici iş
parçacığına gönderiyorum.

241
18:49.450 --> 18:50.650
Yani aynı şeyi yapacaktır.

242
18:52.930 --> 18:55.990
Ve bu kez yeni rotanın yeniden
oluşturulduğunu görebilirsiniz.

243
18:57.380 --> 19:02.230
Böylece her iki paket dinleyici iş
parçacığının da çalıştığını, bu

244
19:02.540 --> 19:06.770
ağdan veri aldıklarını ve paket işleme
işlevini çağırdıklarını görebilirsiniz.

245
19:08.210 --> 19:16.400
Dolayısıyla, paket dinleyici iş parçacığı
verileri alır almaz koda

246
19:16.400 --> 19:18.320
bakarsanız, paket işleme işlevi olan bu
işlevi çağırırlar.

247
19:19.190 --> 19:22.100
Ve şimdi alınan mesaj da budur.

248
19:22.100 --> 19:27.980
Alınan mesaj aşağıdaki formata sahiptir,
bu mesajın

249
19:27.980 --> 19:28.970
ilk dört baytı aslında işlem kodudur.

250
19:29.630 --> 19:34.160
Yani, yönlendirme tablosu girdisini
oluşturmak mı yoksa güncellemek veya
silmek mi istediğinizi belirtir.

251
19:34.880 --> 19:40.310
Dolayısıyla, bu mesajın ilk dört baytı
hiçbir şey değildir, ancak koddur

252
19:40.310 --> 19:44.060
ve bu mesajdaki baytların geri kalanı
format yönlendirme tablosu girişinde
kodlanmıştır.

253
19:45.890 --> 19:46.280
Tamam.

254
19:48.920 --> 19:54.740
Bu mesajdan tüm verileri aldıktan sonra,
basitçe bir API SDP güncelleme yönlendirme
tablosu çağırıyorum.

255
19:55.520 --> 19:57.600
Yönlendirme tablosuna bir işaretçi
gönderdim.

256
19:57.620 --> 19:59.900
Bu aptal sürecin global bir değişkeni.

257
20:00.230 --> 20:02.330
Ne tür bir operasyon gerçekleştirmek
istiyorum.

258
20:02.750 --> 20:07.490
Ve ağdan alınan tüm verileri içeren
yönlendirme tablosu girişi.

259
20:08.480 --> 20:13.430
Pekala, Hedef Mars Ağ Geçidi ve giden
arayüzü içerecektir.

260
20:14.330 --> 20:17.780
Ve basitçe SDP yönlendirme tablosunu
güncelle işlevini çağırıyorum.

261
20:17.780 --> 20:24.170
Ve komut koduna bağlı olarak, doğru işlemi
gerçekleştirmek

262
20:25.070 --> 20:26.780
için yönlendirme tablosunun uygun API'sini
çağırdığımı görebilirsiniz.

263
20:27.170 --> 20:32.660
Çoğu değeri, işleri basit tutmak amacıyla
görmek için her zaman Typekit'in yaptığı
gibi sabit kodladım.

264
20:33.500 --> 20:33.920
Tamam.

265
20:35.420 --> 20:41.480
SGP sürecinin tüm yapısı budur ve

266
20:41.480 --> 20:42.170
umarım bu noktada bunu iyi
anlamışsınızdır.

267
20:42.170 --> 20:48.620
Yönlendirme tablosu, ana tehdit bağlamında
kullanıcı tarafından ve paket bağlamında

268
20:48.620 --> 20:51.200
ağ tarafından eşzamanlı olarak
güncellenebilir, en azından doğru
değildir.

269
20:51.230 --> 20:55.820
Dolayısıyla, her ikisinde de uzak ağdan
aynı anda veri alabilen iki paket

270
20:55.820 --> 21:02.360
dinleyici iş parçacığı vardır ve buna göre
adım süreçlerinin yönlendirme tablosunu
güncelleyeceklerdir.

271
21:03.350 --> 21:03.740
Tamam.

272
21:05.680 --> 21:10.870
Böylece tek iş parçacıklı olduğu
varsayılır, ancak bu noktada, yönlendirme

273
21:10.870 --> 21:17.650
tablosu aynı anda iki Atlas dinleyici
kabilesi ve kullanıcı

274
21:18.250 --> 21:19.300
giriş yolu tarafından güncellendiği için
bu varsayımı ihlal eder.

275
21:19.810 --> 21:23.950
Bu basitçe, şu andaki tahmin sürecimizin
güvenli olmadığı anlamına gelmektedir.

276
21:24.340 --> 21:30.700
Bu adım sürecindeki işlemleri
gerçekleştirmeye devam ederseniz, neden

277
21:30.700 --> 21:32.350
bir yalan görelim veya verileri bir ağa
gönderirken?

278
21:34.420 --> 21:40.210
Tahmin süreciniz yanlış davranabilir,
segment hatası verebilir, çökebilir,

279
21:40.210 --> 21:40.780
yanlış sonuçlar verebilir veya herhangi
bir şey olabilir.

280
21:43.090 --> 21:49.120
Sanırım bu noktada, projenin kodunu
tamamen açıkladım ve bu dizindeki

281
21:49.120 --> 21:52.660
bu dosyaların her birinin ne yaptığını tam
olarak anladınız.

282
21:55.010 --> 22:00.440
İşte bir Challis Grubu, genellikle
varlıkları değil kurtarmaları söylüyor,
Shell betiğinin içeriğini görürseniz,

283
22:00.440 --> 22:08.270
hiçbir şey yapmıyor, ancak her paket
dinleyici iş parçacığına yalnızca 10 tur
gönderiyor.

284
22:08.870 --> 22:14.900
Bu grup, SGP sürecinin kırk bin kırk bin
bir ve kırk bin iki

285
22:14.900 --> 22:18.290
numaralı bağlantı noktasını dinleyen en
azından doğru olmayan üç paket
oluşturduğunu varsayar.

286
22:18.710 --> 22:26.930
Bu komut dosyasını çalıştırdığınızda, kırk
bin kırk bin bir

287
22:26.930 --> 22:29.360
ve kırk bin iki numaralı panolara onar
mermi göndereceğiz.

288
22:30.230 --> 22:38.270
İzin verin işlem olarak kabul edeyim ve
tekrar çalıştırayım.

289
22:39.260 --> 22:43.370
Kırk bin numaralı bağlantı noktasını
dinleyen bir paket dinleyici iş parçacığı
oluşturmama izin verin.

290
22:44.090 --> 22:47.840
Port numarasını dinleyen bir paket listesi
oluşturayım, tekrar okumayayım.

291
22:50.860 --> 22:52.320
Kırk bin bir.

292
22:53.700 --> 22:58.740
Kırk bin iki numaralı bağlantı noktasını
dinleyen üçüncü bir paket dinleyici iş
parçacığı oluşturmama izin verin.

293
23:00.450 --> 23:00.840
Tamam.

294
23:01.470 --> 23:06.540
Ve şimdi bu parlak komut dosyasını
çalıştırmama izin verin, bu şekilde
göndermenize veya test etmenize izin
verilecek.

295
23:08.870 --> 23:16.640
Ve şimdi UDP şüphesi komut dosyasını
çalıştıracağım, bir arama göndereceğim ve

296
23:16.640 --> 23:21.980
komut dosyasını çalıştırdıktan sonra,
yönlendirme tablosunu yazdırabilir ve bunu
bulabilirsiniz.

297
23:23.000 --> 23:26.030
Tutuklanan tahmin süreci bugün şüpheleri
öğrendi.

298
23:27.170 --> 23:32.930
Yani bu şüpheler, UDP şüpheleri ve
emirleri komut dosyası çalıştırılarak
öğrenilir, bu kadar basit.

299
23:35.480 --> 23:40.970
Eğer analiz ederseniz, bu diyagramda
yapmaya çalışmadığım üç paket listesi
oluşturdum,

300
23:40.970 --> 23:46.430
sadece iki paket listesi olduğunu
gösterdim, iş parçacığı yok ve bu

301
23:46.430 --> 23:47.870
paketlerin her ikisi de, hiçbir iş
parçacığı ağdan veri almıyor.

302
23:48.350 --> 23:53.390
Ve bu paket listelerinin çoğu, iş
parçacığı değil, daha sonra verileri

303
23:53.390 --> 23:55.280
bozucu tabloya itiyor ve böylece rotaları
ve güney tablosunu dolduruyor.

304
23:55.820 --> 23:58.280
Böylece paket dinleyicinin neyi tuzağa
düşürdüğünü görebilirsiniz.

305
23:58.280 --> 24:00.890
Gösterimizde, üç paket dinleyici iş
parçacığı bulunmaktadır.

306
24:01.310 --> 24:08.270
Tüm trip braketi dinleyici izleri,
herhangi bir mukus üretimi veya herhangi

307
24:08.270 --> 24:10.130
bir iş parçacığı senkronizasyonu olmadan
yönlendirme tablosunu aynı anda günceller.

308
24:10.640 --> 24:17.600
Bu da demek oluyor ki SGP programımız
oldukça güvensiz bir şekilde

309
24:17.600 --> 24:23.450
takip ediliyor ve eğer programımız çökerse
ya da yuvarlak masa

310
24:23.450 --> 24:23.990
nüfusu tanık olabileceğiniz herhangi bir
beklenmedik davranışta hatalı davranırsa
şaşırmayın.

311
24:24.560 --> 24:31.490
Dolayısıyla, bu noktada, geliştiricinin
birden fazla iş parçacığı başlatmak
zorunda kaldığını görebilirsiniz

312
24:32.120 --> 24:36.410
çünkü birden fazla olayı dinlemek için
işlenecek en iyi gereksinim buydu.

313
24:37.190 --> 24:41.900
Ancak aynı zamanda, geliştirici birden
fazla olayı dinlemek için birden fazla
dinleyici

314
24:41.900 --> 24:49.760
iş parçacığı başlattığında, tahmin
sürecimizin tek izli bir süreç olarak
kalması gerektiği

315
24:49.760 --> 24:52.970
varsayımımız olmasına rağmen, bir adım
süreci zorla çok iş parçacıklı sürece
dönüştürülür.

316
24:53.420 --> 24:59.000
Bu yüzden bir sonraki ders videosunda size
bu anomaliyi nasıl tedavi edebileceğimizi

317
24:59.000 --> 25:00.740
göstereceğim, şimdi yaptığımız bir sonraki
derste size tüm bu olayı göstereceğim.

318
25:00.740 --> 25:07.700
Döngü Kütüphanesi ilk işlemle entegre
edilebilir ve geliştirici

319
25:07.700 --> 25:08.630
bu paket dinleyici iş parçacıklarını nasıl
sağlam tutabilir.

320
25:09.170 --> 25:15.350
Ancak aynı zamanda, Make the event loop
kütüphanesinin

321
25:15.350 --> 25:16.820
yardımıyla, etkinlik süreci içindeki
hesaplamayı analiz edebiliriz.

322
25:17.540 --> 25:24.170
Yani, Olay Döngüsü Kütüphanesi, birden
fazla dinleyici iş parçacığı varken,

323
25:24.230 --> 25:27.140
bu Stibbe sürecinin veri yapılarının
eşzamanlı güncellemesini nasıl
kaldırabilir?


