SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
While segmenting a TCP packet, the DMA automatically updates the TCP/IP header fields. Table 43-27 describes how the TCP and IP headers are updated.
| Packet Sequence | TCP Header | IP Header |
|---|---|---|
| First packet | 1. The sequence number is not updated. | ■ IPv4 Header |
| The value provided in the header is used. | ❑ Total Length = MSS + TCP Header Length + IP Header Length | |
| 2. The TCP checksum is calculated again. | ❑ Identification field is not modified. | |
| 3. If set, the FIN and PSH flags are cleared. | It is sent as per the header provided by the software. | |
| ❑ IPv4 Header Checksum is recalculated. | ||
| ■ IPv6 Header | ||
| Payload Length = MSS + TCP Header Length + IPExtension Header Length | ||
| Subsequent packets | 1. The sequence number is updated. | ■ IPv4 Header |
| The MSS value is added to the sequence number value of previous segment. | ❑ Total Length = MSS + TCP Header Length + IP Header Length | |
| 2. If set, the FIN and PSH flags are cleared. | ❑ Identification field = Previous Identification Field + 1 | |
| 3. The TCP checksum is calculated again. | ❑ IPv4 Header Checksum is recalculated | |
| ■ IPv6 Header | ||
| Payload Length = MSS + TCP Header Length + IPExtension Header Length | ||
| Last packet | 1. The sequence number is updated. | ■ IPv4 Header |
| The MSS value is added to the sequence number value of previous segment. | ❑ Total Length = Remaining Payload + TCP Header Length + IP Header Length | |
| 2. If FIN and PSH flags were set in original header, these flags are set. | ❑ Identification Field = Previous Identification | |
| 3. The TCP checksum is calculated again. | Field + 1 | |
| ❑ IPv4 header Checksum is recalculated | ||
| ■ IPv6 Header | ||
| Payload Length = Remaining Payload Length + TCP Header Length + IP Extension Header Length |