说到网络编程,我觉得在目前分布式应用横行的当下,重要性不言而喻了,对网络协议的掌握才能更好地编写出正确而稳定的网络程序。
上面几张截图在网络上几乎被转发烂了,但基本反映了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