转Google Protocol Buffer 的使用和原理
摘要:Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、...
阅读全文
posted @
2015-08-27 17:34
jdonson
阅读(3242)
推荐(0)
HAproxy 代理技术原理探究
摘要:HAproxy 技术分享简介HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件Features1.免费 2.能够做到4层以上代理 3.高性能 4.高稳定性使用案例淘宝CDN(HTTP反向代理)测试:HTTP代理 ab -i -c 500 -n 100...
阅读全文
posted @
2015-08-27 15:16
jdonson
阅读(1274)
推荐(0)
再谈应用环境下的TIME_WAIT和CLOSE_WAIT
摘要:昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。在服务器的日常维护过程中,会...
阅读全文
posted @
2015-08-27 14:30
jdonson
阅读(370)
推荐(0)
TCP/IP TIME_WAIT状态原理
摘要:TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态...
阅读全文
posted @
2015-08-27 13:26
jdonson
阅读(2518)
推荐(0)
减少TIME_WAIT连接状态
摘要:减少TIME_WAIT连接状态。网络上已经有不少相关的介绍,大多是建议:shell> sysctl net.ipv4.tcp_tw_reuse=1shell> sysctl net.ipv4.tcp_tw_recycle=1注:通过sysctl命令修改内核参数,重启后会还原,要想持久化可以参考前面的...
阅读全文
posted @
2015-08-26 14:14
jdonson
阅读(1009)
推荐(0)
打开tcp_tw_recycle引起的一次投诉分析
摘要:背景:我们有个基于oauth2.0协议给第三方授权以及信息的业务,年前对接入层、业务层做了次迁移。业务架构简单介绍下:lvs接入---> nginx ---> tomcat问题: 迁移完第1天,接到好几个合作商的投诉,其中有家说在他们业务集群中,有20%左右的失败率,日志显示连接被拒绝。 定位: ...
阅读全文
posted @
2015-08-26 13:45
jdonson
阅读(1384)
推荐(0)
tcp_tw_recycle和tcp_timestamps导致connect失败问题
摘要:近来线上陆续出现了一些connect失败的问题,经过分析试验,最终确认和proc参数tcp_tw_recycle/tcp_timestamps相关;1. 现象 第一个现象:模块A通过NAT网关访问服务S成功,而模块B通过NAT网关访问服务S经常性出现connect失败,抓包发现:服务S端已经收到了...
阅读全文
posted @
2015-08-26 13:29
jdonson
阅读(915)
推荐(0)
TCP短连接TIME_WAIT问题解决方法大全
摘要:tcp连接是网络编程中最基础的概念,基于不同的使用场景,我们一般区分为“长连接”和“短连接”,长短连接的优点和缺点这里就不详细展开了,有心的同学直接去google查询,本文主要关注如何解决tcp短连接的TIME_WAIT问题。短连接最大的优点是方便,特别是脚本语言,由于执行完毕后脚本语言的进程就结束...
阅读全文
posted @
2015-08-26 13:18
jdonson
阅读(2929)
推荐(0)
打开tcp_tw_recycle引起的一个问题
摘要:今天普空说了一个问题就是如果设置了tcp_tw_recycle ,那么如果客户端是NAT出来的,那么就可能会出现连接被直接rst的情况。然后我google了下,在内核列表也有人说了这个问题 https://lkml.org/lkml/2008/11/15/67The big problem is t...
阅读全文
posted @
2015-08-26 12:59
jdonson
阅读(1841)
推荐(1)
TCP三次握手,什么情况下client会回复reset
摘要:1. 现象 最近线上发现如下异常包, tcp三次握手期间,server端发送syn_ack,client回复了reset包;问题:为什么client会回复reset?2. 分析 参考linux2.6.32内核(redhat 6U2)源码, client端TCPIP协议栈在以下情况下,收到SYN_AC...
阅读全文
posted @
2015-08-26 12:58
jdonson
阅读(1438)
推荐(0)
netstat -s TCP连接失败 相关统计 解释
摘要:针对问题:TCP连接失败分析:netstat -s输出中和连接失败相关的参数202270382invalidSYNcookiesreceived --- 三次握手ack包,syncookies校验没通过; 13700572resetsreceivedforembryonicSYN_RECVsocke...
阅读全文
posted @
2015-08-26 12:57
jdonson
阅读(2325)
推荐(0)
转 Linux调优方案,sysctl.conf的设置
摘要:$ /proc/sys/net/core/wmem_max 最大socket写buffer,可参考的优化值:873200$ /proc/sys/net/core/rmem_max 最大socket读buffer,可参考的优化值:873200$ /proc/sys/net/ipv4/tcp_wmem ...
阅读全文
posted @
2015-08-20 19:54
jdonson
阅读(862)
推荐(0)
TCP的那些事-2
摘要:这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之...
阅读全文
posted @
2015-08-20 19:42
jdonson
阅读(316)
推荐(0)
TCP 的那些事儿-1
摘要:TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下...
阅读全文
posted @
2015-08-20 19:41
jdonson
阅读(201)
推荐(0)
linux下如何配置TCP参数设置详解
摘要:设置tcp参数一定要小心谨慎,轻易不要更改线上环境,我贴一下我们线上环境中,sysctl.conf的内容,见文章底部net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30net.ipv4.t...
阅读全文
posted @
2015-08-20 19:24
jdonson
阅读(8776)
推荐(1)