Ethernet Rx Packet Size Buffer 128

OP #1229185
Hallo,

kann mich jmd aufklären, warum die Buffergröße für den Ethernet Receive 
Buffer häufig auf 128 begrenzt wird (z.B: bei den Atmel-Beispielen)? Ich 
dachte eine Standardgröße eines Ethernet-Packets liegt bei 1518.

z.B.
http://www.makingthings.com/ref/firmware/html/_emac_8h-source.html

Bei den Atmel Beispielen sieht man diese Definition:
1
/// Number of buffer for RX, be carreful: MUST be 2^n
2
#define RX_BUFFERS  16
3
/// Number of buffer for TX, be carreful: MUST be 2^n
4
#define TX_BUFFERS   8
5

6
/// Buffer Size
7
#define EMAC_RX_UNITSIZE            128     /// Fixed size for RX buffer
8
#define EMAC_TX_UNITSIZE            1518    /// Size for ETH frame length


Gruß
Bernd
#1230029
Ich denke das Argument mit dem verfügbaren RAM ist maßgebend für die 
Beschränkung. Die Asymmetrie zwischen RX und TX würde ich darauf 
zurückführen, dass kurze Kommandos empfangen werden sollen und 
wesentlich größere Mengen an Daten zurück geschickt werden sollen.

Sofern sich die 128 Bytes tatsächlich auf den Empfangsbuffer auf 
MAC-Ebene beziehen ergibt sich folgende maximale Payload:

   128 Bytes Buffer
-   14 Bytes MAC Header (src+dst address, frame type)
-    4 Bytes CRC
-------------------
   110 Bytes

Angenommen Du schickst die Daten per UDP/IP ergibt sich weiterhin:

  110 Bytes
-   8 Bytes UDP Header (src+dst port, length, checksum)
-  20 Bytes IP Header (src+dst IP, length, ...)
----------------------
   82 Bytes UDP Payload

Deine Kommandos können also bis zu 82 Bytes Daten umfassen. Dieses 
entspricht der Maximum Transfer Unit zwischen Host und µC.

HTH,
Marcus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.