通俗示例小明和小红是网上认识的网友,两个人关系非常好。 小明喜欢吃土鸡蛋,所以小红经常给小明寄家里的土鸡蛋,小红喜欢吃苹果,所以小明经常给小红寄家里种的苹果。 这一次,由于小红家要搬去外国,以后没办法再寄鸡蛋了,小红就发消息跟小明说,“我全家都要搬去国外了,我发完最后这一框鸡蛋后,我就不再给你寄鸡蛋了。”,发完信息后,小红寄完最后的鸡蛋后,就不再寄鸡蛋了。这是第一次信息交互,小红发送完最后的数据,同时让小明知道她要搬家了,以后不再寄鸡蛋了。这就是第一次挥手,客户端向服务端发送完最后数据后,停止发送数据,并发送消息让服务端知道。 注意:第一次挥手后,客户端但是仍然可以进行信息交互,接收数据和发送数据,不是不能发送数据,只是不发数据;服务端依旧可以发送、接收数据,同时可以进行信息交互。 小明接收到小红的消息后,并不会立即回复消息,而是等接收到到小红最后寄来的鸡蛋后,就给小红回个消息,“你最后的鸡蛋我收到了,但是我家里的还有很多苹果没有寄过去,你先别搬家,等我寄完了,我会和你说一声的”。这就是第二次信息交互,是小明回应小红的答复,同时跟小红表达,自己还寄了很多苹果过去,先别搬家。这就是第二次挥手,在接收客户端停止发送数据的请求和接收完最后的数据后,服务端向客户端发送请求表示已经知晓客户端停止发送数据了。但是服务端还有数据给客户端发送过去,所以,服务端在第二次挥手的时候同时也会表示,自己的数据还没发送完毕,所以先不要关闭数据接收功能。 注意:第二次挥手后,客户端可以进行信息交互,和接收数据,但是不可以发送数据;服务端依旧可以发送、接收数据,同时可以进行信息交互。 一个月过后,小明家里的苹果也没有了,这时候小明停止发送苹果,并给小红发送消息说,“小红,我家里的苹果没有了,所以我之后不会再给你发苹果了,你可以去国外了。”。这就是第三次信息交互,小明的苹果发完了,并且同时让小红可以离开了。这也是第三次挥手的作用,在服务端发送完所有请求后,就停止发送数据,并通知客户端不用再接收数据了。 注意:第三次挥手后,客户端仍然可以进行信息交互,和接收数据;服务端不能再发送数据,但是可以接收数据和进行信息交互。 小红接收到小明的信息后,就给小明发送消息,“我接收到你最后的苹果了,谢谢你,再见。”,小明看到消息后,就不再发送信息了,而小红也不再发送信息,搬家去了国外。这就是第四次信息交互,小红让小明知道她已经收到小明不再寄苹果的消息。这就是第四次挥手,客户端确认服务端没有数据发送后,就向服务端发送断开连接的请求,服务端接收到后,断开连接,客户端在没有接收到数据后也断开连接。 注意:第四次挥手之后,双方断开连接,都无法互相发送数据和信息。除非重新发起请求,进行三次握手,才能再互相发送数据。 为什么不可以把第二次和第三次挥手合并成一次发送,毕竟都是同一个端发送的信息? 客户端虽然停止发送数据,但是服务端还有数据要发送,所以第二次只是通知客户端要继续接收数据;而服务端发送完数据后,就发送第三次挥手,停止发送数据。就比如小红虽然停止寄鸡蛋,但是小明还有苹果没给小红寄过去,所以第二次是为了提醒小红还有苹果没有传过去,所以先不要搬家,再寄完苹果后,小明又发送信息通知小红说没有苹果了,我也不寄了。这个也是面对这个问题的时候常用的解释。 那如果先不发送第二次挥手,而是等到服务端也发送完数据后,直接发送第三次挥手信息给客户端,这不就即可以实现三次挥手,又可以保证服务端数据可以全部发送完毕? 可以的,这在理论上是可行的,通过延迟确定,可以让服务端的第二次请求延迟,等到数据发送完毕后,直接发送第三次挥手一块发送给客户端。从而实现三次握手。但是这样导致的一个问题就是,如果第三次挥手迟迟未到,客户端发送数据功能迟迟不能关闭,可能导致资源浪费。因为客户端要在接收到服务端的第二次挥手才停止发送数据功能。 四次挥手只能是客户端发起吗? 很显然不是,TCP中断的请求,任意一方都可以发起,所以四次挥手的发起任意一方都可以先进行。 结语以上就是四次挥手的知识点讲解。四次挥手在是否能实现三次挥手的问题上是可以进行探讨, |
-
四次挥手的自己理解:相当于 男(服务器)女(客户端)朋友分手这个过程第一次 女生告诉男生 我们分手吧 这个时候 双方还有商量的余地 【双发可以就分手事件展开交流】 (双发都可以发送和接受数据 ) 都有家里的钥匙 可以随便进出家门。第二次 男生告诉女生 好的,等我收拾完东西就分手 这个时候 双方还有商量的余地 【男生的缓兵之计,试图挽留】(双发都可以发送和接受数据 ) 都有家里的钥匙 可以随便进出家门。第三次 男生挽留失败,被女方赶出家门,男生只能把自己的东西收拾完毕拉走 钥匙也交给了女生 女生有钥匙 可以自由进出家门(接收和发送数据 )在屋里和室外的男方对话 告诉男生 赶紧走,没有挽回的余地了 这个时候 男方没有了钥匙 进不了家门(发送不了数据) 只能 站在门外听(接收数据)第四次 男生心一狠 ,觉得女方好狠,爱错了人,拉着行李就走了, 双方谁也听不到谁讲话 一拍两散 各自安好。 (数据停止发送和接受 链接结束)