想要自己diy接近Zeta TCP也是可以的。
For Win,
第一个,windows系统下注册表里面修改ACK每个都回,位置我忘了,Google一下一大把,一般魔兽玩家都会。
第二个,写一个驱动,勾住ACK,修改advertisement window 为0xffff。
For Linux,
由于Linux内核中,ACK回复跟win不一样,它有自己的逻辑,其实很多时候就是一个数据包一个ACK,所以这里不改也差不多。
同样地,写一个驱动勾住ACK,修改advertisement window 为0xffff。
在我们原来的测试中,甚至可以比Zeta还快。
这就是免费的接收方单边加速方法。
发送放单边加速的话,windows就不要想了,改不了内核。
Linux教你一个简单的方法,修改内核源码net/ipv4/
tcp_input.cc。
static inline void tcp_moderate_cwnd(struct tcp_sock *tp)
{
tp->snd_cwnd = min(tp->snd_cwnd,
tcp_packets_in_flight(tp) + tcp_max_burst(tp));
tp->snd_cwnd_stamp = tcp_time_stamp;
}
这里的min改成max,就会有比较好的加速效果了。虽然这是个病态的行为,但是TCP速率在大丢包环境中会有较大的提升。至于道理,这里就不说了,需要较大篇幅和对内核源码的熟悉。