TCP传输控制协议
TCP协议是面向连接的可靠传输协议,传输是面向字节流的即,不对数据边界进行控制,需要上层对交付给TCP的数据控制边界,否则会发生粘包问题。面向字节流的数据传输,会对数据进行一定的拆分或者组装。接收方接受数据灵活可以接受单个字节或多个字节(应用层)。
TCP协议是面向连接的,因此在数据的传输之前需要建立连接,数据传输完成后需要终止连接
TCP协议是一种可靠传输协议。
TCP首部格式
端口和UDP协议中的端口相同,和IP地址用于标示在网络唯一运行的进程
序列号:标识TCP发送端到接收端传送的数据报中第一个字节在整个字节流中的位置,其大小是一个32位的无符号整数,在一次连接中从0到2^31然后又从0开始循环,另外其建立连接时使用的序列号不是0是由ISN(初始序列号)决定的第一报文序列号为ISN + 1,另外当数据特别大时序号用完后会用时间戳选型解决接受的包序号相同的问题。
确认号:是接收方期望接受的下一个序列号即需要发送方发送的序列号,其值为成功接收的序号加1后的值,另外只有ACK被置1时才有效
头部长度:同IP协议头部长度,以四字节为基本单位,最大为60字节
标志位:
CWR拥塞窗口减少标志被发送主机设置ÿ