2013-04-24 57 views
7

我在Django的POST处理程序中随机获取IOError: request data read error,同时在3G网络上传数据。 Django为什么会提出这种特殊的异常has already been answered(总结:据称当客户端丢弃TCP连接时发生)。但是,在我的情况下,我试图解决潜在的问题。3G塔式交换机上的TCP连接会发生什么?

从我试图缩小问题的范围,我发现:

  • 在WiFi不可再生
  • 不可再生的GPRS只
  • 上重现各种类型的手机(Android和iPhone)和多个运营商
  • 似乎没有发生在某些地点
  • 似乎发生在其他位置,特别是当我可以看到数据速度指示器切换3GHH+(UMTS,HSDPA和HSPA +)之间

我猜猜是什么情况有交换塔。那么当3G在塔之间切换时,TCP连接会发生什么?

+0

我不知道,但我敢肯定,PDP上下文被删除并重新建立,就像它是一种降低时到EDGE和GPRS等老式技术。在新的PDP上下文中出现一个新的PPP会话,并且很可能是一个新的IP地址,所以这当然会破坏TCP连接。 – Celada 2013-04-24 23:26:57

+0

@Celada:好的,但你说的是从3G切换到2G或反过来,而不是在3G的各种速度之间 – vartec 2013-04-25 07:32:27

回答

2

当您在一个性能良好的网络中切换时,TCP连接本身通常不会看到任何连接中断,即使TCP连接通常会退后并重试。

3G网络中实际存在不同类型的切换,具体取决于您从运营商接入网络中连接的“塔”是什么,以及接入节点又连接到运营商核心网络。它还取决于如何配置核心网络 - 一些网络将在接入节点和核心节点之间具有一对一映射,并且一些将允许接入节点池共享核心节点,这将减少必须在一个核心节点之间进行传输的可能性和另一个。

下面的指南给出了交接类型的3G网络很好的概述: http://www.3g4g.co.uk/Tutorial/ZG/zg_handover.html

相关问题