我们的一位客户在将数据从我们的应用程序(在他们的PC上)提交到服务器(不同的地理位置)时遇到了问题.当发送1100字节以下的数据包时,一切正常,但在此之上我们看到TCP每隔几秒重新传输一次数据包并且没有响应.我们用于测试的数据包大约是1400字节(但小于1472).我可以向www.google.com发送一个1472字节的ICMP ping并获得响应(因此它不是他们的路由器/前几个跃点).
我发现我们的应用程序为这些数据包设置了DF标志,我相信一路上到服务器的路由器的MTU小于/等于1100并且丢弃了数据包.
这影响了5000个中的1个客户端,但由于每个人的路由都不同,这是预期的.
数据是SOAP信封,我们期望回复SOAP响应.我无法证明为什么我们这样做,执行此操作的代码是由以前的开发人员编写的.
那么...... 对于应用程序数据,在TCP数据包上设置DF标志是否有任何好处或理由?
我可以想到网络诊断应用程序需要的原因,但在我们的情况下却没有(我们希望数据到达端点,是否碎片化).我们的一个系统管理员说它可能与我们使用SSL有关,但据我所知,SSL就像一个流而不管碎片,只要流在最后重建,就没有问题.
如果没有充分的理由,我将改变我们的应用程序的行为.
提前致谢.
我正在为我的Android项目切换到Gradle.我已经从Eclipse将项目导入Android Studio并使用Gradle 1.8将其包装起来.
我的假设是Gradle以Maven的方式处理依赖关系,也就是说如果指定了本地存储库中不存在的依赖关系,它将从远程存储库中提取它.Android Studio没有引入我的依赖项.我试图运行,./gradlew androidDependencies --debug但我没有看到任何下载的依赖项,但他们被确认他们在那里没有警告/错误被抛出.
11:11:36.833 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleVersionRepository] Using cached module metadata for module 'com.nostra13.universalimageloader#parent;1.8.6' in 'MavenRepo'
11:11:36.834 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.UserResolverChain] Using module 'com.nostra13.universalimageloader:parent:1.8.6' from repository 'MavenRepo'
11:11:36.855 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder] Visiting configuration com.nostra13.universalimageloader:parent:1.8.6(default).
11:11:36.857 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder] Attaching com.nostra13.universalimageloader:parent:1.8.6(default) to its parents.
Run Code Online (Sandbox Code Playgroud)
Gradle会在此位置获取依赖关系并从中创建元数据
/home/wil/.gradle/caches/artifacts-26/filestore/com.nostra13.universalimageloader/parent/1.8.6/pom/41669498c2bec505b61772b083cab341653cb86b
Run Code Online (Sandbox Code Playgroud)
有趣的是,我发现如果我在本地拥有maven依赖项,它会将它作为外部库引入Android Studio,它还会将jar添加到gradle缓存文件库中,它不会为我指定的远程依赖项执行此操作.
这是我的build.gradle
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.3'
}
}
repositories{
mavenCentral()
}
apply plugin: 'android'
dependencies {
compile 'com.nostra13.universalimageloader:parent:1.8.6'
}
android {
compileSdkVersion 19 …Run Code Online (Sandbox Code Playgroud)