SlideServe
Menu
Préférences
© SlideServe · v2026

Offloading TCP Segmentation

alaric avatar
12 diapositives · 289 Views · Aug 21, 2014

This document explores the process of TCP segmentation offloading using context descriptors in network interface cards (NICs). It explains how a driver can efficiently split Ethernet packets into smaller segments to comply with LAN limitations while handling checksum calculations. Key parameters including header lengths, payload sizes, and descriptor types are detailed, alongside context descriptors for different packet options. Emphasis is placed on managing statistical counters for performance tracking. This optimization facilitates smoother data transmission in network communications.

Offloading TCP Segmentation - slide 1
01 / 12Offloading TCP Segmentation
1 / 17

Télécharger la présentation

Offloading TCP Segmentation
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Offloading TCP Segmentation Using Context Descriptors lets a driver offload ‘TCP Segmentation’ as well as checksum calculations

  2. What is ‘segmentation’? MAC header IP header TCP header packet ‘data’ payload The sender creates an Ethernet packet – but it’s longer than the LAN allows – so our NIC can be programmed to ‘carve it up’ into smaller Ethernet packets MAC header IP header TCP header partial payload MAC header IP header TCP header partial payload MAC header IP header TCP header partial payload

  3. NIC’s segmentation parameters • HDRLEN = total length of packet-headers • PAYLEN = total length of data to be sent • DTALEN = length of packet-buffer content • MSS = Maximum Segment Size (w/o hdrs) • POPTS = Packet Options

  4. Context descriptor (type 0) 63 48 47 40 39 32 31 16 15 8 7 0 TUCSE TUCSO TUCSS IPCSE IPCSO IPCSS MSS HDRLEN RSV STA TUCMD DTYP =0 PAYLEN DEXT=1 (Extended Descriptor) Legend: IPCSS (IP CheckSum Start) TUCSS (TCP/UDP CheckSum Start) IPCSO (IP CheckSum Offset) TUCSO (TCP/UDP CheckSum Offset) IPCSE (IP CheckSum Ending) TUCSE (TCP/UDP CheckSum Ending) PAYLEN (Payload Length) DTYP (Descriptor Type) TUCMD (TCP/UCP Command) STA (TCP/UDP Status) HDRLEN (Header Length) MSS (Maximum Segment Size)

  5. The TUCMD byte 7 6 5 4 3 2 1 0 IDE SNAP DEXT (=1) reserved (=0) RS TSE IP TCP Legend: IDE (Interrupt Delay Enable) SNAP (Sub-Network Access Protocol) DEXT (Descriptor Extension) RS (Report Status) TSE (TCP-Segmentation Enable) IP (Internet Protocol) TCP (Transport Control Protocol) always valid valid only when TSE=1

  6. Context descriptor (type 1) 63 48 47 40 39 32 31 16 15 8 7 0 ADDRESS VLAN POPTS RSV STA DCMD DTYP =1 DTALEN DEXT=1 (Extended Descriptor) Legend: DTALEN (Data Length) DTYP (Descriptor Type) DCMD (Descriptor Command) STA (Status) RSV (Reserved) POPTS (Packet Options) VLAN (VLAN tag)

  7. The DCMD byte 7 6 5 4 3 2 1 0 IDE VLE DEXT (=1) reserved (=0) RS TSE IFCS EOP Legend: IDE (Interrupt Delay Enable) VLE (VLAN Enable) DEXT (Descriptor Extension) RS (Report Status) TSE (TCP-Segmentation Enable) IFCS (Insert Frame CheckSum) EOP (End Of Packet)) always valid valid only when EOP=1

  8. Context descriptor-pairs • The sender accompanies each packet with a Type 0 Context Descriptor and with (one or more ) Type 1 Context Descriptor(s) 63 48 47 40 39 32 31 16 15 8 7 0 TUCSE TUCSO TUCSS IPCSE IPCSO IPCSS MSS HDRLEN RSV STA TUCMD DTYP =0 PAYLEN BASE ADDRESS VLAN POPTS RSV STA DCMD DTYP =1 DTALEN

  9. Internet Protocol Header Leave these fields equal to zero

  10. Transport Control Protocol Header Setup this field with ones-complement sum of words from ‘partial’ pseudo-header

  11. The ‘partial’ pseudo-header 31 0 Source IP-address Destination IP-address ZERO protocol ID ZERO

  12. 64-bit Statistical Counters • The NIC’s statistical counters are intended to operate in a ‘clear-upon-read’ manner, but this requires reading the entire register • A few of the NIC’s statistical counters are 64-bit registers (even though a CPU may have to access them 32-bits at a time) • Examples: TOTL/TOTH, TORL/TORH • You must be sure to access both halves!