tpc的time-wait

Posted notlate

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tpc的time-wait相关的知识,希望对你有一定的参考价值。

close wait是被动关闭那方,time wait是主动关闭连接那方。

四次握手第三次后,也就是主动关闭连接的那方,收到被动关闭那方的fin后,自己直接进入time-wait状态,然后发一个ack给被动那方,经过2*msl时间无论如何都会直接关闭。可以保证对方重发过来的fin消息可以顺利收到,而不会由于自己close让对方直接报错。另外这个时间也可以防止新的连接会受到本来给老的连接的tcp包,这段时间老的包肯定都到达了。

 

使用tcp-tw-recycle依赖于ipv4.tpc-timestamps的时间戳功能(双方都必须启用)

 

打开tcp-tw-reuse,表示处于time wait状态的连接,可以被新的连接请求服用,通过tcp时间戳,内核帮忙解决延迟包后到达的问题。这个东西用只能在客户端可以提高处理能力。

 

相反,如果使用tcp-tw-recycle,那么内核会更快回收time-wait状态的连接,而不是2*msl。处于time-wait后,记录最后一次通信时间戳,以后这个对方对端主机发过来的连接请求全部丢弃。也就是客户端发过来sync请求连接,这边time-wait的端口由于recycle,不会回应ack

这个东西最好别用,比如有nat这种网络转发节点情况下,一个负载均衡收到一个包后,会转发给多个Webserver。那么对于Webserver来说,其实只有一个负载均衡的源地址ip,因为负载均衡转发给Webserver的话,需要把自己的地址写到包里面。于是就会发生时间戳错乱的情况,那么新建的连接请求就收不到了

 

,

 

以上是关于tpc的time-wait的主要内容,如果未能解决你的问题,请参考以下文章

TPC-C TPC-HTPC-DS和SSB测试基准(Benchmark)介绍

TPC-H与TPC-DS

想了解数据库领域的“世界杯”TPC-C,看完这一篇就够了

TPC-C

TPC-H数据导入postgresql教程

炫“库”行动-人大金仓有奖征文---TPC-E测试工具osdldbt-dbt5编译和测试方法