TCP三次握手四次挥手内容及步骤

TCP特性

1、工作在传输层

2、面向连接的协议

3、全双工协议

4、半关闭

5、错误检查

6、将数据打包成段,排序

7、确认机制

8、数据恢复、重传

9、流量控制、滑动窗口

10、拥塞控制,慢启动和拥塞避免算法

 

常见端口号

http80 https443 ftp20/21 dns53 tftp69

smtp25 pop110 imap143 telnet23 ssh 22

mysql3306 oracle1521 

 

三次握手

 

————————————————

当一台主机(客户端)想要通过TCP协议向另一台主机(服务器)发送数据时,需要建立三次握手

第一次握手,客户端主动打开TCP连接通道,发送TCP请求报文,在该报文中SYN(同步位,代表连接请求或连接请求的接受报文)置为1,seq(序列号)为随机数x。

第一次握手过程中,客户端由CLOSED状态,即没有任何连接的状态,变为SYN-SENT状态,即发送连接请求后等待匹配的连接请求状态。代表请求连接,不会传输数据。

第二次握手,当服务器端收到了TCP连接请求(即SYN置为1的报文。注:此处应该是不携带ACK为1的报文),服务器被动打开连接通道,根据服务器自身策略向客户端发送TCP回复报文,在该报文中SYN置为1,ACK(确认位,置为1代表确认,置为0代表...代表不确认呗)置为1,ack(确认序列号)为TCP请求报文中的seq+1即x+1,seq(序列号)为另一个随机数y。

在第二次握手过程中,服务器在收到TCP请求报文时,被动的由CLOSED状态与LISTEN状态变为SYN-RECEIVED状态,即收到和发送一个连接请求后等待对方对连接请求确认的状态,同时准备好缓存空间以及一些涉及到的变量。代表允许连接,不会传输数据。

第三次握手,当客户端收到服务器的TCP连接请求的回复报文后,会向服务器端发送一个报文携带ACK置为1,ack为TCP连接请求的回复报文中seq+1即y+1,seq为最开始的x+1,也就是TCP连接请求的回复报文中ack的值,SYN置为0。

在第三次握手过程中,当客户端收到了TCP连接请求的回复报文(允许连接)时,客户端由SYN-SENT状态变为ESTAB-LISHEN状态,代表一个打开的连接,同时客户端为TCP连接准备好缓存空间以及一些涉及到的变量。该报文代表向服务器端确认的确认报文,可以携带数据。

————————————————

LISTEN:侦听来自远方的TCP端口的连接请求

SYN-SENT:再发送连接请求后等待匹配的连接请求(客户端)

SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(服务器)

ESTABLISHED:代表一个打开的连接

FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2:从远程TCP等待连接中断请求

CLOSE-WAIT:等待从本地用户发来的连接中断请求

CLOSING:等待远程TCP对连接中断的确认

LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认

TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED:没有任何连接状态

 

四次挥手

 

————————————————

参与一条TCP连接的两个“进程”中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)都将被释放。

第一次挥手,客户端向服务器发送关闭连接请求报文,即连接释放报文,关闭TCP连接,该报文中FIN(结束位)置为1,seq置为u(报文段第一个字节的序号,可以标识这个报文段)。

在第一次挥手过程中,客户端由ESTABLISHED状态变为FIN-WAIT-1,等待远程TCP连接中断请求,或先前的连接中断请求的确认。此时客户端已经释放了发送连接。

第二次挥手,服务端收到客户端发送的关闭请求,回复一个确认报文段,该确认报文中ACK置为1,ack为u+1,seq为v(最后一个TCP数据报文中的最后一个字节+1)。

在第二次挥手过程中,服务器由ESTABLISHED状态变为CLOSE-WAIT状态,等待足够的时间以确保远程TCP接收到连接中断请求的确认。此时服务器端释放了接受连接。由于客户端关闭了发送连接,服务器端关闭了接受连接,所有此时整个TCP连接处于一种半关闭状态。

第三次挥手,服务器发送确认关闭报文后需要向客户端发送一个释放连接报文,关闭TCP发送连接,由于是释放连接报文,所以FIN置为1,ACK置为1,ack为u+1(由于上一挥手报文也是由服务器发送,所有客户端等待的报文需要有ACK位,同时确认号依旧为上一个报文的确认号),

 

 

posted @ 2020-06-18 21:51  千纪  阅读(411)  评论(1编辑  收藏  举报