【发布时间】:2013-04-18 02:17:32
【问题描述】:
在 3G 网络上上传数据时,我在 Django 的 POST 处理程序中随机获取 IOError: request data read error。为什么 Django 会引发特定异常 has already been answered 的问题(总结:据称发生在客户端断开 TCP 连接时)。但是,就我而言,我正在尝试解决根本问题。
根据我缩小问题范围的尝试,我发现:
- 无法在 WiFi 上重现
- 仅在 GPRS 上无法重现
- 可在各种类型的手机(Android 和 iPhone)和多家运营商上重现
- 似乎在某些地方没有发生
- 似乎发生在其他位置,尤其是当我看到数据速度指示器在
3G、H和H+(UMTS、HSDPA 和 HSPA+)之间切换时
我的疯狂猜测是那里发生的事情是切换塔。那么3G在塔间切换时TCP连接会发生什么?
【问题讨论】:
-
我不确定,但我很确定 PDP 上下文已被删除并重新建立,就像降级到 EDGE 和 GPRS 等旧技术时一样。一个新的 PDP 上下文会带来一个新的 PPP 会话,并且很可能是一个新的 IP 地址,所以这当然会中断 TCP 连接。
-
@Celada:好的,但你说的是从 3G 切换到 2G 或反之亦然,而不是在 3G 的各种速度之间切换
标签: networking tcp 3g