TCP基础
- 定义:TCP是面向连接的、可靠的、基于字节流的传输层通信协议。这意味着在发送数据之前,TCP需要建立连接,并且它能确保数据的可靠传输。此外,TCP将数据视为无结构的连续字节流。
- 面向连接:TCP只能一对一进行连接、通信。这并不意味着一个端口只能有一个TCP连接,而是说TCP连接是端到端的。
- 可靠性:TCP通过序列号、确认应答、重传机制、流量控制等手段保证了数据的可靠传输。
- 字节流:TCP将应用程序交下来的数据流分割成适当长度的报文段,然后交给IP层,由IP层进行发送。
TCP头格式
- 源端口、目的端口:标识发送端和接收端的应用程序。
- 序列号:TCP报文段中第一个字节的数据序列标识。建立连接时采用随机数作为初始值,每发送一次累加当此发送的字节数。序列号的作用包括解决包乱序问题,确认已经接收和发送的数据包,防止因网络原因送来的旧报文,以及实现流量控制。
- 确认号:表示已经成功接收到了这个序列号之前的所有数据,请求从这个序列号开始发送后续的数据。发送方根据确认号确定是否需要重传数据。
- 头部长度:标识该TCP头部有多少个32bit字