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 |