Alla artiklar

RoCE v2 paketstorlek: räkna ut användbar last och ramar vid olika MTU

För robotar
14 november 2026
RoCE v2 paketstorlek: räkna ut användbar last och ramar vid olika MTU

RoCE v2 paketstorlek: räkna ut användbar last och ramar vid olika MTU

RoCE v2 paketstorlek är den maximala mängd användbar data som får plats i en enda nätverksram, och den sätts av länkens MTU (Maximum Transmission Unit). Ju mindre RoCE v2 paketstorlek, desto fler ramar behövs för samma datamängd, och desto större andel av varje ram går till huvudinformation istället för till användbara data. Enligt sv.wikipedia är MTU på 1500 bytes fortfarande vanligast på LAN, även på många snabba länkar, medan 9000 bytes (jumbo frames) ses parallellt med 1500 på internet.

Den här artikeln visar hur du räknar ut användbar last per ram, antalet ramar som krävs för en given datavolym och den totala overheaden — vid MTU 1500 och MTU 9000.

Vad paketstorlek betyder för RoCE v2

När ett program skickar data över RoCE v2 delas datan upp i ramar. Varje ram bär inte bara på den användbara lasten utan också på flera lager av huvudinformation:

  • Ethernet-huvud — adresserar mottagaren i det lokala nätverket
  • IP-huvud — routar paketet mellan nätverk
  • UDP-huvud — identifierar den mottagande applikationen (RoCE v2 kör över UDP/IP)
  • RoCE-huvud — styr RDMA-åtgärden, till exempel läsning eller skrivning i fjärrminnet

Dessa huvud är overhead: de förbrukar kapacitet på varje ram utan att bära användbar data. Ju mindre MTU, desto fler ramar krävs för samma mängd data, och desto fler totalt huvud-bytes skickas. Med en större RoCE v2 paketstorlek minskar både antalet ramar och den totala overheaden.

Användbar last per ram

Den användbara lasten per ram är MTU minus den sammanlagda storleken på alla huvud. För illustration, anta en sammanlagd huvudstorlek på 66 bytes per ram (Ethernet 14, IP 20, UDP 8, RoCE 24).

Vid MTU 1500:

  • Användbar last: 1500 − 66 = 1434 bytes
  • Huvudandel: 66 / 1500 ≈ 4,4 procent

Vid MTU 9000:

  • Användbar last: 9000 − 66 = 8934 bytes
  • Huvudandel: 66 / 9000 ≈ 0,7 procent

En större MTU innebär att en större del av varje ram är användbar data, och färre ramar behövs för att flytta samma volym. Skillnaden i RoCE v2 paketstorlek mellan 1500 och 9000 bytes är avgörande för hur mycket overhead en överföring genererar.

Antalet ramar för en dataöverföring

Antalet ramar för en överföring är den totala datavolymen dividerat med användbar last per ram, avrundat uppåt. Här är räkneexempel.

Överföring av 100 GB

100 GB = 100 × 1024 × 1024 × 1024 = 107 374 182 400 bytes.

Vid MTU 1500 (användbar last 1434 bytes):

  • Ramar: 107 374 182 400 / 1434 ≈ 74 877 394 ramar
  • Totala huvud-bytes: 74 877 394 × 66 ≈ 4 941 907 984 bytes ≈ 4,6 GB overhead

Vid MTU 9000 (användbar last 8934 bytes):

  • Ramar: 107 374 182 400 / 8934 ≈ 12 018 592 ramar
  • Totala huvud-bytes: 12 018 592 × 66 ≈ 793 227 072 bytes ≈ 0,74 GB overhead

Med jumbo frames minskar antalet ramar med cirka 84 procent, och huvud-overheaden sjunker från ungefär 4,6 GB till 0,74 GB på en 100 GB-överföring.

Överföring av 1 TB

1 TB = 1024 GB = 1 099 511 627 776 bytes.

Vid MTU 1500:

  • Ramar: 1 099 511 627 776 / 1434 ≈ 766 744 509 ramar
  • Totala huvud-bytes ≈ 50,6 GB

Vid MTU 9000:

  • Ramar: 1 099 511 627 776 / 8934 ≈ 123 070 474 ramar
  • Totala huvud-bytes ≈ 8,1 GB

I terabyte-klassen är skillnaden mellan MTU 1500 och MTU 9000 tiotals gigabyte ren huvud-overhead.

Varför antalet ramar spelar roll i praktiken

Fler ramar innebär mer interrupt-belastning på processorn, mer arbete för nätverkskortet och mer bearbetning i switcharna. Med RoCE v2, där poängen är att flytta data med minimal processorbelastning, arbetar ett högt ramantal mot det målet. Färre och större ramar vid MTU 9000 minskar antalet paket som stacken måste bearbeta per gigabyte.

Förutsättningen är att varje enhet i vägen — servrar, nätverkskort och switchar — stöder samma MTU. Om en länk är begränsad till 1500 bytes fragmenteras paketen, och vinsten med jumbo frames försvinner.

Checklista: räkna själv

  1. Ta reda på MTU på dina nätverksgränssnitt (vanligen 1500 eller 9000 bytes).
  2. Summera Ethernet-, IP-, UDP- och RoCE-huvuden för att få overhead per ram.
  3. Subtrahera overhead från MTU för att få användbar last per ram.
  4. Dividera den totala datavolymen med användbar last per ram, avrundat uppåt, för att få antalet ramar.
  5. Multiplicera antalet ramar med huvudstorleken för att få totala overhead-bytes.

Det ger en konkret bild av hur stor del av en RoCE v2-överföring som är huvud och hur många ramar nätverket måste bära.

FAQ

Vad är RoCE v2? RoCE v2 är RDMA over Converged Ethernet som kör över UDP/IP (L3), till skillnad från RoCE v1 som är ren L2.

Hur påverkar MTU antalet ramar? Ju mindre MTU, desto fler ramar behövs för samma datavolym, och desto mer total overhead överförs.

Vad är användbar last per ram? MTU minus alla huvud (Ethernet, IP, UDP, RoCE).

Lönar sig jumbo frames alltid? Endast om alla enheter i vägen stöder samma större MTU; annars fragmenteras paketen.

Var hittar jag mer om MTU? På sv.wikipedia.org under Maximum Transmission Unit.

Relaterade artiklar