This article describes a scenario where RE (Routing Engine) based CPCD (Capitve Portal Content Delivery) does not redirect HTTP packet due to fragmentation.
The following examples highlight working and non-working scenarios of HTTP Redirect.
Working
HTTP Redirect is working fine when there is no fragmentation.
1 0.000000 10.64.0.1 106.10.178.36 TCP 78 49995 → 80 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=32 TSval=760556238 TSecr=0 SACK_PERM=1
2 0.023715 106.10.178.36 10.64.0.1 TCP 58 80 → 49995 [SYN, ACK] Seq=0 Ack=1 Win=65534 Len=0 MSS=1420
3 0.023796 10.64.0.1 106.10.178.36 TCP 54 49995 → 80 [ACK] Seq=1 Ack=1 Win=65535 Len=0
4 0.024147 10.64.0.1 106.10.178.36 HTTP 639 GET / HTTP/1.1
5 0.050952 106.10.178.36 10.64.0.1 HTTP 178 HTTP/1.1 302 Found
6 0.051009 10.64.0.1 106.10.178.36 TCP 54 49995 → 80 [ACK] Seq=586 Ack=125 Win=65535 Len=0
Not Working
HTTP Redirect is not working as HTTP GET packet is fragmented into 2 packet 1601(1474+127) due to the saved cookies.
1 0.000000 10.64.0.1 106.10.178.36 TCP 78 64928 → 80 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=32 TSval=758228103 TSecr=0 SACK_PERM=1
2 0.045711 106.10.178.36 10.64.0.1 TCP 58 80 → 64928 [SYN, ACK] Seq=0 Ack=1 Win=65534 Len=0 MSS=1420
3 0.045785 10.64.0.1 106.10.178.36 TCP 54 64928 → 80 [ACK] Seq=1 Ack=1 Win=65535 Len=0
4 0.047512 10.64.0.1 106.10.178.36 TCP 1474 [TCP segment of a reassembled PDU]
5 0.047534 10.64.0.1 106.10.178.36 HTTP 127 GET / HTTP/1.1
6 0.384035 10.64.0.1 106.10.178.36 TCP 1474 [TCP Retransmission] 64928 → 80 [ACK] Seq=1 Ack=1 Win=65535 Len=1420
7 0.855087 10.64.0.1 106.10.178.36 TCP 1254 [TCP Retransmission] 64928 → 80 [ACK] Seq=1 Ack=1 Win=65535 Len=1200
8 0.855115 10.64.0.1 106.10.178.36 TCP 347 [TCP Retransmission] 64928 → 80 [PSH, ACK] Seq=1201 Ack=1 Win=65535 Len=293
In RE based CPCD, light weight TCP stack is maintained due to performance issues. This does not support fragmentation and re-assembly.
There is no plan for supporting fragmentation and reassembly in RE based CPCD as this may cause performance bottleneck.