TCP八大特性和一个问题
特性一:确认应答机制(核心机制)
特性二:超时重传机制(
超时重传策略1:重传时间间隔递增;
超时重传策略2:超过最大时间间隔就会“停止”重传;
“停止”:以一个固定的频率(较长)试探重传
特性三:连接管理机制(三次握手,四次挥手)
问题1:TCP两次握手行不行?
不行,不能完全验证客户端和服务器的接与发送两个能力。
问题2:四次握手行不行?
行,当然可以,但没必要,吃饱了还要在吃吗(吃饱了撑着~~)
问题3:三次挥手行不行?
有可能,若是端口连接时,接收缓冲区没有任务,则当客户端发出断开请求时即可直接断开,以三次挥手结束双发链接。
特性四:滑动窗口
目的:为了保障传输的性能(窗口大小是默认的)
两个异常情况:
-
客户端信息传递没问题,应答信息包丢失了
当返回ack=6001时,说明服务器段已经收到了1-6000的数据 -
没收到客户端发的信息(丢包了),重复返回ack,要求重传未收到的信息,快重传后,返回当前收到的最后信息(除去重传的信息)的下一个;
例子中的:1001~2000的信息重传后,返回ack=7001;
特性5:流量控制
根据接收缓冲区的实际情况,控制发送速度
若是接收缓冲区已经满了,就不会再发送消息了,但发送端会定时发送一个探测包,
用来检测当前接受缓冲区的大小,如果有余量了,就会继续发送消息。
特性6:拥塞控制
和当前的网络优良有关
规则: 发包量从一开始,默认值16为临界点。当小于此值的时候,以指数增加的方式发包,当等于临界值的时候,转变为线性的方式进行发包,一直到有大量的包丢失;这时就会发包量就会重新回到一,重复以上过程,至死方休~~。
特性7:延迟应答
延迟应答是在控制流量的基础上优化发送效率
策略1:固定一段时间,发送一个延迟应答包;
策略2:接受一定次数的包后,来一个延迟应答;
注意事项:延迟应答时间不能超过MSL(最大生存时间),让如果超过就会导致超时重传。
特性8:捎带应答(用来提高消息传输的性能)
将acx信息在返回响应消息时顺带带上,节省了ack信息单独传递的时间。