首页 > 试题广场 >

请你说说 TCP 三次握手四次挥手过程

[问答题]
请你说说 TCP 三次握手四次挥手过程
TCP的三次握手: 首先客户端发送一个含有同步序列号SYN的标志位的数据段给服务器端。服务器端收到客户端的请求后发送确认请求ACK和同步序列号SYN。最后客户端发送一个确认应答后连接开始建立。 TCP的四次挥手: 客户端发送一个控制位FIN为1的数据段,提出结束TCP连接的请求。 服务器端收到请求后确认这一端的TCP连接将断开,将ACK置为1。 服务器端反过来对客户端发送关闭请求,将FIN置为1。 客户端收到请求确认关闭这一端的TCP连接,将ACK置为1。
发表于 2022-05-20 09:41:29 回复(0)
并没有讲清楚或讲全面三次握手相对于两次握手的必要性,依我愚见,第一次握手时服务端确认客户端发送能力,第二次握手时客户端确认服务端的发送能力和接受能力,第三次握手时服务端确认客户端的接收能力。
发表于 2022-09-07 14:18:08 回复(0)
三次握手:第一次是客户端向服务器端发送请求连接报文,包含自己的字段。 第二次握手是服务器端接受到连接请求后,如果同意便向客户端发送应答,包含自己的字段。 第三次握手客户端接受到应答并向服务器端发送确认报文,此时建立起了长连接
发表于 2022-05-11 13:20:35 回复(0)
三次握手是为了建立正确稳定的连接,由客户端发起连接请求,tcp头部控制位SYN=1,表示这是一个连接请求,随机生成一个序号seq = x,请求发送后,客户端切换为SYN_SENT状态,服务器是侦听状态,侦听到这个请求后,先校验是不是发给自己的,如果是,就返回一个确认,确认号ACK = seq + 1,表示自己的接受位置,随机生成一个序号seq = y,发送后服务器变为SYN_REC状态,客户端接收到服务器返回的信息确认无误后,返回一个确认ACK = y +1,表示自己接收到了服务器的返回信息,客户端切换为CONNECTED状态,服务器接收到后,连接正式建立。 三次握手简单说就是,双发都要确认自己以及对方的收发功能,第一次接收方知道自己可以成功接受,发送方可以成功发送,第二次发送方知道自己发送成功,接收方可以成功接受,接收方有发送能力,最后一次接收方知道发送发有接受能力,自己发送能力没问题,所以可靠连接可以建立。 四次挥手也类似,控制位变成FIN=1,表示这是一个断开连接的请求,双方都可以发起断开连接的请求,这里以客户端发起请求为例,FIN = 1,seq = x;发送后客户端切换为fin_wait1状态,服务器接受后,返回确认ACK = x +1,seq = y,表示自己接收到了客户端的请求,客户端可以断开,发送后服务器切换为close_wait状态,客户端接收后,确认自己可以断开,切换为FIN_WAIT2状态,半连接状态,表示自己只能收,不能发,等一会后,服务器传完了自己的所有信息,就向客户端发一条断开请求,FIN=1,ACK = x+1,seq = z,还是close_wait状态,客户端接收到之后,返回一个确认信息,FIN =1,ACK = z + 1,进入TIME_wait状态,服务器接收到后,关闭发送接收功能,客户端等待2MSL时间后,断开连接。 为什么是四次挥手,不能让服务器传信息同时返回确认吗?TCP是有超时重传机制的,这个时间一般比较短,如果等服务器把自己的传完了,估计客户端得重发很多个 为什么等待2MSL时间,因为客户端不确定是否服务端收到了自己的确认,如果服务端没收到,会再次重传,如果客户端已经关闭,就找不到客户端了,MSL,Maximum Segment Lifetime,最大报文段生存时间。即任何TCP报文在网络中存在的最大时长,如果超过这个时间,这个TCP报文就会被丢弃。 2MSL,即两个最大报文段生存时间。 TIME_WAIT状态为什么是2MSL的时长?因为客户端不知道服务端是否能收到ACK应答数据包,服务端如果没有收到ACK,会进行重传FIN,考虑最坏的一种情况:第四次挥手的ACK包的最大生存时长(MSL)+服务端重传的FIN包的最大生存时长(MSL)=2MSL
发表于 2022-06-21 09:37:23 回复(0)
握手:SYN,SYN ACK,ACK,挥手:FIN,ACK,FIN ACK,ACK
发表于 2022-08-17 10:41:35 回复(0)
第一次握手:客户端向服务器发送链接请求,第二次握手:服务器收到客户端的请求,发出应答。第三次握手:客户端收到服务器的应答,链接成功 四次挥手:第一次挥手:客户断发服务器发送信号完毕,向服务器发出断开链接请求。第二次挥手:服务器接收到客户端的断开链接请求,不再接收客户端发来的数据,但是由于是全双工通信,所以服务器还能继续发送信息。第三次挥手:服务器发送数据完成,向客户端发送断开链接信号。第四次挥手:客户端收到服务器断开链接信号,至此服务器与客户端全部都断开了链接
发表于 2022-09-06 19:22:04 回复(0)
wb4头像 wb4
1、TCP开始的三次握手: a)客户端发送连接请求syn=x给服务端,客户端进入syn_send ; b)服务端接收后,把syn=y和ack=x+1一起发送给客户端,服务端进入listen; c)客户端收到后发送syn=x+1和ack=y+1确认码给服务端,这样服务端和客户端就进入了通信状态。 2、TCP结束的四次挥手: a)客户端向服务端发送fin,服务端关闭读通道; b)服务端发送ack,表示同意,客户端关闭写通道; 此时,服务端还可以向客户端写数据,客户端还可以向服务端读数据 c)等服务端发送完数据,再发送fin,客户端关闭读通道; d)客户端发送ack给服务端,服务端关闭写通道,等2MSL客户端关闭连接。
发表于 2022-08-14 20:56:48 回复(0)
tcp的三次挥手:的作用是保证 通信双方都能够正常的收发信息;三次握手的发生阶段是在客户端连接服务器的connect阶段开始的,首先客户端发送一个syn=1,ack给服务器,服务器接收到之后将ack+1,syn=1,ACK包给客户端,这时候,客户端在将ACK+1,ack +1包发送给服务器,这样服务器收到之后就能够,服务器客户端就能够双方都知道可以相互通信,三次握手完成可以开始传输数据。 tcp的四次挥手:的作用是将服务器和客户端的连接安全的断开,四次挥手是发生在客户端或者服务器断开连接的时候,客户端向服务器发送一个fin=1,ack包,服务器收到之后将ack+1包发送给客户端,这时候,服务器会讲传输的数据传输完,之后再发一个fin的包给客户端,客户端收到之后发送一个ACK=1,ack+1包给服务器,这样四次挥手就完成了,服务器和客户端双方都断开了链接。
发表于 2022-05-03 16:44:00 回复(0)
编辑于 2022-08-25 15:11:53 回复(0)
三次握手: (1)客户端先向服务器发送连接请求SYN,客户端进入SYN-SENT状态 (2)服务器在监听状态接收到客户端的请求,发送一个确认信号ACK,回发连接请求SYN,服务器进入SYN—RECEV状态 (3)客户端确认连接发送ACK信号给客户端,并进入establish状态 四次挥手: (1)客户端向服务器发送FIN关闭连接请求,进入FIN—wait1 (2)服务器确认断开客户端的连接发送ACK信号,进入close—wait状态,客户端进入FIN—wait2 (3)服务器剩余数据发送完毕,向客户端发送FIN信号关闭连接,服务器进入last—ACK (4)客户端相应服务器的请求发送ACK信号,双方连接关闭
发表于 2022-07-19 17:10:13 回复(0)
并没有讲清楚或讲全面三次握手相对于两次握手的必要性,依我愚见,第一次握手时服务端确认客户端发送能力,第二次握手时客户端确认服务端的发送能力和接受能力,第三次握手时服务端确认客户端的接收能力。
编辑于 2024-03-03 14:02:40 回复(0)
三次握手: 1、客户端发送一个同步序列号syn 2、服务端回复一个确认请求ack和一个同步序列号syn 3、客户端回复一个确认请求ack之后建立连接 四次回收: 1、客户端发送一个控制位fin 2、服务端回复一个确认号ack,并且进入最后的数据处理阶段 3、服务端处理完数据,发送一个fin 4、客户端接收到最后的数据,回复一个确认号ack,关闭连接
编辑于 2024-03-01 20:56:06 回复(0)
太难了,目前只对三次挥手稍微能说出来大概的意思
发表于 2023-02-12 23:00:54 回复(0)
三次握手原因:一是能够确保收发双方都正常;而是避免失效消息到达后长期占用资源导致资源浪费; 四次挥手:全双工,两边都要释放
发表于 2022-08-20 14:22:10 回复(0)
三次握手: 客户端向服务端发送一个序列号为x并且SYN位置1的数据段,第二次握手,服务器端收到数据段后也向客户端发送一个SYN和ACK置1的数据段,该数据段还包括对客户端发送数据段中序列号的回应,值为收到的序列号+1,并且也会将自己的序列号y发送过去,第三次握手,客户端收到服务端的数据段后再向服务端发送一个数据端,该数据段的ACK置1,并对序列号y做出回应。 四次挥手: 当客户端主动断开连接时,客户端向服务器端发送控制位FIN为1的数据段,表示要断开连接,服务器端收到请求后向客户端发送ACK置1的数据段,表示同意客户端断开连接,待服务器端发送完数据后,服务器端向客户端发送FIN为1的数据段,表示要跟客户端断开连接,客户端收到后回复ACK为1的数据段表示同意断开连接,主动断开连接的一方会等待两个MSL的时间才会释放连接。
发表于 2024-09-24 21:18:23 回复(0)
三次握手: 1、客户端发送带有同步序列号的TCP段给服务器 2、服务器返回一个带有同步序列号和ACK确认报文的给客户端 3、客户端收到后,返回ACK确认报文给客户端 四次挥手: 1、客户端发送一个FIN给服务器,进入finwait1 2、服务器返回ACK=fin+1 3、客户端收到后,进入finwait2 4、服务器发送完全部数据后,发送fin给客户端,进入LAST-ack 5、客户端返回ACK=FIN+1,进入timewait 6、服务器收到后,进去closed 7、等待,如果没有服务器的数据,就关闭连接
发表于 2024-08-22 15:18:31 回复(0)
画图、背诵
发表于 2024-07-02 15:22:09 回复(0)
TCP 3次握手,由客户端发送同步序列号SYN的数据段,服务端接收请求回一个确认请求的ACK和SYN,客户端发送一个确认应答开始连接; 4次挥手,客户端发送一个FIN为1的数据段,提出TCP连接请求关闭,服务端收到请求确认TCP连接断开将ACK置1,因为TCP是双通道嘛,当服务器传输完毕,服务端也要发送关闭请求,将FIN置1,客户端收到请求确认关闭,将ACK置1。
发表于 2024-06-24 15:11:16 回复(0)
三次握手:客户端发送syn连接请求,服务端收到之后发送ack+syn,客户端回复ack 四次挥手:客户端断开连接发送fin,服务端收到之后回复ack,服务端断开连接发送fin,客户端收到之后回复ack
发表于 2024-06-22 16:55:22 回复(0)
握手:SYN,SYN ACK,ACK,挥手:FIN,ACK,FIN ACK,ACK 第一次握手确定客户端发送信息能力没第二次握手测试服务器发送和接收能力, 第三次握手服务器测试客户端接收能力
发表于 2024-06-22 11:15:42 回复(0)