越努力越幸运--2018年7月22日周记

本周过的很快,记录下本周。

1. 上一家公司,听前同事说方哥也跑路了,感触颇多,程序员这一行,到了后面,路越来越窄,方哥,山哥能力没得说,都是大神级别的,却找不到自己的安乐之地。

2. 本周遇到有趣。

  问题 :TCP协议,SOCKET其的短连接,c端被动断掉,出现了CLOSE_WAIT状态。

  环境: : C ->  性能F5 -> S

  现象: 1. 调用write,errno 返回104,错误说明connection reset by peer.连接被重置  

        2. 程序直接退出,啥现象看不到

       以上2个现象不是同时发生,必有其一发生

  定位错误:

    第一直觉感觉tcp协议使得的坏,因为对协议不了解,怀疑协议栈的哪个参数设置了,如果没报文上来,过了一段时间,协议栈主动断掉短链接,查TCP相关的资料,改了内核参数

    sysctl -w net.ipv4.tcp_keepalive_time=30   --存活时间s
    sysctl -w net.ipv4.tcp_keepalive_probes=2 --过了存活时间,发送探测的次数
    sysctl -w net.ipv4.tcp_keepalive_intvl=2   -- 发送探测的间隔

    没用。。。哈哈,TCP的3次握手,4次再见是明白了

推荐参考的

    http://ahuaxuan.iteye.com/blog/657511

    协议的图还是有必要贴的,S端主动断

    ?

    C端主动断的状态图:

    ?

    继续说问题,google呗,104,google上的一个哥们说发送的数据长度小于实际发送的长度会出现这样的状态,把我的方向带偏了,我在那纠结一会是不是我们发的长度不对,就差抓包了。后来边看协议便改了一部分测试代码,当时也怀疑时序问题,因为我们的c端代码,s端主动断连接,c也cloese了,然后c又继续connect了一个新的sockid,不明白为什么我们的c端会出现CLOSE_WAIT状态,按照上图来说,肯定是不会出现这样的状态的。

我把我们的代码修改了一部分,原先是先建立连接,做部分业务处理,发送,我改成了先做业务处理,发送前建立连接,然后问题过了。。。运气好,哈哈。

分析原因,我们的业务处理大概10分钟,因为建立的短链,协议栈肯定不会来端我们的,因为google一大把,没找到这块说tcp协议会做这样的事,那么只有可能是性能F5,去问了性能F5组,果然他们有这样的一个设置,防止攻击,占着厕所不便便,他们主动给我们断了,大概在6分钟左右,断了之后,当我们本地业务处理完,在write时候,收到一个RST响应,系统产生SIGPIPE(被IGN了),直接write失败,返回104,异常返回,解释的通。

另外现象2,GDB跟了一把,发现还是收到了SIGPIPE,但是设置了signal(SIGPIPE, SIG_IGN),没生效,这就没明白,google说SIG_IGN设置了之后,会一直生效,其他部分信号是一次性的生效,建议用sigaction,试了sigaction,果然没再复现,这里参考http://guangming008.blog.163.com/blog/static/12039682012527258171/

  

原文地址:https://www.cnblogs.com/ashen/p/9351039.html

时间: 2024-12-20 16:25:55

越努力越幸运--2018年7月22日周记的相关文章

日结(2018年12月22日)

春日的雨水,夏日的热情,秋日的余晖,冬至的来临.今天是快乐的一天,也是劳累的一天 这是荒唐的一天,也是值得纪念的一天.从早上9点多开始的鲍师傅之旅,伴随着两个小时的无奈和濒临崩溃的绝望结束.虽然很辛苦,但是排到的那一刻就仿佛一段debug很久的程序跑出了自己希望的结果一样,这种感觉是真的有点开心(我可以说买完看着后面的人焦急等待的神情是真的爽吗) 从来没有逛过这么久的街,也从来没有花钱花到身无分文还想浪.这个月的一次"大作战"改变了原本的生活轨迹,计划好的生活费成了不足,这种超出预期的

2018年1月22日 第九次小组会议

今天晚上在电四楼实验室进行了第九次小组会议. 对HTML网页的外观等格式进行了整体优化. 某些表单提交网页内容及排版进行了优化,发送信息和设置创建项目目前可以使用并可对数据库进行操作. 数据库结构进行更多讨论,当前具体数据库样式参见群文件. 明天开始将大多数网页的内容由数据库读取并填入框架中,使网站开始具备应有的功能.并准备上线. 检查逻辑上可能存在的各种问题,同时在信息安全的角度进行更多优化. 原文地址:https://www.cnblogs.com/ustcsoftdev/p/8331602

2016CCPC东北地区大学生程序设计竞赛 (2018年8月22日组队训练赛)

题目链接:http://acm.hdu.edu.cn/search.php?field=problem&key=2016CCPC%B6%AB%B1%B1%B5%D8%C7%F8%B4%F3%D1%A7%C9%FA%B3%CC%D0%F2%C9%E8%BC%C6%BE%BA%C8%FC+-+%D6%D8%CF%D6%C8%FC&source=1&searchmode=source A题题目: 题意: 生成一棵最小生成树,边权值为两个节点的最小公倍数. 思路: 由最小公倍数的和最大公约

2018年11月22日 元祖2 E18灯翼平整度

如果创建的东西需要增加修改的,则用list 如果不能修改就用元祖,如果需要修改这需要转成list 字典 字典的value是任意值 info= {"k1":'v1',"k2":"v2"} # 用逗号分隔,分隔成 键值对 #dict 类 注意用{} 大括号 info={ "k1":18, "k2":True, 1:[11,22,33], True:(2,3,4), (1,2,3):"abc"

七周一次课(1月22日) 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令

七周一次课(1月22日)10.1 使用w查看系统负载10.2 vmstat命令10.3 top命令10.4 sar命令10.5 nload命令 ==================================================================================================================================================================================

越努力越幸运 —— 51CTO PMP百日备考记

越努力越幸运 -- 51CTO PMP百日备考记 (PMP4期VIP备考群180908 唐尧) 经历一个月的漫长等待后,终于收到PMI发来的邮件,当第一眼看到"congratulations"时,兴奋和激动的心情已难以抑制,紧握拳头对着自己喊了句"YES!"再一次印证了我的座右铭"越努力越幸运". 上一次有这种经历和感受还是在15年前,2003年国庆节后,毅然决定准备考研,从10月到来年1月,同样只有100天左右的备考时间,功夫不负有心人,100

越努力越幸运~加油

在这个世界上,总有那么一些人,他们智商不高,却总是傻傻地努力,笨笨的坚持,现实从不偏爱这样的笨小孩,但因为他们总是在锲而不舍的敲门,希望的大门也就渐渐的不得不向他们敞开…… 觉得自己做的到和不做的到,其实只在一念之间. 越努力越幸运,加油!!

2018年4月2日推荐文章精选 “推荐好文,一篇看尽”

记录一次邮件容灾恢复过程 作者:Juck_Zhang简介:客户目前使用的是Exchange Server 2013,两前两后,数据盘是存储挂载过来的,邮件备份使用的是NBU,由于机房漏水,导致存储服务器宕机.导致绝大部分数据丢失. Nginx+Tomcat+memcached高可用会话保持 作者:dyc2005简介:本文通过 Tomcat Session Replication Cluster(tomcat自带)和tomcat结合memcat及第三方组件实现Tomcat Memcache Ses

政府工作报告-2018年3月5日在第十三届全国人民代表大会第一次会议上李克强总理所做报告

政府工作报告--2018年3月5日在第十三届全国人民代表大会第一次会议上国务院总理 李总理 各位代表: 现在,我代表国务院,向大会报告过去五年政府工作,对今年工作提出建议,请予审议,并请全国政协委员提出意见. 一.过去五年工作回顾 第十二届全国人民代表大会第一次会议以来的五年,是我国发展进程中极不平凡的五年.面对极其错综复杂的国内外形势,以习主席同志为核心的党中央团结带领全国各族人民砥砺前行,统筹推进"五位一体"总体布局,协调推进"四个全面"战略布局,改革开放和社会