說到網絡程式設計,我覺得在目前分布式應用橫行的當下,重要性不言而喻了,對網絡協定的掌握才能更好地編寫出正确而穩定的網絡程式。
上面幾張截圖在網絡上幾乎被轉發爛了,但基本反映了tcp狀态轉換情況,再貼上幾篇自己感覺不錯的文章
http://www.cnblogs.com/beifei/archive/2011/07/03/2096927.html
http://www.2cto.com/net/201204/127200.html
http://blog.csdn.net/xiaofei0859/article/details/6044694
如何避免分片:http://blog.chinaunix.net/uid-27164517-id-3360202.html
http://blog.csdn.net/quitquitquit/article/details/4570856
http://www.groad.net/bbs/simple/?
轉發了一堆别人的東西,感覺自己還不是深入,但還是提出幾個觀點來和大家思考下?
1、了解幾個概念,Segment、Packet、Frame分别是什麼?對應網絡七層模型哪幾層?什麼是MTU、MSS?
2、(連結建立)三次握手,四次握手(連結關閉)流程是怎麼樣?
3、我們是否需要關心time_wait(主動關閉)與close_wait(别動關閉)?
4、2msl是什麼?為什麼要有time_wait(2msl)?
5、如何了解四元組(一次TCP連結)?伺服器最多可以建立多少連結?
6、如何了解本地端口範圍?
7、如何了解擁塞視窗,滑動視窗?tcp、網卡、系統是如何協調處理網絡阻塞與延遲的?
8、如何用幾句話來概括Tcp協定的特點?面向連結、全雙工、位元組流傳輸、可靠?
9、網絡封包是如何分解與組裝的?為何出現半包、粘包?怎麼解決?
http://www.myexception.cn/program/608527.html
10、如何了解RT、RTT?如何了解RECQ、SENDQ?
http://www.cnblogs.com/promise6522/archive/2012/03/03/2377935.html
11、自己如何擴充協定?或者編寫和自己應用配套的應用層協定?
12、為什麼是三次握手?
http://www.cnblogs.com/TechZi/archive/2011/10/18/2216751.html
13、如何踢掉空閑連結?
http://www.cnblogs.com/Solstice/archive/2011/05/04/2036983.html (講解很好)
http://www.sj17178.com/6736458.232231.aspx