-
Data: 2022-10-02 09:39:10
Temat: Re: lwIP - odbieranie danych przez TCP
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Ok, dopisałem kilkanaście linijek kodu odpowiedzialnego za mierzenie
ilości danych obieranych w serwera w ciągu sekundy. Po prostu sumuję
każdą kolejną wartość p->tot_ten ze zmienną tymczasową, która co sekundę
jest przepisywana do zmiennej trzymającej aktualną wartość pomiaru a
potem zerowana.
Przeprowadziłem dwa pomiary podczas odbierania streamu radiowej Jedynki.
Pierwszy był przy zakomentowanych operacjach zapisy do pamięci SPI RAM.
Wychodził transfer na poziomie 21-25 kB/s (czyli 168-200 kbps). Wartość
zgodna z bitratem typowego strumienia audio.
Natomiast po odkomentowaniu tych operacji wartość spada do 5-11 kB/s
(40-88 kbps) co tłumaczy przerywany dźwięk.
Nie wiem na ile to ma znaczenie, ale dodatkowo widać, że w obydwu
przypadkach na początku transmisja jest nieco szybsza i po kilku
sekundach stabilizuje się wokół niższej wartości.
Generalnie można już wyciągnąć kilka wniosków:
1. Można całkowicie odrzucić tezę, że winę za spowolnienia ponosi
projekt płytki i gubienie pakietów z powodu błędów na warstwie
sprzętowej (interfejs RMII). Gdyby tak było, to efekt byłby widoczny
cały czas.
2. Operacja zapisu do pamięci SPI RAM ma wpływ na szybkość transferu
danych. Jednak nie jest to raczej prosta zależność na zasadzie pamięci
mającej niewystarczającą szybkość. Jak już mówiłem - ten bufor
całkowicie normalnie działa z lokalnymi nośnikami, poza tym przy
prędkości taktowania 18 MHz powinno być możliwe przesyłanie danych ze
znacznie większą prędkością niż tych kilka kB/s. Poza tym problemy
występowały też w przypadku stosowania (dużo mniejszego) bufora w
normalnej pamięci.
Na chwilę obecną stawiałbym raczej na moją oryginalną tezę: w czasie gdy
program jest zajęty zapisywaniem oryginalnego pakietu, Ethernet nie jest
w stanie odebrać następnej porcji danych (bo kończy mu się jakiś
bufor/okno odbiorcze) i dochodzi do retransmisji, która spowalnia realną
prędkość przesyłu danych.
I teraz mam kilka pytań co do tego, jak właściwie działa Ethernet w STM32:
Samo pobieranie danych z sieci do bufora odbiorczego jest realizowane w
tle przez sprzęt, czy też pętla główna programu musi regularnie
wywoływać jakiś sterownik? To znaczy jeśli bufor odbiorczy jest
dostatecznie duży, to dane będą nadal dochodziły nawet wtedy, jeśli
pętla główna będzie zajęta czymś innym?
Następne wpisy z tego wątku
- 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
- 04.10.22 09:04 Atlantis
- 05.10.22 17:23 Atlantis
- 05.10.22 18:37 a...@m...uni.wroc.pl
- 06.10.22 09:47 Atlantis
- 06.10.22 17:18 J.F
- 07.10.22 20:40 Atlantis
- 09.10.22 08:25 Marek
- 09.10.22 10:19 Atlantis
- 09.10.22 14:45 Marek
- 10.10.22 10:36 J.F
Najnowsze wątki z tej grupy
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
Najnowsze wątki
- 2025-06-27 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-06-27 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-06-27 Warszawa => Senior SAP Consultant - PP area <=
- 2025-06-27 Warszawa => Spedytor Międzynarodowy <=
- 2025-06-27 Zasilanie elektryków w Polsce
- 2025-06-27 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-06-27 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-27 Wrocław => Senior Android Developer (Java) <=
- 2025-06-27 Warszawa => IT Director <=
- 2025-06-27 Wrocław => Controlling systems Consultant <=
- 2025-06-27 Warszawa => Software Engineer .Net <=
- 2025-06-27 BMW
- 2025-06-26 Re: Recykling akumulatorów
- 2025-06-26 Re: Recykling akumulatorów
- 2025-06-26 Inwentaryzacja budynku