本週過的很快,記錄下本週。
1. 上一家公司,聽前同事說方哥也跑路了,感觸頗多,程式設計師這一行,到了後面,路越來越窄,方哥,山哥能力沒得說,都是大神級別的,卻找不到自己的安樂之地。
2. 本週遇到有趣。
問題 :tcp協議,socket其的短連線,c端被動斷掉,出現了close_wait狀態。
環境: : c ->效能f5-> s
現象: 1. 呼叫write,errno 返回104,錯誤說明connection reset by peer.連線被重置
2. 程式直接退出,啥現象看不到
以上2個現象不是同時發生,必有其一發生
定位錯誤:
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次再見是明白了
推薦參考的
協議的圖還是有必要貼的,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,果然沒再復現,這裡參考
越努力越幸運
作為乙個剛畢業邁入社會的乙個青年,在社會上真的是有很多的 這些 在無形中吞噬著自己,讓自己忘卻了在學校的奮鬥生活,忘卻了自己的理想,在繁華的都市中享受著所謂的燈紅酒綠的生活,沉迷於安逸的環境中,沒有了上進心,沒有了自己的目標,這真的是一件很可怕的事情。如果說 一開始的工作是很舒服,每天過著朝九晚五的...
越努力越幸運
說好的旅行,放空自己。我選擇去了大連,去看看真正的大海。季xx陪我一起去的,我倆吃了大串魷魚,開始住的如家,環境太差,換了一家還不錯,酒店下面賣的水果真心不錯,大櫻桃 葡萄。吃貨的世界,到 都不忘關注吃的。我倆去看了海,海邊有衝上來的海帶,海浪真挺嚇人。去老虎灘坐了船,感覺海浪要把船掀翻了,真心有點...
個人總結 越努力,越幸運
這個作業屬於哪個課程 這個作業要求在 homework 11664 作業目標 回顧總結一學期下來的經歷 第一次作業 第一次程式設計作業 第二次程式設計作業 第一次結對作業 第二次結對作業 第三次結對作業 摸魚小分隊 團隊展示 團隊作業第二次 專案介紹 團隊作業第三次 uml設計 團隊第四次作業 需求...