《Unix网络编程》读书笔记之TCP

TCP的特点:
1)、发送方和接收方需要建立连接,整个过程是先建立连接,发送数据,关闭连接的过程。
2)、可靠性,TCP含有RTT算法,可估算等待确认的时间,从而决定什么时候重传。
3)、分包编号发送。
4)、流量控制,TCP会告诉发送方自己能接收多少数据(advertised window),只有自己有空间才能接收发送方的数据。
5)、TCP是双向通信的,既是接收方又是发送方,TCP维护着2个方向上的信息。

TCP连接建立的过程:

在建立连接的过程中,可以随着SYN握手信息带上一个MSS选项,该选项可以指定该连接中发送的一个Segment中的最大数据量。

TCP终止连接的过程:


TCP连接状态转换图:

这张图描述了客户端,服务端在一个TCP连接中可能出现的所有状态。

发送一个分节数据的完整过程及涉及到的状态转换:


可以看到,为了发送一个分节的请求,得到一个分节的回复,我们会涉及到8个字节的额外开销。这就是为什么TCP长连接比短连接好的原因了。

TCP最后的TIME_WAIT状态存在的原因:
首先要明确的是默认的TIME_WAIT状态持续的时间为2MSL.
1、保证服务端能正确关闭,因为客户端最后返回的ACK可能丢失,此时服务端会重传FIN,客户端需保留状态以回应。
2、防止同一端口上新的连接获取老连接的分节,在TIME_WAIT状态的连接未释放端口,不能创建新的连接。

猜你喜欢

转载自ningandjiao.iteye.com/blog/1544340
今日推荐