一、引言
TCP协议(Transmission Control Protocol 传输控制协议)不同于UDP协议,它是一个面向连接(一对一)的,可靠(做了差错控制)的字节流(不限长度)服务。TCP的可靠性通过下面方式来控制:
- 将应用数据分割成TCP认为最合适长度的数据块。减少IP层的分片现象的发生。
- 当TCP发送一份数据包后,它启动一个定时器,等待目的端确认收到这份数据包。如果不能及时收到一个确认,将重发该数据包。确定对方收到数据了。
- 当TCP接收端收到一个数据包时候,会发送一份确认数据包。告诉对方已经收到数据了。
- TCP将对它的首部和数据部分做校验和。防止传输中出错。
- TCP会对收到的数据进行排序,按照正确的顺序提交给应用。
- TCP会抛弃重复的数据。
- TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。
二、TCP数据包结构
TCP数据包是封装在IP数据包中的