面试回答:
TCP主要通过校验和、确认应答序列号、超时重传、连接管理、流量控制、拥塞控制这6个方面来保证数据的可靠传输的。
1、检验和:数据收发方在进行数据传输时,都会先计算校验和,如果不一致,就说明数据传输有误。
2、确认应答,序列号:TCP在进行数据传输时都是进行编号的,每次接收方返回ACK时都有确认序列号。
3、超时重传:如果发送方发送数据一段时间后没有收到ACK,那么就重新发送数据。
4、连接管理:TCP通过三次握手建立连接,四次挥手断开连接。
5、流量控制:根据接收端的能力进行数据发送
TCP协议报头包含16位的窗口大小,接收方会在返回数据时,将自己的即时窗口大小填入,发送方就会根据报文中窗口的大小控制发送速度。
6、拥塞控制:会像探路一样,先发送小数据,防止拥塞
刚开始发送数据的时候,拥塞窗口是1,以后每次收到ACK,则拥塞窗口+1,然后将拥塞窗口和收到的窗口取较小值作为实际发送的窗口,如果发生超时重传,拥塞窗口重置为1。这样做的目的就是为了保证传输过程的高效性和可靠性。