美文网首页
TCP连接的建立-三次握手

TCP连接的建立-三次握手

作者: 阿立94s | 来源:发表于2016-09-16 16:53 被阅读0次

TCP运输管理分为三个阶段

建立连接

数据传送

断开连接

TCP的建立连接过程是采用CS模式的,假设C是客户端发起请求,S是服务端等待连接

S端的TCP进程被动的打开等待连接,C端的TCP进程主动打开,发送请求

首先S的TCP服务器进程先创建传输控制块TCB,然后就处于LISTEN状态;C的TCP客户进程也创建传输控制块TCB,然后向S发送请求。

SYN是TCP首部的码元比特中的一个位,用来连接建立是的同步序号,ACK是在连接时的确认号,就是说没有连接的时候ACK=0,当建立连接后所有的ACK=1;当SYN=1而ACK=0的时候表示是一个连接请求。

第一次握手:首先C发送请求报文,首部中的SYN=1,同时为自己选择一个初始序号seq=x,SYN报文段不能携带数据,但是消耗一个序列号,TCP客户进程进入SYN-SENT(同步已发送)状态。

第二次握手:S收到请求后,如果同意建立连接,则向S发送确认,也就是响应报文,这个时候需要SYN=1,ACK=1,确认号是seq=x+1,同时也为自己选择一个初始序号seq=y;这个报文也不携带数据,但是消耗一个序列号,TCP服务器进程进入SYN-RCVD(同步收到)状态。

第三次握手:TCP客户进程收到S的确认后,还要向S发送确认,确认报文段的ACK=1,确认号ack=y+1;而自己的确认号seq=x+1;这个报文段可以携带数据,但是如果不携带的话,下一个数据报的序号仍然是seq=x+1;这是TCP连接建立,C进入ESTABLISHED(已建立连接)状态,同时在S收到A的确认后也进入ESTABLISHED(已建立连接)状态。

为什么要采用三次握手而不是两次?

如果C向S放松一个请求连接报文,如果这个请求报文在网络中停滞了,所以超过了超时等待后,C会向S再次发送一个请求报文,假设当本次连接释放后,停滞的请求到达了S,S则误以为又是一次新的连接请求,于是发送一个响应,若不采用三次握手,而是两次,这个时候S就认为已经建立了连接,但是C并没有数据要发送,所以白白浪费了S的资源。

相关文章

  • 链家 PHP 面试

    TCP三次握手在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时...

  • 头条-阿里面试题

    TCP三次握手在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时...

  • TCP三次握手和四次挥手超完善总结

    TCP 三次握手(建立连接) 三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需...

  • TCP10问

    1.TCP建立连接时需要几次握手, 断开连接需要几次握手? TCP建立连接需要三次握手, 断开连接要四次握手。现有...

  • TCP三次握手和四次挥手以及缺陷

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 1、TCP连接建立——三次握手 几...

  • TCP三次握手和四次挥手

    1、TCP三次握手 TCP建立连接需要进行“三次握手”: TCP三次握手过程描述如下: 客户端发送连接请求报文:S...

  • TCP的可靠性

    TCP数据报首部格式 建立连接——三次握手 TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个...

  • TCP/IP协议三次握手与四次挥手与使用异步方式进行消息的接收

    三次握手 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要...

  • 运维必会原理——TCP/IP三次握手与四次挥手

    三次握手 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要...

  • tcp三次握手

    TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时...

网友评论

      本文标题:TCP连接的建立-三次握手

      本文链接:https://www.haomeiwen.com/subject/ugqiettx.html