TCP保证安全可靠连接的五大措施

时间:2025-01-23 07:27:48
1,连接管理
TCP是面向连接的,三次握手四次挥手都保证了连接的可靠性。
2,序列号
TCP是面向字节流的,它要求数据报按次序到达。发送端会为每一个字节流添加一个序号,会按照序号的顺序向接收端发送数据报,而接收端也会按照顺序接受这些数据报,如果中间一个序列号的数据包丢了,虽然它还是会接受这些数据包,但是它也会重复发送丢失的数据报之前的确认报文段,来告诉发送端重发这个数据报,以保证发送端发送丢失的数据报。
3,超时重传
当TCP发送了一个数据包时,会启动一个定时器,如果在有一定的时间内没有收到接收端的确认报文段,就会重新发送这个数据包。
4,流量控制
发送端会根据接收端处理数据的能力调整发送速度。首先,接受端将自己处理数据的缓冲区的空闲区域的大小写入到TCP报文头部的窗口大小中,通过ACK确认报文段发送给发送端,发送端接收到这个报文之后,会根据窗口的信息调整自己发送数据的能力。比如,接收端的缓冲区快满了,它将窗口大小调小,发送端接收到这个信息后会放缓发送数据报的速度。接受端的缓冲区彻底满了之后,它会将窗口大小的信息设置为0,发送端接收到窗口信息后,会停止发送信息,但是会隔一段时间发送一个探测的报文段,来查看接收端的缓冲区状态。
5,拥塞控制
由慢启动,拥塞避免,快重传,快恢复四个核心算法组成。
①慢启动,当主机启动开始发送数据时,会先探测性的调到一个很小的窗口大小,(因为它不知道网络状态,一下子放入大量数据报可能会导致网络拥塞或者丢包),随着发送的次数增加,窗口大小也成倍增加。
②拥塞避免,为了避免窗口拥塞,会放缓窗口的增加速度,每次会使窗口的大小+1。
③当发送端连续三次接收到同一个报文段的确认报文时,会直接启动快重传算法,发送这个报文段后边的丢失的那个报文段。
④快恢复,为了避免是因为直接重传而造成网络堵塞,在它之后会继续执行第二步拥塞算法。