Kolizja
W informatyce termin „kolizja” ma dwa różne znaczenia. Jedno występuje, gdy dwa lub więcej zestawów danych zostaje zmodyfikowanych i daje tę samą wartość wynikową. Drugie dotyczy sieci i występuje, gdy dwa urządzenia przesyłają dane w tym samym czasie.
1. Kolizja danych
Do kolizji danych może dojść podczas tworzenia skrótu danych lub obliczania sumy kontrolnej. Funkcja skrótu zmniejsza dane do mniejszej wartości i jest często używana w kompresji oraz kryptografii. Chociaż operacja tworzenia skrótu może oszczędzać miejsce na dysku, możliwe jest, że dwa różne dane wejściowe dadzą ten sam wynik. Aby uniknąć zduplikowanych wartości w przypadku wystąpienia kolizji, można używać wielu funkcji skrótu.
Podobnie sumy kontrolne nie są gwarantowane jako unikatowe, ponieważ są mniejsze niż oryginalne dane. Chociaż prawdopodobieństwo jest często bardzo niskie, dwa różne zestawy danych mogą teoretycznie dać tę samą wartość sumy kontrolnej. Dobrze zaprojektowany algorytm powinien minimalizować to ryzyko.
2. Kolizja w sieci
Do kolizji w sieci dochodzi, gdy co najmniej dwa urządzenia próbują przesyłać dane przez sieć w tym samym czasie. Jeśli na przykład dwa komputery w sieci Ethernet wyślą dane w tej samej chwili, dane „zderzą się” i ich przesyłanie nie zostanie ukończone. Dlatego większość sieciowych protokołów potwierdza odebranie pakietów przed przesłaniem kolejnych danych.
Przełączniki i routery mogą ograniczać kolizje, sprawdzając przed przesłaniem danych, czy linia transmisyjna jest wolna lub „zajęta”. Powszechną metodą jest CSMA/CD, czyli „Carrier-sense multiple access with collision avoidance”. Chociaż można ograniczyć liczbę kolizji, nie da się ich całkowicie uniknąć. Jeśli na przykład dwa systemy uznają, że linia jest wolna, a następnie prześlą dane dokładnie w tym samym czasie, może dojść do kolizji. Można ją rozwiązać, retransmitując dane po losowym czasie oczekiwania.
Sprawdź swoją wiedzę