Szczegóły ebooka

Sieci komputerowe. Najczęstsze problemy i ich rozwiązania

Sieci komputerowe. Najczęstsze problemy i ich rozwiązania

Russ White, Ethan Banks

Ebook

Zrozumienie budowy i działania sieci komputerowych nie jest łatwe. Trzeba przyswoić wiele pojęć, zrozumieć bardzo zawiłe mechanizmy, a także przygotować się na gwałtowny rozwój technologii sieciowych. Mimo dostępności licznych podręczników i wypracowania różnych podejść do nauczania podstaw sieci komputerowych wciąż wielu inżynierów nie rozumie tych zagadnień. Te braki w wiedzy i w umiejętnościach należy traktować jako istotny problem: w przyszłości będą się pojawiać coraz to nowsze rozwiązania sieciowe, a ich znaczenie dla niemal każdego przedsiębiorstwa będzie rosło.

W książce zastosowano podejście problemowe, dzięki czemu łatwiej jest zrozumieć budowę oraz działanie współczesnych sieci komputerowych i protokołów, jak również wyzwania, z jakimi mierzą się dzisiejsze systemy. W praktyczny sposób opisano zagadnienia transportu danych i sterowania pracą sieci, przeanalizowano też kilka typowych projektów i architektur sieci, w tym sieci szkieletowe centrów danych i nowoczesne sieci rozległe definiowane programowo (SD-WAN). Szczegółowo zaprezentowano takie technologie jak sieci definiowane programowo (SDN). Każdemu zagadnieniu towarzyszy omówienie typowych problemów i ich rozwiązań, a także sposobów ich implementacji w protokołach oraz metod wdrożenia.

W tej książce między innymi:

  • protokoły transportu w warstwach sieci i komunikacja międzywarstwowa
  • pakiety, usługi, topologia sieci
  • zabezpieczanie sieci, redundancja i odporność
  • wzorce projektowe w sieciach
  • automatyzacja zarządzania siecią
  • internet rzeczy oraz inne nowości w sieciach

Czy rozumiesz już działanie swojej sieci?


O autorach 17

Wprowadzenie 19

CZĘŚĆ I. PŁASZCZYZNA DANYCH 23

Rozdział 1. Podstawowe pojęcia 27

  • Sztuka czy inżynieria? 28
  • Komutacja łączy 30
  • Przełączanie pakietów 33
    • Działanie przełączania pakietów 34
    • Kontrola przepływu w sieci z przełączaniem pakietów 36
  • Ramki o stałej a ramki o zmiennej długości 37
  • Obliczanie ścieżek pozbawionych pętli 40
  • Jakość usług 42
  • Zemsta scentralizowanych płaszczyzn sterowania 44
  • Złożoność 44
    • Skąd ta złożoność? 45
    • Definiowanie złożoności 46
    • Zarządzanie złożonością poprzez talię osy 49
  • Końcowe rozważania 51
  • Dalsza lektura 51
  • Pytania kontrolne 52

Rozdział 2. Problemy i rozwiązania związane z transportem danych 55

  • Cyfrowe gramatyki i organizowanie 57
    • Cyfrowe gramatyki i słowniki 57
    • Pola o stałej długości 60
    • Format TLV 62
    • Współdzielone słowniki obiektów 63
  • Błędy 64
    • Wykrywanie błędów 64
    • Korekcja błędów 69
  • Multipleksowanie 71
    • Adresacja urządzeń i aplikacji 71
    • Multicast 73
    • Anycast 76
  • Kontrola przepływu 78
    • System okien dystrybucji 79
    • Negocjowane szybkości transmisji bitów 83
  • Końcowe rozważania dotyczące transportu 84
  • Dalsza lektura 84
  • Pytania kontrolne 86

Rozdział 3. Modelowanie transportu sieciowego 89

  • Model Departamentu Obrony Stanów Zjednoczonych (DoD) 90
  • Model Open Systems Interconnect (OSI) 93
  • Model rekursywnej architektury internetowej (RINA) 97
  • Zorientowanie na połączenie i bezpołączeniowość 99
  • Końcowe rozważania 99
  • Dalsza lektura 100
  • Pytania kontrolne 100

Rozdział 4. Transport w niższych warstwach 103

  • Ethernet 104
    • Multipleksowanie 104
    • Kontrola błędów 110
    • Organizowanie danych 111
    • Kontrola przepływu 112
  • Sieć bezprzewodowa 802.11 112
    • Multipleksowanie 113
    • Organizowanie danych, kontrola błędów i kontrola przepływu 119
  • Końcowe rozważania dotyczące protokołów transmisji w niższych warstwach 120
  • Dalsza lektura 121
  • Pytania kontrolne 121

Rozdział 5. Transport danych w wyższych warstwach 123

  • Protokół internetowy 125
    • Transport i organizowanie danych 127
    • Multipleksowanie 130
  • Protokół kontroli transmisji (TCP) 135
    • Kontrola przepływu 135
    • Kontrola błędów 140
    • Numery portów TCP 140
    • Konfiguracja sesji protokołu TCP 141
  • QUIC 141
    • Redukcja początkowego uzgadniania 142
    • Ograniczanie retransmisji 142
    • Zmniejszenie blokowania początku linii 143
  • ICMP 146
  • Końcowe rozważania 147
  • Dalsza lektura 148
  • Pytania kontrolne 150

Rozdział 6. Odnajdowanie międzywarstwowe 151

  • Rozwiązania w zakresie odnajdowania międzywarstwowego 152
    • Powszechnie znane lub ręcznie skonfigurowane identyfikatory 153
    • Mapowanie bazy danych i protokołu 154
    • Ogłaszanie mapowania identyfikatorów za pomocą protokołu 155
    • Wyliczanie jednego identyfikatora z innego 155
  • Przykłady odnajdowania międzywarstwowego 155
    • System nazw domen (DNS) 155
    • DHCP 157
    • Protokół rozwiązywania adresów IPv4 159
    • IPv6 Neighbor Discovery - odnajdowanie sąsiadów 161
  • Problem z bramą domyślną 163
  • Końcowe rozważania 166
  • Dalsza lektura 167
  • Pytania kontrolne 168

Rozdział 7. Przełączanie pakietów 169

  • Z medium fizycznego do pamięci 171
  • Przetwarzanie pakietu 172
    • Przełączanie 172
    • Routing 173
    • Po co routować? 174
    • Wiele ścieżek o równym koszcie 175
  • Przez magistralę 182
    • Krzyżowe pola komutacyjne i rywalizacja 184
  • Z pamięci do medium fizycznego 186
  • Końcowe rozważania dotyczące przełączania pakietów 187
  • Dalsza lektura 188
  • Pytania kontrolne 189

Rozdział 8. Jakość usług 191

  • Definiowanie zakresu problemu 192
    • Dlaczego po prostu nie zrobić wystarczająco szybkich łączy? 193
  • Klasyfikacja 194
    • Zachowywanie klasyfikacji 199
    • Nieoznaczony Internet 201
  • Zarządzanie zatorami 202
    • Terminowość - kolejkowanie o niskim opóźnieniu 202
    • Uczciwość - uczciwe kolejkowanie ważone według klasy 207
    • Krytyczne przeciążenie 208
    • Inne narzędzia QoS do zarządzania zatorami 208
  • Zarządzanie kolejką 209
    • Zarządzanie pełnym buforem - ważone losowe wczesne wykrywanie 209
    • Zarządzanie opóźnieniami bufora, rozdęte bufory i CoDel 210
  • Końcowe rozważania dotyczące QoS 212
  • Dalsza lektura 212
  • Pytania kontrolne 213

Rozdział 9. Wirtualizacja sieci 215

  • Zrozumieć sieci wirtualne 216
    • Świadczenie usług Ethernet w sieci IP 219
    • Wirtualny prywatny dostęp do sieci korporacyjnej 220
    • Podsumowanie problemów i rozwiązań związanych z wirtualizacją 222
  • Routing segmentowy 223
    • Routing segmentowy z wieloprotokołowym przełączaniem etykiet (MPLS) 224
    • Routing segmentowy w IPv6 228
    • Sygnalizowanie etykiet routingu segmentowego 229
  • Sieci rozległe definiowane programowo 230
  • Złożoność i wirtualizacja 232
    • Powierzchnie interakcji i grupy łączy wspólnego ryzyka 232
    • Powierzchnie interakcji i nakładające się płaszczyzny sterowania 234
  • Końcowe rozważania dotyczące wirtualizacji sieci 236
  • Dalsza lektura 236
  • Pytania kontrolne 238

Rozdział 10. Bezpieczeństwo transportu 239

  • Sformułowanie problemu 240
    • Sprawdzanie prawidłowości danych 240
    • Ochrona danych przed badaniem 240
    • Ochrona prywatności użytkowników 241
  • Dostępne rozwiązania 242
    • Szyfrowanie 242
    • Wymiana kluczy 249
    • Skróty kryptograficzne 252
    • Zaciemnianie danych użytkownika 252
  • Transport Layer Security 257
  • Końcowe rozważania dotyczące bezpieczeństwa transportu 259
  • Dalsza lektura 260
  • Pytania kontrolne 261

CZĘŚĆ II. PŁASZCZYZNA STEROWANIA 263

Rozdział 11. Wykrywanie topologii 265

  • Węzły, krawędzie i osiągalne miejsca docelowe 267
    • Węzeł 267
    • Krawędź 268
    • Osiągalne miejsce docelowe 268
    • Topologia 270
  • Poznawanie topologii 271
    • Wykrywanie innych urządzeń sieciowych 271
    • Wykrywanie łączności dwukierunkowej 272
    • Wykrywanie maksymalnej jednostki transmisji (MTU) 274
  • Uczenie się osiągalnych miejsc docelowych 276
    • Uczenie się reaktywne 276
    • Uczenie się proaktywnie 277
  • Rozgłaszanie osiągalności i topologii 278
    • Decydowanie, kiedy należy rozgłaszać osiągalność i topologię 278
    • Reaktywne rozpowszechnianie osiągalności 280
    • Proaktywne rozpowszechnianie osiągalności 283
  • Redystrybucja między płaszczyznami sterowania 285
    • Redystrybucja i metryki 285
    • Pętle redystrybucji i routingu 287
  • Końcowe rozważania dotyczące wykrywania topologii 289
  • Dalsza lektura 290
  • Pytania kontrolne 291

Rozdział 12. Wolne od pętli ścieżki unicastowe (1) 293

  • Która ścieżka jest wolna od pętli? 294
  • Drzewa 296
  • Alternatywne ścieżki wolne od pętli 299
    • Model wodospadu (lub zlewiska) 300
    • Przestrzeń P/Q 302
    • Zdalne alternatywy bez pętli 303
  • Obliczanie wolnej od pętli ścieżki za pomocą algorytmu Bellmana-Forda 304
  • Algorytm DUAL Garcii 310
  • Końcowe rozważania 315
  • Dalsza lektura 315
  • Pytania kontrolne 316

Rozdział 13. Wolne od pętli ścieżki unicastowe (2) 317

  • Najkrótsza ścieżka Dijkstry 317
    • Częściowy i przyrostowy SPF 324
    • Obliczanie LFA i rLFA 325
  • Wektor ścieżki 327
  • Algorytmy rozłącznej ścieżki 330
    • Sieć dwupołączona 331
    • Algorytm rozłącznej ścieżki Suurballe'a 332
    • Maksymalnie redundantne drzewa 336
  • Łączność dwukierunkowa 339
  • Końcowe rozważania 340
  • Dalsza lektura 341
  • Pytania kontrolne 343

Rozdział 14. Reagowanie na zmiany w topologii 345

  • Wykrywanie zmian w topologii 347
    • Odpytywanie w celu wykrycia awarii 347
    • Wykrywanie awarii oparte na zdarzeniach 348
    • Porównanie wykrywania opartego na zdarzeniach i odpytywaniu 350
    • Przykład: wykrywanie przekazywania dwukierunkowego 351
  • Dystrybucja zmian 354
    • Zalewanie 354
    • Przeskok po przeskoku 358
    • Scentralizowany magazyn 359
  • Spójność, dostępność i odporność na partycjonowanie 362
  • Końcowe rozważania 364
  • Dalsza lektura 365
  • Pytania kontrolne 366

Rozdział 15. Płaszczyzny sterowania wykorzystujące protokoły wektora odległości 367

  • Klasyfikacja płaszczyzn sterowania 368
  • Protokół STP 371
    • Budowanie drzewa wolnego od pętli 371
    • Poznawanie osiągalnych miejsc docelowych 375
    • Podsumowanie protokołu STP 377
  • Protokół RIP 378
    • Powiązanie algorytmu Bellmana-Forda z protokołem RIP 380
    • Reagowanie na zmiany w topologii 382
    • Podsumowanie protokołu RIP 383
  • Protokół EIGRP 383
    • Reagowanie na zmianę topologii 386
    • Wykrywanie sąsiadów i niezawodny transport 388
    • Podsumowanie protokołu EIGRP 390
  • Dalsza lektura 391
  • Pytania kontrolne 392

Rozdział 16. Płaszczyzny sterowania wykorzystujące protokoły stanu łącza i wektora ścieżki 395

  • Krótka historia OSPF i IS-IS 396
  • Protokół IS-IS 397
    • Adresowanie OSI 397
    • Marshalling danych w protokole IS-IS 399
    • Wykrywanie sąsiadów i topologii 399
    • Niezawodne zalanie 401
    • Podsumowanie protokołu IS-IS 403
  • Protokół OSPF 404
    • Marshalling danych w protokole OSPF 404
    • Wykrywanie sąsiadów i topologii 406
    • Niezawodne zalewanie 407
    • Podsumowanie protokołu OSPF 409
  • Wspólne elementy protokołów OSPF i IS-IS 409
    • Łącza wielodostępowe 410
    • Konceptualizacja łączy, węzłów i osiągalności w protokołach stanu łącza 412
    • Sprawdzanie łączności dwukierunkowej w SPF 414
  • Protokół BGP 414
    • Peering BGP 415
    • Proces decyzyjny wyboru najlepszej ścieżki w protokole BGP 417
    • Reguły rozgłaszania BGP 419
    • Podsumowanie protokołu BGP 421
  • Końcowe rozważania 421
  • Dalsza lektura 422
  • Pytania kontrolne 424

Rozdział 17. Reguły w płaszczyźnie sterowania 425

  • Przypadki użycia reguł płaszczyzny sterowania 426
    • Routing i ziemniaki 426
    • Segmentacja zasobów 428
    • Przypinanie przepływów dla optymalizacji aplikacji 429
  • Definiowanie reguł płaszczyzny sterowania 434
  • Reguły i złożoność płaszczyzny sterowania 435
    • Routing i ziemniaki 435
    • Segmentacja zasobów 436
    • Przypinanie przepływów dla optymalizacji aplikacji 438
  • Końcowe rozważania dotyczące reguł płaszczyzny sterowania 439
  • Dalsza lektura 439
  • Pytania kontrolne 440

Rozdział 18. Scentralizowane płaszczyzny sterowania 441

  • Definicja pojęcia software defined 442
    • Systematyka interfejsów 442
    • Podział pracy 444
  • BGP jako SDN 444
  • Fibbing 446
  • I2RS 449
  • Protokół PCEP 453
  • Protokół OpenFlow 455
  • Twierdzenie CAP i pomocniczość 457
  • Końcowe rozważania dotyczące scentralizowanych płaszczyzn sterowania 460
  • Dalsza lektura 461
  • Pytania kontrolne 462

Rozdział 19. Domeny awarii i ukrywanie informacji 463

  • Przestrzeń problemu 464
    • Definiowanie zakresu stanu płaszczyzny sterowania 464
    • Pętle dodatniego sprzężenia zwrotnego 465
  • Przestrzeń rozwiązań 468
    • Sumaryzacja informacji o topologii 469
    • Agregowanie informacji o osiągalności 470
    • Filtrowanie informacji o osiągalności 473
    • Uwarstwienie płaszczyzn sterowania 474
    • Buforowanie 475
    • Spowalnianie 479
  • Końcowe rozważania dotyczące ukrywania informacji 481
  • Dalsza lektura 481
  • Pytania kontrolne 482

Rozdział 20. Przykłady ukrywania informacji 483

  • Sumaryzacja informacji o topologii 484
    • Protokół IS-IS 484
    • Protokół OSPF 489
  • Agregacja 495
  • Uwarstwienie 496
    • Protokół BGP jako nakładka osiągalności 496
    • Routing segmentowy z nakładką kontrolera 498
  • Zmniejszenie prędkości stanu 500
    • Exponential backoff 500
    • Redukcja zalewania stanem łącza 503
  • Końcowe rozważania dotyczące domen awarii 505
  • Dalsza lektura 505
  • Pytania kontrolne 507

CZĘŚĆ III. PROJEKTOWANIE SIECI 509

  • Trzy podstawowe modele 510
    • Prawo nieszczelnych abstrakcji 510
    • Triada stan-optymalizacja-powierzchnia (SOS) 510
    • Triada spójność-dostępność-odporność na partycjonowanie (CAP) 511

Rozdział 21. Kwestie bezpieczeństwa w szerszym ujęciu 513

  • Zakres problemu 514
    • Zagadnienie tożsamości biometrycznej 514
    • Definicje 516
    • Przestrzeń problemów 517
  • Przestrzeń rozwiązań 517
    • Obrona w głąb 517
    • Kontrola dostępu 518
    • Ochrona danych 519
    • Gwarantowanie dostępności usług 523
  • Pętla OODA jako model bezpieczeństwa 532
    • Obserwuj 533
    • Zorientuj się 533
    • Zdecyduj 534
    • Działaj 535
  • Końcowe rozważania dotyczące kwestii bezpieczeństwa 535
  • Dalsza lektura 536
  • Pytania kontrolne 538

Rozdział 22. Wzorce projektowania sieci 539

  • Przestrzeń problemu 540
    • Rozwiązywanie problemów biznesowych 540
    • Przekładanie wymagań biznesowych na techniczne 544
    • Co to jest dobry projekt sieci? 546
  • Projektowanie hierarchiczne 547
  • Powszechne topologie 549
    • Topologie pierścienia 550
    • Topologie siatki 553
    • Topologie gwiazdy 555
    • Topologie planarne, nieplanarne i regularne 556
  • Końcowe rozważania dotyczące wzorców projektowania sieci 558
  • Dalsza lektura 558
  • Pytania kontrolne 558

Rozdział 23. Redundancja i odporność 559

  • Przestrzeń problemu: jak aplikacje postrzegają awarie 560
  • Definiowanie odporności 561
    • Inne "wskaźniki" 563
  • Redundancja jako narzędzie do tworzenia odporności 563
    • Grupy łączy współdzielonego ryzyka 565
    • Aktualizacja oprogramowania w trakcie działania i płynny restart 566
    • Rdzenie dwupłaszczyznowe i wielopłaszczyznowe 566
  • Modułowość i odporność 567
  • Końcowe rozważania dotyczące odporności 569
  • Dalsza lektura 569
  • Pytania kontrolne 570

Rozdział 24. Rozwiązywanie problemów 571

  • Co jest celem? 572
  • Czym są komponenty? 573
  • Modele i rozwiązywanie problemów 574
    • Budowanie modeli "jak" 575
    • Budowanie modeli "co" 576
    • Budowanie dokładnych modeli 578
    • Przełączanie się między modelami 579
  • Podziel na pół i idź dalej 581
    • Manipulowanie 583
    • Upraszczanie przed testowaniem 585
  • Usuwanie problemu 585
  • Końcowe rozważania dotyczące rozwiązywania problemów 586
  • Dalsza lektura 587
  • Pytania kontrolne 588

CZĘŚĆ IV. AKTUALNE TEMATY 589

Rozdział 25. Dezagregacja, hiperkonwergencja i zmieniająca się sieć 591

  • Zmiany w zasobach obliczeniowych i aplikacjach 592
    • Konwergentne, zdezagregowane, hiperkonwergentne i kompozycyjne 592
    • Zwirtualizowane i zdezagregowane aplikacje 595
  • Wpływ na projektowanie sieci 597
    • Wzrost ruchu na linii wschód - zachód 597
    • Wzrost odchyleń i opóźnień 599
  • Sieci szkieletowe z przełączaniem pakietów 599
    • Szczególne własności sieci szkieletowej 599
    • Gałęzie i liście 603
    • Inżynieria ruchu w sieci gałęzi i liści 606
    • Sieć gałęzi i liści o większej skali 607
  • Dezagregacja w sieciach 607
  • Końcowe rozważania dotyczące dezagregacji 611
  • Dalsza lektura 612
  • Pytania kontrolne 613

Rozdział 26. Powody automatyzacji sieci 615

  • Koncepcje automatyzacji 617
  • Nowoczesne metody automatyzacji 620
    • NETCONF 620
    • RESTCONF 623
  • Automatyzacja z wykorzystaniem interfejsów programowalnych 624
  • Automatyzacja na poziomie urządzenia 627
  • Automatyzacja sieci z wykorzystaniem narzędzi automatyzacji infrastruktury 628
  • Kontrolery sieciowe i automatyzacja 629
  • Automatyzacja sieci na potrzeby wdrażania 629
  • Końcowe rozważania dotyczące przyszłości automatyzacji sieci: od zautomatyzowanej do automatycznej 630
  • Dalsza lektura 630
  • Pytania kontrolne 632

Rozdział 27. Zwirtualizowane funkcje sieciowe 633

  • Elastyczność w projektowaniu sieci 635
    • Tworzenie łańcucha usług 637
  • Skalowanie horyzontalne 642
  • Zmniejszenie czasu obsługi dzięki automatyzacji 643
    • Scentralizowane zarządzanie konfiguracjami 643
    • Sieć oparta na intencjach 645
    • Korzyści 646
  • Architektura i korzyści obliczeniowe 646
    • Poprawianie przepustowości VNF 647
  • Rozważanie kompromisów 647
    • Stan 647
    • Optymalizacja 648
    • Powierzchnia 648
    • Inne kompromisy do rozważenia 649
  • Końcowe rozważania 649
  • Dalsza lektura 649
  • Pytania kontrolne 651

Rozdział 28. Koncepcje i wyzwania przetwarzania w chmurze 653

  • Biznesowe powody korzystania z chmur publicznych 655
    • Od wydatków inwestycyjnych do operacyjnych 656
    • Czas wprowadzenia na rynek i zwinność biznesowa 656
  • Nietechniczne kompromisy związane z chmurami publicznymi 657
    • Kompromisy operacyjne 657
    • Kompromisy biznesowe 660
  • Techniczne wyzwania tworzenia sieci w chmurze 661
    • Opóźnienie 661
    • Wypełnianie zdalnej przestrzeni dyskowej 663
    • Ciężar danych 664
    • Wybór spośród wielu ścieżek do chmury publicznej 664
  • Bezpieczeństwo w chmurze 665
    • Ochrona danych przy transporcie przez sieć publiczną 665
    • Zarządzanie bezpiecznymi połączeniami 666
    • Chmura z wieloma podmiotami 667
    • Kontrola dostępu oparta na rolach 667
  • Monitorowanie sieci w chmurze 668
  • Końcowe rozważania 668
  • Dalsza lektura 669
  • Pytania kontrolne 669

Rozdział 29. Internet rzeczy 671

  • Wprowadzenie do internetu rzeczy 672
  • Bezpieczeństwo internetu rzeczy 673
    • Zabezpieczanie niezabezpieczalnych urządzeń poprzez izolację 674
    • IoT nie stanowi nowych wyzwań dla bezpieczeństwa 678
  • Łączność w internecie rzeczy 678
    • Bluetooth Low Energy (BLE) 678
    • LoRaWAN 680
    • IPv6 dla IoT 681
  • Dane w internecie rzeczy 683
  • Końcowe rozważania dotyczące internetu rzeczy 684
  • Dalsza lektura 685
  • Pytania kontrolne 686

Rozdział 30. Patrząc w przyszłość 687

  • Rozpowszechniona otwarta automatyzacja 688
    • Języki modelowania i modele 689
    • Krótkie wprowadzenie do YANG 689
    • Patrząc w przyszłość w stronę wszechobecnej automatyzacji 691
  • Sieci hiperkonwergentne 691
  • Sieć oparta na intencjach 692
  • Uczenie maszynowe i wąska sztuczna inteligencja 694
  • Sieci nazwanych danych i łańcuchy bloków 696
    • Działanie sieci nazwanych danych 697
    • Łańcuchy bloków 700
  • Przekształcenia Internetu 702
  • Końcowe rozważania dotyczące przyszłości inżynierii sieci 704
  • Dalsza lektura 704
  • Pytania kontrolne 705

Skorowidz 707

  • Tytuł: Sieci komputerowe. Najczęstsze problemy i ich rozwiązania
  • Autor: Russ White, Ethan Banks
  • Tytuł oryginału: Computer Networking Problems and Solutions: An innovative approach to building resilient, modern networks
  • Tłumaczenie: Lech Lachowski, Witold Woicki
  • ISBN: 978-83-283-5048-9, 9788328350489
  • Data wydania: 2019-06-25
  • Format: Ebook
  • Identyfikator pozycji: sienpr
  • Wydawca: Helion