Android IP 流量路由 - WiFi 上的蜂窝 IP?

标签 android linux routes ip wifi

在使用 Wireshark 从 Android 手机捕获一些流量时,我注意到了一个奇怪的副作用。在与 WiFi 建立新的网络连接后不久,似乎有一些数据包“泄漏”在保留蜂窝 IP 源地址的 WiFi 接口(interface)上。这通常不会持续很长时间,而且这些连接似乎很快就会停止并使用新的 WiFi IP 地址重新启动。

是什么导致了这种影响?路由交换机是否将数据包重定向到新接口(interface),但允许它们保留旧地址?在这种情况下,应用程序会看到什么样的错误?

最佳答案

IP 数据包在一层创建,而它们的路由在较低层完成。当蜂窝“接口(interface)”关闭并且路由表更新时,所有不是发往本地子网的数据包都会发送到“默认网关”。由于该网关可通过 WiFi 接口(interface)访问,因此数据包将发送到那里。路由仅基于目标地址,而不是源地址。

如果没有防火墙或路由器丢弃它们,这些数据包仍会到达目的地(在有状态路由器和 protected 网络的今天,这实际上很可能)但回复数据包将被定向到不再有与电话的连接因此被丢弃或导致 ICMP“主机无法访问”消息返回到服务器。

手机上的应用程序不会从中看到任何错误,只会看到没有响应。但是,应用程序可以注意到系统上的其他行为;例如,操作系统可以使用封闭接口(interface)的 IP 地址为所有连接自动生成重置 (RST) 数据包。

TCP 连接在打开时不能更改网络地址或端口、目标两者的源。它必须关闭(或重置)并启动新连接。

关于Android IP 流量路由 - WiFi 上的蜂窝 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630838/

相关文章:

angular - 如何检测 Angular 中的路由变化?

firebase 托管获取 ERR_TOO_MANY_REDIRECTS 以使用动态重定向

android - 如何获取 Android Studio 1.5 菜单图像代码作为 PNG 文件

linux - LD_LIBRARY_PATH 真的会导致不一致吗?

python - 如何在 Linux 上强制 Python 脚本在后台运行

linux - 使用 Mercurial 必须使用 Mercurial Server 吗?

ruby-on-rails - 替换:id from routes without breaking the convention

android - 需要使用 GPS 坐标在 Android 应用程序中的我的谷歌地图上放置一个图标

java - 我想滚动相对布局也想拖动相对布局中的 ImageView 但按钮不会在 ScrollView 中拖动

Android:从顶部绘制带有渐变的圆弧