1.连接管理。即三次握手和四次挥手。这种连接管理机制是保证可靠传输的前提。
2.序列号。tcp的每个字节的数据都进行了编号,它能避免数据重复和数据丢失,能保障数据接收的有序性, 按照序列号数据进行数据还原,能够提高效率,基于序列号可以实现多次发送,一次确认。
3.确认应答。接受方接收到数据后,会回传ACK报文,用于告知发送者此确认号之前的数据已成功接收。 若在指定时间后,发送端未接收到确认应答号,会启动超时重传机制。
4.超时重传。超时重传有两种场景。一种是发送方未收到确认应答会启动超时重传机制,另一种是确认包丢失。 即接收端收到重复数据时将其丢弃,并重新回传ACK报文。
5.流量控制。接收端处理数据的速度有限,如果发送方给发送数据的速度过快,就会导致接收端的缓冲区溢出, 进而导致丢包。为了避免以上情况,tcp根据接收端的处理情况来决定发送端的发送速度,这就是流量控制。流量控制是在tcp首部维护一个滑动窗口来实现的。
6.拥塞控制。拥塞控制就是在网络拥堵时,发送端减慢发送速度。拥塞控制时通过发送端维护一个拥塞窗口实现的。 由此可见,发送端的发送速度受限于滑动窗口和拥塞窗口的最小值。拥塞控制方法有:慢启动,拥塞避免,拥塞发生,快速恢复。