1、什么是TCP网络分层?




2、TCP的三次握手中为什么是三次?不是两次四次?
3、TCP的四次挥手为什么是四次?为什么不是三次?
互相发送四个报文,那么第二、三次可以合成一次报文发送吗?
不可以。
第二次是服务端收到客户端请求马上做出应答:ACK=x+3,在这之后服务端可能要处理之前客户端发送的数据请求,需要相当长一段时间的延迟、时差(超过一分钟或者更久)发送时间是要以处理完成后的时间点相应给客户端。
客户端等待超过了30s或者其他超时时间,作为TCP协议(TCP是面向可靠的,它通过重发的机制来确保报文的可达性),他会进行一次次的重发。如果合成三次挥手,ACK的确认和FIN的确认存在时差的,会导致客户端发过去的FIN请求不断的重发,会造成资源的浪费。
所以需要四次就能达到两端的确认的效果。

4、为什么SYN/FIN不包含数据却要消耗一个序列号?
凡是需要对端确认的,一定消耗TCP报文的序列号。
不然的话可能会因为网络的原因,SYN进行了重发了多次,服务端就会对你的重复数据进行处理。
SYN和FIN需要对端的确认,所以需要消耗一个序列号。
用来去防止重复或者是使调用有一个顺序性。

三次握手里面,客户端发送的SYN需要序列号

四次挥手里面,这个FIN都需要去消耗一个序列号。
5、什么是半连接队列?什么是SYN Flood攻击?
SYNFlood也叫“洪泛攻击”
洪泛攻击,在短时间内向目标系统发送大量的虚假请求的攻击方式。导致目标系统疲于应付无用信息,而无法为合法用户提供正常服务。
2036

被折叠的 条评论
为什么被折叠?



