本节,图解瑞哥继续带您图解网络,网络探究一下TCP四次挥手断开连接背后的揭开原理。
让我们直接开始!挥手合男
TCP 是背后一种全双工协议,为了建立连接,理结例通过三次握手就能建立可靠的女朋链路:
TCP三次握手简单过程
连接的两端都可以终止 TCP 连接,甚至单侧终止也是可能的,这也称为半开连接,即使一方已经断开连接,另一方仍然可以传输数据。
我们说的四次挥手,指的是双方断开连接。
我们先以生活中例子来解释一下:
四次挥手-生活中的例子:分手
小美和小明是大学同学,刚上大学的时候,小明高大帅气,还会打篮球,小美对他非常崇拜,小明也非常喜欢小美,就这样,在一个夜黑风高的夜晚,他们成了情侣。
不过随着时间的推移,加上环境的变化,两个人渐渐失去了热情,所以小美向小明提出了分手。分手的过程就类似于TCP四次挥手:
然后小明的微信上就会出现大大的红感叹号!
微信拉黑
这就是四次挥手,是不是很形象?
下次假如阁下忘了TCP四次挥手的步骤,我想你可以把自己当作渣男想象一下
好了,咱们言归正传,我们好好分析一下TCP四次挥手的原理。
四次挥手过程
如图,客户端想要和服务端断开连接:
这个可以联想,小美在发分手消息过程中,男朋友小明一直在发消息给小美,小美没看的消息就进入到了队列,队列中的消息,小美还是会看的,但是不会再主动回复这些消息。
至此,TCP连接断开!
TCP四次挥手——带序列号
如图,M和N都是序列号,分别代表是客户端和服务端,也是为了区别服务端和客户端的,比如看到M就想到消息是来自于客户端,看到N就想到消息来自于服务端。
所以过程又变成:
至此TCP就成功断开连接了。
这里还是举个例子,小美在发完“那就这样了,互删微信吧,再见!”的消息后,会最多等待四分钟,给小明机会去挽留:
等待四分钟
假如在这四分钟内,小明没有挽留,那不好意思,彻底结束吧!Game Over!
在【四次挥手原理分析】图中,我们注意到了TIME_WAIT状态,客户端发送最后一个 ACK段后,连接不会立即终止,由于不能保证最后发送的数据包确实已经到达,客户端或服务器最初将保持时间等待状态,直到 ACK 段和任何新 FIN 段的最大生命周期(MSL,Maximum Segment Lifetime )才能彻底进入CLOSED状态。
这种机制主要出于两种考虑:
(责任编辑:热点)
鑫科材料(600255.SH):向激励对象授予股票期权4969万份 行权价格为2.38元/份
百度发布中国第一款云端全功能 AI 芯片,号称业内设计算力最高
分期乐提前还款利息的计算方式是怎样的 分期乐分36期可以提前还款吗?