1.TCP是面向连接的。就是当你想要开始传递数据的时候,之前应该先把连接建立起来。它不像UDP协议,可以直接发送数据。
2.TCP提供可靠的数据传输,实现了丢失重传。RTT的估算。
3.TCP通过给所发送数据的每一个段管理一个序号进行排列。每一个包都会有一个序列号,由底层内部按照序列号排序之后,再行发送。
4.TCP提供流量控制和拥塞控制:报告窗口、拥塞窗口。
5.TCP的连接是全双工的,同时发送和接受数据可以同时进行不受干扰。
二:TCP协议头窗口分析
包头内容:
1.源端口:我们再开发的过程中不是特别关注的。如果你是客户端的话,在建立连接之后根本就不知道你的源端口是什么。
2.目的端口:就是我们要连接的端口,如80端口。你肯定会发送一个TCP包,包含了80端口的连接请求。
3.序号:在我们确认保证这个数据是有序的,在三次握手之后才开始向下排的。
4.数据偏移:因为我们下面又长度可变的选项,我们要知道从哪边开始是数据,说白了就是整个tpc头的大小。
5.20字节的固定首部:注意是固定的,
6.报协议类型:URG,ACK,PSH等等标识位,来标识你这个包是什么类型的。