-
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
nfeed1-b.proxad.net!nnrp1-1.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>
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 09:37:23 GMT
Lines: 54
Message-ID: <5bdc1ad2$0$15111$426a74cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 02 Nov 2018 10:37:23 CET
NNTP-Posting-Host: 82.64.0.151
X-Trace: 1541151443 news-2.free.fr 15111 82.64.0.151:60158
X-Complaints-To: a...@p...net
Xref: news-archive.icm.edu.pl pl.comp.pecet:1260104
[ ukryj nagłówki ]On Fri, 02 Nov 2018 09:40:09 +0100, Roman Tyczka wrote:
> Widzę, że kolega obcykany w TCP, więc skorzystam z okazji i spytam.
> Na czym od strony TCP polega połączenie P2P, jak je uzyskać? Chodzi mi o
> niskopoziomowy dostęp do socketa, od strony programowej. Załóżmy, że
> chciałbym się pobawić w połączenia P2P i je zakodować na poziomie
> windowsowych socketów. Od czego zacząć, jak ugryźć?
Na tak zadane pytanie naprawdę nie wiem co odpowiedzieć, bo nie rozumiem
co kolega kombinuje. Odpowiem jak umiem.
Połączenie P2P to nic innego jak połączenie między jednym hostem a
drugim, bez udziału dedykowanego serwera. W praktyce jeśli chcemy móc
nawiązać połączenie w sposób niezależny od tego która ze stron jest
inicjatorem, to obie strony muszą posiadać socket otwarty w trybie LISTEN.
Czyli de facto oba hosty są "serwerami". Przykładem takiej implementacji
jest popularne NTP. NTP działa co prawda z UDP, ale przy TCP zasada jest
podobna. W naturze TCP leży pojęcie "serwera" i "klienta", więc dodatkowa
trudność przy TCP polega na ustaleniu kto będzie robił za serwer a kto za
klienta. Tutaj rozwiązania do głowy przychodzą mi (tak na zaraz) trzy:
1. jeśli adresy IP obu hostów są z góry znane, to ew. przyjąć że ten
niższy jest zawsze serwerem, więc niech wyższy się łączy.
2. oba hosty nasłuchują na porcie x, jednocześnie starając się nawiązać
równoległe połączenie z rozmówcą z innego socketu. Jak tylko komuś uda
się nawiązać połączenie, likwiduje swój socket nasłuchujący (a druga
strona zaprzestaje prób połączenia w drugą stronę).
3. oba hosty przechodzą losowo w tryb serwer/klient. Np. pierwsze 5s host
czeka na połączenie z zewnątrz. Jeśli się nie uda, to przechodzi w tryb
klienta i sam próbuje nawiązać połączenie z drugą stroną przez kilka
sekund. Długość okresów klient/serwer wypadałoby losować, coby uniknąć
nieszczęśliwej synchronizacji w której oba hosty zawsze są w tym samym
trybie.
Każda z powyższych metod ma swoje wady i zalety. Wybór zależy głównie od
założeń projektowych.
Od strony programowej nie ma tu nic szczególnego. Logika będzie różna
zależna od wersji 1/2/3, ale "klient" zawsze będzie musiał wykonać kroki
socket() + connect()
...a "serwer" zawsze będzie musiał wykonać kroki socket() + bind() +
listen() + accept()
Jeśli celem jest stworzenie jakiegoś własnego protokołu do wymiany
danych, to wybór UDP wydaje się (hobbystycznie patrząc) ciekawszy.
Pozwoliłby w dużo bardziej elegancki sposób rozwiązać etap nawiązywania
sesji, i pozwoliłby na dużo większą dowolność w implementacji metod
transferu danych.
Całkiem możliwe również że kompletnie nie zrozumiałem pytania, w takim
razie zalecam uściślenie.
Mateusz
Następne wpisy z tego wątku
- 02.11.18 10:59 Roman Tyczka
- 02.11.18 11:11 Marcin Debowski
- 02.11.18 11:25 Mateusz Viste
- 02.11.18 12:03 Mateusz Viste
- 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
Najnowsze wątki z tej grupy
- Teraz System Plików PFS z sys. op. Amiga OS będziesz mógł zamontować pod sys. op. Linuks i Jabłoko Makintosz
- Laptop z miejscem na dwa dyski i 32 GiB DDR4
- Domowy switch 1GBit/8 portów, ale lepszy niż najtańsze
- Disk on Module, czym to odczytać?
- kupiłem pendrajwa 256gb
- Atra_ment Canona GI-41 vs 45 itp...
- Android na wirtualnej maszynie
- A digital dark age? The people rescuing forgotten knowledge trapped on old floppy disks
- Awaria
- monitor vs tv
- Dużo niższe temperatury procesora po obudzeniu komputera... tak ma być czy jest coś nie tak?
- Plaskaty uchwyt VESA 100x100 na sciane?
- klawiatura podświetlana zasilana z sieci
- Upgrade z i7-6xxx
- Mały komputer potrzebny.
Najnowsze wątki
- 2026-01-08 Umiejętność tankowania na egzaminie z prawa jazdy
- 2026-01-08 Nowy akumulator Donut Lab
- 2026-01-08 Komenda policji nie ma nic wspólnego ze sprawą zgwałcenia policjantki
- 2026-01-08 Pilot do zamka/bramy
- 2026-01-08 Ślad węglowy
- 2026-01-08 Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- 2026-01-08 Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- 2026-01-08 Agora zwalnia grupowo, mimo że w firmie pojawiły się zyski, czyli załoga zapracowała na siebie
- 2026-01-08 Agora zwalnia grupowo, mimo że w firmie pojawiły się zyski, czyli załoga zapracowała na siebie
- 2026-01-08 Dlaczego wrzucenie szkolnego krzyża do śmieci to zbrodnia mniejsza od zgaszenia sejmowej menory?
- 2026-01-08 NR 5G -- mity, hity, kity, bez satelity...
- 2026-01-07 Oszustwa w go go
- 2026-01-07 Jaka myjka ultradźwiękowa?
- 2026-01-07 POCO
- 2026-01-07 Kraków => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Servi




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]