TCP三次握手,四次挥手问题总结
文章目录
TCP三次握手,四次挥手解释
SYN 包:建立连接请求的包
FIN 包:切断TCP 连接的包
ACK 包:针对SYN 包和FIN 包的确认应答包
1、TCP 的特点及其目的:
(1)TCP 是通过校验和、序列号、确认应答信号、重发机制、连接管理以及窗口控制、流量控制、拥塞控制等许多机制来实现数据的可靠性传输。
(2)在TCP 中,当发送端的数据达到接收端主机的时候,接收端主机会返回一个已收到消息的通知,这个通知被称之为“确认应答信号”ACK。
(3)TCP 通过肯定的确认应答信号ACK 实现可靠的数据传输。当发送端将数据发出之后便会等待接收端主机的确认应答信号。如果有确认应答,这说明数据已经成功到达了接收端,否则的话,数据包丢失的可能性很大。
*******************************************************************************************************
*******************************************************************************************************
2、TCP建立连接的三次握手:
(1)首先,画出如图1 所示的TCP 三次握手连接示意图,包括客户端主机A 和服务器端主机B。
(2)首先,从网络编程的角度来看,我们会发现,服务器端会首先创建传输控制块TCB 准备接受客户端的连接请求,然后,服务器端就会处于监听状态(LISTEN 状态)以等待客户端的连接请求。如果有请求到来,则作出受理连接请求的响应(accept动作)。
(第1次握手)对于客户端,也是首先创建 传输控制块TCB,然后向服务器端发出 TCP 连接请求报文段 SYN 包,(其中,SYN 包 的初始序列号 seq=x,SYN 包中的同步位 SYN=1),发送完该数据包之后,客户端会进入 SYN_SENT 状态(同步已发送状态)。
这里要知道,TCP 协议规定,SYN 包(即同步位 SYN=1的报文段)不能够携带数据,但是要消耗掉一个序列号。
(第2次握手)服务器端接收到客户端发送过来的连接请求报文段SYN 包 过之后,则会同意建立TCP 连接,所以会反馈一个针对这个SYN 包的 确认应答信号ACK包(确认序列号是 ack =x+1);与此同时,服务器自己也会发送一个SYN 包 用来同步连接用(SYN 包的初始序列号 seq=y)。
因此,在第二阶段,服务器端会把 刚才的 ACK包和SYN包(确认位ACK=