Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 在3G等移动网络上,iPhone客户端的服务有哪些TCP调优技巧?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我是一个开发人员,他的设计网络服务很糟糕,iPhone客户端会非常努力. iPhone应用程序在过去一年的下载量超过了10MM,现在我将用户带到网上互相交流. 我想调整将承载基于TCP的网络服务的服务器的TCP实现.发送的每请求大小将是“小”(例如< 256字节).好吧,你明白了,这是一个游戏服务器(震惊!). 仅供参,因为游戏不像Quake一样,我对这个特定服务的UDP(或者在ENet和Rak
@H_262_13@
我是一个开发人员,他的设计网络服务很糟糕,iPhone客户端会非常努力. iPhone应用程序在过去一年的下载量超过了10MM,现在我将用户带到网上互相交流.

我想调整将承载基于TCP的网络服务的服务器的TCP实现.发送的每请求大小将是“小”(例如< 256字节).好吧,你明白了,这是一个游戏服务器(震惊!). 仅供参,因为游戏不像quake一样,我对这个特定服务的UDP(或者在ENet和RakNet上看到的UDP上的可靠层)不感兴趣;必须可靠地接收所有数据包,这就是TCP的设计目标.因此,iPhone客户端和服务之间的连接将是“长期存在的”(尽可能地 – 隧道和电梯被诅咒!). 仅供参,我在运行Linux 2.6.18-164.9.1.el5的服务器上以100Mbps的上行链路运行该服务.

我的目标是同时:

>尽可能降低延迟;和
>最小化每个连接客户端使用的内存量.

有大量与TCP相关的旋钮可以调整!经过一些基础研究后,似乎大多数人都建议按原样保留设置.但是,有一些设置似乎应该针对特定情况进行调整.我知道这有点模糊,这就是我寻求帮助的原因.

虑调整片状网络上的小请求/响应,同时尽可能减少内存,可能是:

> TCP / IP实现可用的内存
>设置“nodelay”选项(禁用Nagle算法,因为这是一个半实时游戏服务器)
>拥塞控制算法
>等等(还有什么?)

虑TCP congestion control algorithms

> reno:几乎所有其他操作系统都使用的传统TCP
>立方体:CUBIC-TCP
> bic:BIC-TCP
> htcp:汉密尔顿TCP
>拉斯维加斯:TCP Vegas
> Westwood:针对有损网络进行了优化

我的服务器认为bic,其“目标是设计一种协议,可以在高速长途网络上将其性能扩展到每秒几十吉比特,同时保持强大的公平性,稳定性和TCP友好性.”

仅从微小的描述来看,Westwood听起来更合适,因为它“旨在更好地处理大带宽延迟产品路径(大型管道),由于传输或其他错误(漏管道)而潜在的数据包丢失,以及动态负载(动态)管道)”.

在这里过得太深还是这个课程的标准?

您通常会调整哪些类型的TCP / IP?怎么样?有什么经验法则可以知道

你对我的具体案例有什么智慧之言?

非常感谢!

解决方法

因此,正如您所知,TCP拥塞控制是一个非常复杂的领域.

对于这种特殊情况,由于请求较小,您将希望尝试尽可能地保持连接打开,因为每个请求一个连接将分别获取五个数据包,而您可以将平均值降低到如果你保持联系,那么两个以上的数据包.

NODELAY是游戏服务器的正确选择;你想要立即传送256个字节,而这不是一个整段,所以除非你使用NODELAY,否则nagle会暂停.

如果您的服务器有大量内存,那么内存选项没什么大不了的,新内核就是正确的.

至于拥塞控制算法,你发现了Westwood.另一种选择是CUBIC.你可以选择一个,或者你可以做一些研究并对它们进行基准测试.这可能是相当多的工作,但对于1000万客户来说,这是值得的.因此,我会虑在Mac或三台上使用流量生成器运行模拟(因为它们具有与手机相同的TCP实现),在充当路由器之间的Linux机箱(稍后会详细介绍)和你的一台服务器,看它是怎么回事.

现在,中间的Linux盒子应该运行ns-3,这样你就可以模拟一个比以太网交换机更复杂的路径.然后,您可以在TCP连接的发送端捕获一些数据包跟踪,并使用tcptrace或wireshark的tcptrace图形模式对其进行分析. tcptrace文档是分析TCP拥塞行为的一个很好的介绍.

大佬总结

以上是大佬教程为你收集整理的linux – 在3G等移动网络上,iPhone客户端的服务有哪些TCP调优技巧?全部内容,希望文章能够帮你解决linux – 在3G等移动网络上,iPhone客户端的服务有哪些TCP调优技巧?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。