1:TCP协议是网络协议中的传输层的一种可靠传输的协议,在很多框架或者是中间件中都使用TCP协议,原因还得归功于 TCP协议的可靠性传输,TCP协议能做到可靠性传输的原因是基于"三次握手"
2:最开始的时候client和server这两端都是关闭状态的,三次握手分为三步
2.1:上图中①,首先client向server发送同步信号SYN=1,序列号seq=x,把自己的状态变更为SYN-SEND状态
2.2:上图中②,server接收到了client的同步信号,也要同时向client发送SYN=1的同步信号,并发出确认的信息ACK=1,自 己的序列号y,确认回复client的序列号ack=x+1,并把自己的状态更新为LISTEN状态(为什么要发送ack=x+1的原因是 可以让client在接收的时候,确认这个 是自己的,和之前给client给server发送的x相呼应)
2.3:上图中③,client接收到server发送的信号后,会给server发送信号确认信号ACK=1,seq=x+1,ack=y+1(为什么要 +1,原理同上),此时server的状态变更为SYN-REVD状态,以此建立了连接,便可以做数据传输了。
3:在使用TCP协议作为传输协议的时候,可能会发生遭遇洪泛攻击,原因是只要客户端发起了连接请求,服务器端就会给新 启一个线程来处理这个请求,此时为第二步的时候,客户端就不发起第三步了,此时服务器会一致等待,导致资源浪费, 线程数量急剧增加,严重点可能导致宕机的后果。ps: 可以使用白名单-ip的方式来规避这种不正常的网络请求。