网络协议-TCP、UDP区别及TCP三次握手、四次挥手

2018-06-05  本文已影响51人  wuchao226

网络的五层划分

TCP 和 UDP 的区别

序列号,确认号

TCP 三次握手

  1. 第一次握手:
    建立连接。客户端发送连接请求报文,将 SYN 设置为 1、Sequence Number(seq)为x;接下来客户端进入 SYN_SENT 状态,等待服务端的确认。
  2. 第二次握手:
    服务器端收到客户端的 SYN 报文段,对 SYN 报文段进行确认,设置Acknowledge Number(ACK)为x+1(seq+1);同时自己还要发送 SYN 请求信息,将 SYN 设置为1,seq 为 y。服务端将上述所有信息放到 SYN+ACK 报文段中,一并发送给客户端,此时服务端进入SYN_RCVD 状态。
  3. 第三次握手:
    客户端接收到服务器的 SYN+ACK 报文段;然后将 ACK 设置为 y+1,向服务端发送 ACK 报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED(TCP连接成功)状态,完成TCP的三次握手。

当客户端和服务端通过三次握手建立了 TCP 连接以后,当数据传输完毕,断开连接时就需要进行 TCP 的四次挥手。

TCP 四次挥手

如果有大量的连接,每次在连接、关闭时都要经历三次握手、四次挥手,这很显然会造成性能低下。因此,HTTP 有一种叫作 keepalive connections 的机制,它可以在传输数据后仍然保持连接,当客户端需要再次获取数据时,直接使用刚刚空闲下来的连接而无须再次握手。

上一篇 下一篇

猜你喜欢

热点阅读