-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.p
l!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!newsreader4.netcologne.
de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams
4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!u
nt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.PO
STED!not-for-mail
Date: Thu, 29 Sep 2022 01:26:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.3.0
Subject: Re: lwIP - odbieranie danych przez TCP
Newsgroups: pl.misc.elektronika
References: <632f2939$0$455$65785112@news.neostrada.pl>
<1sjefj0s46cyi.l9ylckob73a0$.dlg@40tude.net>
<6333f830$0$447$65785112@news.neostrada.pl>
<e3owijdfib1a$.1bbj90doev5kq.dlg@40tude.net>
Content-Language: en-US, pl
From: Atlantis <m...@w...pl>
In-Reply-To: <e3owijdfib1a$.1bbj90doev5kq.dlg@40tude.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 77
Message-ID: <6334d82a$0$463$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.27.21.25
X-Trace: 1664407594 unt-rea-a-02.news.neostrada.pl 463 83.27.21.25:51978
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 4999
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774594
[ ukryj nagłówki ]On 28.09.2022 18:39, J.F wrote:
> Owszem, jest opoznienie spore ... ale to serwer czy po stronie klienta
> buforowanie jest ?
Co prawda trochę tutaj spekuluję, jednak wydaje mi się, że w przypadku
normalnego serwera HTTP i tak nie bardzo w grę wchodzi zapewnienie
prędkości idealnie dopasowanej do bitrate'u. Serwer dysponuje pewna pulą
na bieżąco uzupełnianych danych, a klient o nie prosi. Może się zdarzyć,
że do klienta dane będą docierały przez pewien czas z prędkością poniżej
bitrate'u (bo np. pojawi się konieczność kilkukrotnej retransmisji
któregoś pakietu) więc czemu nie miałaby mieć miejsca odwrotna sytuacja
- kiedy klient prosi o udostępnienie danych z pewnym wyprzedzeniem?
> Serwer do kompresji cos musi buforowac, ale dla radia to chyba
> niewiele - gorzej z video mpeg. No ale telewizja cyfrowa tez
> kompresuje ..
Kiedyś podstawiłem obok siebie moje radio internetowe odbierające
radiową Jedynkę oraz stare radio AM, nastawione na 225 kHz. Różnica
mogła wynosić dobre 10 sekund. Oczywiście nie znaczy to, że całe
opóźnienie pochodzi od bufora w serwerze, bo jeszcze częściowo może być
wprowadzane na różnych łączach pomiędzy studiem a serwerem. Pomiędzy
Jedynką na FM i AM też jest widoczne opóźnienie, chociaż może nie tak
znaczne.
> Z drugiej strony - to i serwer powinien narzucac predkosc,
> bo co ma przyslac, jesli za szybko potwierdzisz ?
Ale to chyba właśnie tak działa w TCP. Po odebraniu pakietu klient
informuje serwer, że teraz dysponuje większym oknem odbiorczym i może
przyjmować dane. Serwer decyduje ile wyśle - równie dobrze może wysłać
mniej niż jest miejsca w oknie.
> No tak sobie ma to sens - bo skad ma wziac tresc do wyslania, jak sie
> uzbiera tych nadmiarowych danych minuta czy kwadrans?
Wiadomo, że serwer nie wyśle więcej, niż w danej chwili ma.
> No ale to bardziej z ciekawosci, bo jak najbardziej trzeba potwierdac
> w miare ubywania danych.
Ok, trochę pozmieniałem w kodzie i mam kilka nowych obserwacji. Możliwe
też, że niektóre z moich wcześniejszych wniosków mogły być błedne...
Po pierwsze dodałem odpowiednie zabezpieczenia, chroniące przed
nadpisywaniem bufora cyklicznego. Teraz przed każdym zapisem sprawdzana
jest ilość wolnego miejsca. Jeśli miejsca jest na tyle, zapis do bufora
odbywa się w callbacku odbiorczym. Jeśli miejsca jest za mało, to
jedynie zapisywany jest wskaźnik do otrzymywanych danych i pętli program
sprawdza czy dane się zwolniło - jeśli tak, dane trafiają do bufora i
wywoływana jest funkcja tcp_recved(), zgłaszająca gotowość przyjęcia
kolejnych danych.
Dodałem także zabezpieczenie przed opóźnieniem bufora - jeśli danych
zaczyna być za mało przestają one być pobierane do bufora audio (a więc
przestaje on grać) i zamiast tego jedynie przyjmujemy dane z serwera.
Odtwarzanie jest wznawiane dopiero po zapełnieniu bufora do pewnej wartości.
Teraz jednak zauważyłem, że dane do bufora przychodzą bardzo wolno.
Ilość danych odpowiadająca ułamkowi sekundy odtwarzania nieraz ładuje
się przez ładnych kilka sekund, a więc odtwarzanie jest poszatkowane, z
wyraźnymi przerwami. Jednak nie zawsze tak jest - parę razy udało mi się
trafić na idealny moment, kiedy odtwarzanie było płynne, a ilość danych
w buforze oscylowała wokół jednej wartości.
> Karta SD mogla mies jakis szybszy tryb pracy niz SPI,
Karta jest właśnie podłączona do standardowego SPI - STM32F107 nie ma
nawet SDIO. ;) Początkowo myślałem, że może to być wina niekoniecznie
optymalnych funkcji transmisyjnych z biblioteki HAL, ale potem
przypomniałem sobie, że dokładnie tak samo była zrealizowana obsługa
komunikacji z kartą SD. ;)
Następne wpisy z tego wątku
- 29.09.22 10:58 Cezar
- 29.09.22 16:48 Atlantis
- 29.09.22 17:05 Atlantis
- 30.09.22 09:49 J.F
- 30.09.22 11:04 Cezar
- 30.09.22 12:12 JDX
- 30.09.22 12:13 J.F
- 30.09.22 12:21 J.F
- 30.09.22 12:23 J.F
- 02.10.22 07:48 Marek
- 02.10.22 09:39 Atlantis
- 02.10.22 15:05 Marek
- 02.10.22 15:11 Marek
- 02.10.22 21:06 Atlantis
- 02.10.22 21:41 Mateusz Viste
Najnowsze wątki z tej grupy
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
Najnowsze wątki
- 2025-02-25 Tak wiem.... To oczywiste ale jak oni dzisiaj dziadują na materiale
- 2025-02-25 rozliczenia policji
- 2025-02-25 Echhhhhh. Marzy mi się SWAP Audi A2 z 1.8 T ;-)
- 2025-02-25 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-02-25 Warszawa => SQL Developer <=
- 2025-02-25 Zbigniew Ziobro śmie sugerować "niedostatki niezawisłości" sędzi (wątpliwości co do bezstronności)
- 2025-02-25 Kraków => DevOps Engineer (Junior/Regular) <=
- 2025-02-25 Kraków => Front-end Developer <=
- 2025-02-25 Szpital
- 2025-02-24 Gniazdo + wtyk
- 2025-02-24 Dyrektor Toyoty miał rację. Elektryki to ślepa uliczka
- 2025-02-24 Białystok => System Architect (Java background) <=
- 2025-02-24 Białystok => System Architect (background deweloperski w Java) <=
- 2025-02-24 Białystok => Solution Architect (Java background) <=
- 2025-02-24 Warszawa => Data Engineer (Tech Leader) <=