TCP协议的三次握手和四次挥手

三次握手

三次握手,建立连接。

  • 第一握手,客户端向服务端发送建立连接的请求
  • 第二次握手,服务端如果同意连接,向客户端发送应答
  • 第三次握手,当客户端收到同意的应答后,还要向服务端发送一个确认报文段,表示:服务端发送来的连接同意应答已经成功收到了

反馈机制

客户端往服务端发送请求,服务端必须返回响应,告诉客户端收到了请求,并且将服务器端的数据一并返回给客户端。

ps:即一次请求,必须要有一次响应

缺点:

  • 洪水攻击
    • 指的是通过伪造大量的请求,往对方服务器上发送请求,导致对方服务器响应跟不上,以至于瘫痪。
    • linux系统内部可以调整sysctl.conf文件里的net.ipv4.tcp参数抵挡较小的Dos攻击。(详情链接:https://www.cnblogs.com/cnhyk/p/11990401.html)
    • 半连接池listen:限制用户在同一时段内的访问数量。

第一次握手

  • PS1:SYN=1,ACK=0表示该报文段为连接请求报文。
  • PS2:x为本次TCP通信的字节流的初始序号。
  • TCP规定:SYN=1的报文段不能有数据部分,但要消耗掉一个序号。

第二次握手

  • PS1:SYN=1,ACK=1表示该报文段为连接同意的应答报文。
  • PS2:seq=y表示服务端作为发送者时,发送字节流的初始序号。
  • PS3:ack=x+1表示服务端希望下一个数据报发送序号从x+1开始的字节。

第三次握手

为什么连接建立需要三次握手,而不是两次握手?

四次挥手

四次挥手,断开连接。

  • 客户端向服务器发送断开连接的请求
  • 服务端返回收到请求的信息给客户端
  • 服务端确认所有的数据接收完成以后,再发送给同意断开连接的请求给客户端
  • 客户端返回收到断开连接的请求,给服务端

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 





12-21 00:06
查看更多