好了,我的初衷是学习websocket,但是发现自己对TCP/IP协议不是很清楚,觉得自己还是要好好了解一下,因此老套路喽,先上网查一下啦!我找到这样一本书:
《TCP/IP详解》
本书一共有三卷,太长了,最后呢我发现一位总结写的很好,好吧看总结吧!
http://blog.csdn.net/goodboy1881/article/category/204448
其中的一些概念只需要了解就好了,但是有的东西是要好好学习的:
比如说连接流程:
1.连接的建立
在建立连接的过程之中,客户端首先向服务器申请打开一个端口(用SYN段等于1的TCP报文),然后服务器端发回一个ACK报文通知客户端请求报文收到,客户端收到确认报文以后再次发出确认报文确认刚才服务器端发出的确认报文,至此,连接的建立完成。这就叫做三次握手(三次握手哦)。如果打算让双方都做好准备的话,一定要发送三次报文,而且只需要三次报文就可以了。可以想见,如果再加上TCP的超时重传机制,那么TCP就完全可以保证一个数据包被送到目的地。
2.结束连接
TCP的连接是全双工(可以同时发送和接收)连接,因此在关闭连接的时候,必须关闭传和送两个方向上的连接。客户机给服务器一个FIN为1的TCP报文,然后服务器返回给客户端一个确认ACK报文,并且发送一个FIN报文,当客户机回复ACK报文后(四次握手),连接就结束了。
好啦。。。。很多东西还要自己琢磨啦。。。。