-
Data: 2018-11-02 12:03:49
Temat: Re: opoznienia na switchu
Od: Mateusz Viste <m...@n...pamietam> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Fri, 02 Nov 2018 10:59:01 +0100, Roman Tyczka wrote:
> Rzeczywiście za mało precyzyjnie napisałem. Używając określenia P2P
> miałem na myśli nie tylko bezpośrednie połączenie host-host, co jest
> oczywiste,
> ale dalsze problemy jakie za tym idą, czyli nawiązanie połączenia
> omijającego NAT. Czytałem gdzieś kiedyś o tym, że sprawa opiera się o
> niskopoziomowe manipulowanie nagłówkami TCP/IP w czasie zestawiania
> połączenia, potem to już z górki (w sensie, że sama komunikacja jest
> innym etapiem, a problemem jest nawiązanie połączenia). Takie rzeczy
> robi skype, torrenty czy kiedyś emule.
Nie ma cudów - aby Grześ z Krzysiem mogli pogadać po TCP, to jeden z nich
co najmniej musi być poza NATem. Jeśli obaj są za NATem, to pomóc może
jedynie oparcie się na osobie trzeciej.
Z UDP można próbować kombinować, ale to niezwykle upierdliwa sprawa:
Krzyś wysyła datagramy UDP do Grzesia, z portu src 5000 do portu dst 6000.
Krzyś -> RouterK -> INTERNET -> RouterG -> Grześ
Po drodze RouterK zmienia port źródłowy datagramów na, dajmy na to, 20000.
W takiej sytuacji Grześ może tylko próbować wysyłać tysiące pakietów do
Krzysia, z losowymi portami src licząc, że RouterG w którymś momencie
podmieni port src na akurat ten wybrany przez RouterK. Słowem całkowita
loteria. Dla zwiększenia szans powodzenia, Krzyś może rozpocząć
kilkanaście sesji UDP z różnymi portami src, coby Krzysiowi było łatwiej
trafić.
Aby zrozumieć tandetność tej sytuacji, należy zrozumieć co tak naprawdę
robią RouterK i RouterG.
Kiedy router dostaje jakiś pakiet z wewnątrz:
1. zmienia port src
2. zmienia IP src
3. oblicza nowy checksum TCP (lub UDP)
4. zapisuje sobie w pamięci (w tzw. tablicy sesji) informację co
przetłumaczył, od kogo i na co.
Kiedy router dostaje jakiś pakiet z zewnątrz:
1. sprawdza w tablicy sesji czy posiada wpis odpowiadający tuplowi IPsrc
+IPdst+portSrc+portDst.
2. Jeśli któryś z wpisów tablicy sesji się zgadza, to podmienia adres
DST i port DST zgodnie z wpisem.
Wynika z tego, że aby ustalić połączenie z kimś za NATem, trzeba
wystarczająco szczęścia by wstrzelić się w parametry wpisu tablicy sesji.
A parametry te zna tylko sam router. Porty to wartości szesnastobitowe
(przy czym zakres 0-1024 można pominąć), więc kombinacji jest tylko nieco
ponad 4 miliony. Ale to dalej loteria.
Odpowiadając na pierwotne pytanie: nie ma takiej magii, która pozwoliłaby
ustawić na sockecie flagę "P2P" aby dostać się do dowolnego hosta za
NATem.
Ale cierpliwości - IPv6 już u progu :) (od 20 lat)
Mateusz
Następne wpisy z tego wątku
- 02.11.18 12:41 Roman Tyczka
- 02.11.18 13:20 Mateusz Viste
- 02.11.18 23:33 m
- 03.11.18 01:12 Marcin Debowski
- 03.11.18 01:15 Marcin Debowski
- 03.11.18 02:51 Marcin Debowski
- 03.11.18 03:05 m
- 03.11.18 03:57 Marcin Debowski
- 03.11.18 09:13 Roman Tyczka
- 03.11.18 09:19 Mateusz Viste
- 03.11.18 09:43 nadir
- 03.11.18 10:36 Roman Tyczka
- 03.11.18 10:57 Mateusz Viste
- 03.11.18 11:17 nadir
- 03.11.18 13:01 Andrzej P. Wozniak
Najnowsze wątki z tej grupy
- CFM (airflow) AMD Wraitha
- 16. Raport Totaliztyczny: Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- 15. Raport Totaliztyczny: Średniowiecze Po,Zniszczeniu AmigaOS i Plan9
- USB3.x->HDMI/DP ze sterownikami w win11
- Dell ubija / przemianowuje swoje flagowe linie laptopów
- Ten adapter nie obsłuży dysków HDD PATA 2.5 cala - producent kłamie czy ja jestem głupi ?
- Przedłużacz USB-C działa w połowie
- Fujitsu LIFEBOOK E746
- Alternatywny nośnik do monitoringu zamiast HDD?
- Pendrive, ale dysk
- Dyski HDD SATA 2,5'' >2TB
- Funbox 10 - Czy miał już ktoś styczność z tym sagemowym sprzętem?
- Konwersja dysku z MBR na GPT
- Przenosiny systemu
- soft dla detekcji stanu DMA (on,czy off)
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)