随笔分类 -  网络编程

摘要:shutdown 和 close关闭tcp连接的介绍网上有很多,主要区别如下:1、调用close后,将中止通信、删除套接字、丢弃数据。但是,注意喽,但是,如果有多个进程共享一个套接字,close每被调用一次,计数减1,直到计数为0时,也就是所用进程都调用了close,套接字将被释放2、close 关... 阅读全文
posted @ 2014-10-09 08:54 good90 阅读(378) 评论(0) 推荐(0)
摘要:最近讨论到net.ipv4.tcp_timestamps这个系统配置是否能够开启,RFC文档上说道该值必须为单调递增,否则接受到的包可能会被丢掉于是查看下tcp协议栈中是根据什么来生成这个timestamps的,是否会受时间改变而改变?tcp协议栈代码如下:static unsigned tcp_s... 阅读全文
posted @ 2014-08-13 20:29 good90 阅读(7562) 评论(0) 推荐(0)
摘要:以下来结论自tcpcopy & gryphon讨论群经过试验测试得出,不保证肯定正确。net.ipv4.tcp_tw_recyclenet.ipv4.tcp_tw_reusenet.ipv4.tcp_timestamps1) recycle和reuse参数必须在客户端和服务端都开启timestamp... 阅读全文
posted @ 2014-08-11 18:51 good90 阅读(438) 评论(0) 推荐(0)
摘要:客户端(>5w)异步connect连接到server端,server端listen backlog设置为1024,发现存在部分客户端建立连接后,收到服务端的rst包。先看下tcp监听套接字维护的两个队列(来自Unix网络编程)测试模拟抓包如下:解释:异步connect过快,导致server端list... 阅读全文
posted @ 2014-06-25 18:58 good90 阅读(474) 评论(0) 推荐(0)
摘要:之前一直对tcp keepalive选项理解有误,以为通过setsockopt函数设置SO_KEEPALIVE和相关参数后该socket则使用设置的keepalive相关参数否则使用系统默认的:keepalive配置(如下)root@xxx-KVM:/# sysctl -a | grep keepn... 阅读全文
posted @ 2014-06-24 20:28 good90 阅读(2957) 评论(0) 推荐(0)