文章分类 -  TCP

tcp细节
摘要:今天和duolong一起追查connect超时问题,结果发现是arp pending queue len的原因;1. 现象描述 现象a:自己写的client程序,开启16个socket并发connect同一server(异步框架,超时时间为2s),结果其中3个socket连接成功,其余13个超时失败 阅读全文
posted @ 2017-06-27 16:01 永志 阅读(752) 评论(0) 推荐(0) 编辑
摘要:http://blog.chinaunix.net/uid/29075379/cid-181331-list-1.html 阅读全文
posted @ 2017-02-21 21:55 永志 阅读(95) 评论(0) 推荐(0) 编辑
摘要:终止一个连接的正常方式是发送FIN。在发送缓冲区中所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。 但我们有时也有可能发送一个RST报文段而不是FIN来中途关闭一个连接。这称为异常关闭。进程关闭socket的默认方式是正常关闭,如果需要异常关闭,利用SO_LINGER选项来控制。 阅读全文
posted @ 2017-02-21 19:24 永志 阅读(314) 评论(0) 推荐(0) 编辑
摘要:SO_RCVBUF SO_SNDBUF 先明确一个概念:每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的buffer以及此buffer的填充状态。接收缓冲区把数据缓存入内核,应用进程一直没有调用read进行读取的话 阅读全文
posted @ 2017-02-21 19:22 永志 阅读(1639) 评论(0) 推荐(0) 编辑
摘要:SO_LINGER这个选项在我以前带队改造haproxy的时候引出过一个reset(RST)客户端连接的bug。SO_LINGER作用设置函数close()关闭TCP连接时的行为。缺省close()的行为是,如果有数据残留在socket发送缓冲区中则系统将继续发送这些数据给对方,等待被确认,然后返回 阅读全文
posted @ 2017-02-21 19:20 永志 阅读(306) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示