-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder4.news.weretis.net!proxad.net!feeder1-2.proxad.net!clea
nfeed3-b.proxad.net!nnrp1-2.free.fr!not-for-mail
From: Mateusz Viste <m...@n...pamietam>
Subject: Re: opoznienia na switchu
Newsgroups: pl.comp.pecet
References: <lnXBD.281801$Yn.171243@fx14.ams1> <pr9hgt$qt9$1@node1.news.atman.pl>
<ycYBD.376267$fw.333082@fx04.ams1>
<5bd8511f$0$15495$426a74cc@news.free.fr>
<dC6CD.311522$Yn.48051@fx14.ams1> <prbl8t$he8$1@node2.news.atman.pl>
<dxeCD.339844$2D.171600@fx12.ams1>
<5bd9a7d0$0$14294$426a74cc@news.free.fr>
<5MoCD.457564$0R.28472@fx02.ams1> <5bdaafc6$0$5481$426a74cc@news.free.fr>
<d%PCD.527088$zG.133939@fx23.ams1>
<5bdbfcde$0$21611$426a74cc@news.free.fr> <1...@t...com>
<5bdc1ad2$0$15111$426a74cc@news.free.fr> <anx755cn8bxf$.dlg@tyczka.com>
User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Date: 02 Nov 2018 11:03:49 GMT
Lines: 59
Message-ID: <5bdc2f15$0$3748$426a74cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 02 Nov 2018 12:03:49 CET
NNTP-Posting-Host: 82.64.0.151
X-Trace: 1541156629 news-2.free.fr 3748 82.64.0.151:60622
X-Complaints-To: a...@p...net
Xref: news-archive.icm.edu.pl pl.comp.pecet:1260112
[ ukryj 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
- Przenosiny systemu
- soft dla detekcji stanu DMA (on,czy off)
- jak w chrome (forku chrome) wyznaczyc katalog profilu w dowolnym miejscu?
- Dziwnie padający Seagate
- Kwestia UPSa i elektryki tegoż
- Drukowanie bezprzewodowe - jaki interface ?
- Libre Office Krok Po Kroku - Komentarz
- Dysk startowy z dosem - ktokolwiek widział, ktokolwiek zna?
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Re: Drugi ekran na Androidzie
- Vmware update
- Access point na zewnątrz
- dodanie karty graf zawiesza komp
- Jak wybrać laptopa?
- Router i USENET
Najnowsze wątki
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-28 droga laweta
- 2024-11-28 Co tam się odpierdala w tej Warszawie?
- 2024-11-28 skąd się biorą tacy debile?
- 2024-11-28 JDG i utylizacja sprzetu
- 2024-11-27 Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Bydgoszcz => QA Engineer <=
- 2024-11-28 Zielona Góra => Spedytor międzynarodowy <=
- 2024-11-28 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-27 Zielona Góra => Senior PHP Developer <=
- 2024-11-27 Warszawa => Senior Java Developer <=