Dlaczego twórcy protokołu internetowego zdecydowali się użyć adresów IP do identyfikacji konkretnego komputera? [Zamknięte]

10

Dlaczego twórcy protokołu internetowego zdecydowali się użyć adresów IP do identyfikacji konkretnego komputera?

Dlaczego po prostu nie przypisać każdemu komputerowi unikalnego identyfikatora podczas produkcji, a następnie użyć tego identyfikatora do identyfikacji komputera?

Jerry Rockwell
źródło
3
Nie ma mowy, żeby działało to w prawdziwym świecie ...
Radu Murzea,
20
Jak adres MAC ?
user694733,
12
@JerryRockwell Zdajesz sobie sprawę, że adresy MAC, które są najbliżej tego, co opisujesz, również mogą być sfałszowane? Innymi słowy, w tym świecie prawdopodobnie potrzebowałby tylko programu narzędziowego i szczęśliwego przypuszczenia, aby uzyskać nowy, działający identyfikator. Z drugiej strony, jeśli serwery proxy i sieci VPN naprawdę staną się niemożliwe, wielu uczciwych ludzi też ma problemy.
2
To pytanie wydaje się nie na temat, ponieważ dotyczy opracowywania oprogramowania zgodnie z definicją w Centrum pomocy . Twoje pytanie może być bardziej odpowiednie na superuser.com lub serverfault.com
Philipp
2
Adres IP to identyfikator. Zwykle ciągle się zmienia ze względu na szerokie zastosowanie DHCP.
Siyuan Ren,

Odpowiedzi:

34

Adres IP nie identyfikuje komputera - jeden komputer może mieć wiele adresów IP, a jeden adres IP może należeć do wielu komputerów, o ile znajdują się one w różnych sieciach.

IP nie jest identyfikatorem, jest częścią routingu. Określa punkt końcowy. Musi być konfigurowalny, aby jeden komputer mógł być używany w różnych sieciach - po zmianie sieci zmieniamy adresy IP komputerów. Jeśli zostały one naprawione, nie można mieć mechanizmu routingu używanego w sieciach IP.

Na przykład twoje imię może być twoim (stałym) identyfikatorem, ale twój adres to miejsce, do którego dostarczana jest twoja poczta. Adres można tutaj skonfigurować - jeśli się przeprowadzisz, otrzymasz nowy adres, a ktokolwiek przeprowadzi się do twojego starego miejsca, otrzyma twój stary adres. Jeśli zmienia się nazwa ulicy (konfiguracja sieci), zmienia się również adres. Ale mechanizm dostarczania pozostaje taki sam.

aragaer
źródło
2
w jaki sposób odnosi się to do postawionego pytania: „Dlaczego zdecydowali się twórcy protokołu internetowego”
gnat,
5
Jest to doskonały przykład z nazwą (jako MAC) i adresem (jako IP).
SerG
Prawdziwe rzeczy; ale odpowiedź nie wystarcza, aby wyjaśnić, dlaczego IP działa lepiej dla routingu niż ... Nie wiem. Coś jeszcze.
svidgen
1
Pytanie nie polegało na wyjaśnieniu, jak działa routing IP i w jaki sposób adres IP jest jego częścią. Chociaż istnieją inne odpowiedzi, które to wyjaśniają. Istnieją inne sposoby routingu, nie tylko IP.
aragaer
Zobacz HIP (Host Identity Protocol, RFC4423), aby spróbować dodać warstwę dla identyfikatorów hostów (przechowywanych jako adresy IPv6) między warstwą sieci a warstwą transportową.
ysdx
22

Gdyby każdy komputer miał unikalny identyfikator, tablice routingu musiałyby zawierać wszystkie trasy do wszystkich urządzeń w Internecie. To jest niepraktyczne.

Dlatego tcp / ip stosuje podejście wielopoziomowe.

Jeśli mój komputer 1.1.1.1 chce komunikować się z 2.2.2.2, po prostu prosi bramę o przekazanie pakietu, więc komunikuje się z: 1.1.1.0, ale ta brama nie wie również, gdzie jest 2.2.2.2, więc pyta swoją bramę aby przekazać pakiet, brama 1.1.0.0 podnosi go i pyta 1.0.0.0. 1.0.0.0 też nie wie, gdzie jest 2.2.2.2, ale wie, gdzie jest 2.0.0.0 (w jego tabeli routingu), więc żądanie jest teraz zmniejszane, ponieważ 2.0.0.0 wie, gdzie jest 2.2.0.0 i przekazuje pakiet, tak długo, aż pakiet osiągnie 2.2.2.2

(Jest to EKSTREMALNE uproszczenie tego, co się dzieje i może istnieć dowolna liczba przeskoków między 1.0.0.0 a 2.0.0.0).

To wielopoziomowe podejście z tablicami routingu umożliwia wydajne lokalizowanie innego komputera w sieci. Ale oznacza to również, że musi istnieć system bez unikalnego identyfikatora, ponieważ tabele routingu nie mogą zawierać wszystkich identyfikatorów i tras wszystkich komputerów podłączonych do Internetu.

Pieter B.
źródło
11

Z tego samego powodu usługa pocztowa używa adresów, a nie nazwisk .

Usługi pocztowe (i inni przewoźnicy paczek) tak naprawdę nie wysyłają paczek do ludzi. Wysyłają do miejsc i pozwalają ludziom w tej lokalizacji ustalić, która osoba faktycznie otrzyma paczkę. Powodem, dla którego to robią, jest to, że nie można powiedzieć, skąd dana osoba pochodzi tylko od jej imienia, i nie można zakodować tego w imieniu bez zmiany .

Internet nie używa tylko jednego protokołu: w rzeczywistości składa się z kilku protokołów, jeden na drugim. Tam protokoły wykorzystujące unikalne identyfikatory, a oni mieszkają w najniższym poziomie, zwany warstwy łącza . Ethernet (który wykorzystuje adresy MAC) i PPP (który najczęściej wykorzystuje numery telefonów) to dwa popularne przykłady protokołów warstwy łącza. Ale warstwa łącza ma swoje ograniczenia: możesz uzyskać sygnał tylko między komputerami, które są bezpośrednio ze sobą połączone , ponieważ każdy już musi wiedzieć, gdzie jest każdy. To sprawia, że ​​są podobni do ludzi w miejscu przeznaczenia paczki: wszyscy już się znają, więc mogą uporządkować między sobą, kto faktycznie dostanie paczkę.

IP znajduje się o jeden krok wyżej w warstwie sieciowej (czasem nazywanej warstwą internetową ). Zadaniem IP jest uzyskanie sygnału między lokalizacjami, które nie są bezpośrednio połączone . Inni przeszli już do stosowanego przez siebie hierarchicznego schematu routingu, ale większość usług pocztowych stosuje podobne systemy hierarchiczne od dawna przed Internetem, a nawet komputerami. Robią to, ponieważ jest to najłatwiejszy sposób na identyfikację różnych lokalizacji i wyznaczanie tras między nimi.

Ale komputery i lokalizacje to nie to samo. Komputery, podobnie jak ludzie, mogą przemieszczać się między różnymi lokalizacjami : na przykład możesz przenieść laptopa między domem a miejscem pracy. W danym miejscu może znajdować się więcej niż jeden komputer : jeśli korzystasz z routera bezprzewodowego w domu, możesz mieć podłączonych kilka urządzeń, ale wszystkie mają wspólny adres IP, jeśli chodzi o świat zewnętrzny. W niektórych okolicznościach pojedynczy komputer może mieć więcej niż jeden adres .

Internet musi być w stanie obsłużyć wszystkie te przypadki. Aby to zrobić w prosty i wydajny sposób, używają adresów, a nie identyfikatorów. W ten sposób IP nie musi wiedzieć ani przejmować się tym, co znajduje się na każdym końcu połączenia: jest tylko sygnał, miejsce, z którego pochodzi i miejsce, do którego należy go zabrać . Inne protokoły na stosie mogą zająć się innymi szczegółami.

The Spooniest
źródło
wielka analogia ...
Charles Salvia
2

Adres MAC identyfikuje komputer, a raczej jego sprzęt sieciowy.

Adres IP opisuje, gdzie znajduje się sprzęt. Routery używają go, aby dowiedzieć się, gdzie trasować pakiety, aby dotarły do ​​właściwego miejsca docelowego.

Ponieważ adres MAC nie zmienia się po przeniesieniu sprzętu, nie można go używać do routingu, ponieważ oznaczałoby to, że każdy router na całym świecie musiałby śledzić lokalizację każdego adresu MAC. Adresy IP działają w taki sposób, że każdy router nie potrzebuje pełnych informacji o odbiorcy, aby je poprawnie trasować, wiedzą, jaki zakres adresów IP wysłać. W ten sposób tylko jeden rzeczywisty router lub przełącznik musi wiedzieć, który adres IP jest dokładnie zlokalizowany. Każdy inny router potrzebuje tylko bardzo ogólnego pomysłu.

Pierre Andersson
źródło
1
wydaje się, że to tylko powtórzenie punktów poczynionych i wyjaśnionych w poprzedniej odpowiedzi
komnata
Zastanawiam się, dlaczego adresy MAC mają być przypisywane globalnie w sposób unikatowy, biorąc pod uwagę, że nawet przypisanie losowych adresów 32-bitowych byłoby bardzo mało prawdopodobne, aby spowodowało jakiekolwiek kolizje w podsieciach, które nie mają tysięcy komputerów (większość podsieci ma mniej niż 100), i rozwiązanie kolizji można rozwiązać po prostu przez dowolną maszynę, która wykrywa kolizję, losowo wybiera nowy adres; jeśli nie zareaguje na stary adres, maszyna, która chciała się komunikować, ponownie prześle ARP, znajdzie nowy adres i wszystko będzie dobrze.
supercat
1

Dlaczego twórcy protokołu internetowego zdecydowali się użyć adresów IP do identyfikacji konkretnego komputera?

Nie zrobili tego. Identyfikuje połączenie sieciowe, chociaż to samo połączenie może mieć również inne adresy IP.

Dlaczego po prostu nie przypisać każdemu komputerowi unikalnego identyfikatora podczas produkcji, a następnie użyć tego identyfikatora do identyfikacji komputera?

Po pierwsze, nie identyfikują komputerów jak wyżej.

OK, powiedz, że chcieli to zrobić z kartami sieciowymi. Musieliby przekonać każdego producenta karty sieciowej, aby używał identyfikatora z zestawu kontrolowanego przez osoby zaangażowane w ten konkretny plan łączenia sieci, o którym wiele osób nie myślało, że będzie działać, zanim będzie mogła działać. Powodzenia z tym.

Ponadto, producenci sprzętu sieciowego nie dbali o TCP / IP, troszczyli się o własne protokoły sieciowe, a może po drugie o te, z którymi konkurowali. W niektórych przypadkach posiadanie warstwy na wierzchu, która powodowała różnice między np. Ethernetem, ALOHAnetem, tokenem magistrali itp., Było złe dla niektórych technologii w dłuższej perspektywie, ponieważ sprawiło, że niektóre z tych, które zrobiły, były mniej przydatne (TCP / IP mógłby rób to zamiast tego), a ludzie mogli w końcu przejść do tych, którzy zrobili dokładnie to, czego potrzebował TCP / IP i niewiele więcej (tak jak Ethernet). TCP / IP był koniem trojańskim dla tych firm; chętnie się z nimi bawimy, ale jednocześnie niszczą ich interesy. Dlaczego powinni pomóc?

Ponadto niektóre z tych technologii były wcześniejsze niż TCP / IP, więc nie byłyby w stanie współpracować, a protokół TCP / IP nie mógłby być wykorzystywany w prawie wszystkich typach sieci.

Ponadto, który adres gdzie? Mój komputer ma obecnie adres 192.168.1.24 (między innymi), z którego korzystają także tysiące innych komputerów w innych sieciach. Nie potrzebuję unikalnego adresu, ponieważ nie mam bezpośredniego połączenia z Internetem. Z IPv6 zaczynamy przechodzić do punktu, w którym moglibyśmy mieć naprawdę unikatowy identyfikator dla każdej maszyny, gdybyśmy tego naprawdę chcieli, ale przed tym działaniem byłoby to jednocześnie ograniczenie liczby (cztery miliardy prawdopodobnie wydawałyby się dużo urządzeń w tym czasie, ale wymagałoby to bardzo ścisłego podziału liczb, więc w praktyce byłoby ich o wiele mniej, nawet jeśli byłby to realny problem) i bezcelowe; cały punkt IP to nie sieć, ale sieć, dlatego musimy martwić się tylko o jedną sieć, jeśli chodzi o identyfikatory,

Jon Hanna
źródło
0

Ale przy tak unikalnym identyfikatorze, jak MAC, nadal występuje problem z lokalizacją urządzenia w sieci. Niemożliwe jest połączenie wszystkich urządzeń i po prostu szukanie miejsca docelowego jeden po drugim na wszystkich hostach na świecie. Celem wynalazku są niektóre adresy hierarchiczne, takie jak IP.

SerG
źródło
wydaje się, że to tylko powtórzenie punktów przedstawionych i wyjaśnionych we wcześniejszej odpowiedzi
komnata
@gnat spójrz na znacznik czasu ostatnich zmian.
SerG
0

Kluczem do zrozumienia pierwotnego projektu Protokołu internetowego jest to, że sieci już istniały, a plan polegał na połączeniu sieci przy użyciu istniejących technologii, takich jak DECnet. Wymaganie od ludzi dodania nowego sprzętu z unikalnym identyfikatorem utrudniłoby go i nie było wymagane z jakiegokolwiek powodu technologicznego. Zastosowanym systemem było przydzielenie przedrostka (np. 8.0.0.0/24) organizacji, a następnie przypisanie adresów w tym zakresie obowiązkom tej organizacji.

Pozwala również administratorowi przypisać wiele adresów IP do tego samego komputera (w celu konsolidacji usług) lub alternatywnie wymienić komputer, ale nadal używać tego samego adresu IP lub używać tego samego adresu IP w odłączonej sieci testowej i tak dalej na. Powiązanie z konkretnym sprzętem byłoby ograniczające.

Ethernet używa adresów MAC do rozróżniania węzłów w tej samej sieci LAN, ale Ethernet postdatuje się w Internecie i czerpie z niego inspirację: http://inventors.about.com/library/weekly/aa111598.htm twierdzi, że nie wcześniej niż w 1973 roku, podczas gdy pierwsze internetowe RFC pochodzą z 1969 r. ( http://www.ietf.org/download/rfc-index.txt ), mniej więcej w tym samym czasie co lądowania na Księżycu.

pjc50
źródło