Investigation and Resolution of In‑flight Wi‑Fi Connectivity Issues for a Mobile E‑Commerce App
The SRE team diagnosed an in‑flight Wi‑Fi outage for the DeWu e‑commerce app by reproducing the problem, capturing packets with ping, traceroute and tcpdump, discovered a firewall rule misclassifying the domain as a download site, and resolved it through a vendor‑issued policy update, restoring connectivity on both ATG and SATCOM links.
During a flight the DeWu e‑commerce app could not be accessed via the aircraft's Wi‑Fi, prompting the SRE team to collaborate with wireless and network groups to diagnose and resolve the problem.
Two main airborne Wi‑Fi solutions are described: ATG (air‑to‑ground broadband) and SATCOM (satellite communication). ATG offers lower latency (<100 ms) but limited coverage, while SATCOM provides global coverage with higher latency (10‑700 ms).
TCP is widely used in e‑commerce because it provides reliable, connection‑oriented communication through a three‑way handshake, ACK mechanisms and congestion/flow control.
The investigation followed a three‑step process: reproduce the issue in‑flight, capture network packets, and analyze the full request chain. Tools used include ping, traceroute and tcpdump, with packet captures taken on both client and server sides.
Ping is an ICMP‑based diagnostic tool operating at layer 3. Key header fields such as Identification, Flags, TTL, Protocol, Type, Identifier and SequenceNumber are explained. The following code shows how the ping identifier is set in the Linux implementation:
ping_common.c
//s20190709 version and earlier
if (sock->socktype == SOCK_RAW)
ident = htons(getpid() & 0xFFFF);
//later versions
if (sock->socktype == SOCK_RAW && rts->ident == -1)
rts->ident = rand() & IDENTIFIER_MAX;Traceroute discovers the path to a destination by sending packets with incrementally increasing TTL values. Configuration constants and initialization code are shown below:
#define MAX_HOPS 255 // maximum hops
#define MAX_PROBES 10 // probes per hop
#define DEF_HOPS 30 // default max hops
#define DEF_NUM_PROBES 3 // probes per node
#define DEF_WAIT_SECS 5.0 // wait time per node
#define DEF_DATA_LEN 40 // default payload size
#define MAX_PACKET_LEN 65000 // max packet length
static const char *module = "default"; // default uses UDP
static tr_module default_ops = {
.name = "default",
.init = udp_default_init,
.send_probe = udp_send_probe,
.recv_probe = udp_recv_probe,
.expire_probe = udp_expire_probe,
.header_len = sizeof (struct udphdr),
};Network‑layer tests (ping/traceroute) showed normal connectivity, but packet analysis revealed that the firewall’s “website/download restriction” policy mistakenly classified the DeWu domain as a download site, causing reset packets from both client and server sides.
After reporting the issue to the firewall vendor, the policy bug was confirmed and a global rule update was deployed on 2023‑04‑18, followed by automatic device updates on 2023‑04‑19. Subsequent in‑flight tests confirmed that the app now works correctly.
The report also reviews AC (Access Controller) functions such as user authentication, traffic shaping, URL filtering and monitoring, which are relevant to preventing similar incidents.
DeWu Technology
A platform for sharing and discussing tech knowledge, guiding you toward the cloud of technology.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.