hengyunabc的专栏

日落黄金台金黄落日 -- 横云断岭

为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)

TCP keep-alive的三个参数用man命令,可以查看linux的tcp的参数:man 7 tcp其中keep-alive相关的参数有三个: tcp_keepalive_intvl (integer; default: 75; since Linux 2.4) ...

2015-03-16 19:12:50

阅读数:24952

评论数:0

netstat统计的tcp连接数与⁄proc⁄pid⁄fd下socket类型fd数量不一致的分析

新blog地址:http://hengyunabc.github.io/netstat-difference-proc-fd-socket-stat/最近,线上一个应用,发现socket数缓慢增长,并且不回收,超过警告线之后,被运维监控自动重启了。首先到zabbix上观察JVM历史记录,发现JVM...

2015-02-17 11:15:26

阅读数:12332

评论数:1

扯谈网络编程之Tcp SYN flood洪水攻击

简介 TCP协议要经过三次握手才能建立连接: (from wiki) 于是出现了对于握手过程进行的攻击。攻击者发送大量的SYN包,服务器回应(SYN+ACK)包,但是攻击者不回应ACK包,这样的话,服务器不知道(SYN+ACK)是否发送成功,默认情况下会重试5次(tcp_syn_retries...

2014-05-12 20:45:03

阅读数:19266

评论数:6

ZPush--基于netty4实现的苹果通知推送服务(APNs)Java客户端

简单说下实现苹果通知推送服务(APNs)客户端的一些要注意的地方: 使用长连接;sanbox服务器是没用的,调试时直接用“gateway.push.apple.com”域名;对于错误的Notification,苹果会回应一个Error response,里面有个identifier,在这个id...

2014-05-10 00:46:11

阅读数:7453

评论数:11

蛋疼的Apple IOS Push通知协议

简介 Apple Push通知机制其实很简单,就是Apple的APNs服务器做为中间人,把消息推送到对应的设备上。 一张来自Apple文档的图: 当然,示意图看起来简单,但是还有一些实际的问题。 比如,如何区分Provicer的?如何区分设备的? 简单而言,是这样的: 每个应用都有一个自己...

2014-05-10 00:33:07

阅读数:8660

评论数:1

扯谈网络编程之自己实现ping

ping是基于ICMP(Internet Control Message Protocol)协议实现的,而ICMP协议是在IP层实现的。 ping实际上是发起者发送一个Echo Request(type = 8)的,远程主机回应一个Echo Reply(type = 0)的过程。 为什么用ping...

2014-05-03 05:37:12

阅读数:4766

评论数:0

Apache HttpClient 没有设置time out导致应用长时间阻塞的问题

现在的对外接口一般都是Http + json的,因为简单,语言无关。 Apache HttpClient应该是最常用的Java http组件了。这货有个坑爹的地方,Apache HttpClient如果对方不回应,或者网络原因不返回了,那么HttpClient会一直阻塞。这种情况在公网可能比较容易...

2014-04-21 19:46:12

阅读数:19151

评论数:2

vitess中rpc兼容http请求的技巧

vitess是google的一个mysql项目,用go和python实现。https://code.google.com/p/vitess/ vitess中用rpc方式来中转mysql的请求,其中rpc的实现很有意思,兼容了http请求。 兼容http请求有明显的好处: 1.可以用现成的监控...

2012-07-08 00:17:53

阅读数:2459

评论数:0

socket编程:SO_REUSEADDR例解

<br />socket编程:SO_REUSEADDR例解 <br /><br />                                            kevintz 2000-6-19 <br /><br />   ...

2010-10-05 00:42:00

阅读数:898

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭