索引
下面例子都是A请求B。
为什么三次握手?
如果只有两次,则很可能第二次回应A根本没有收到。
为什么四次挥手?
因为A请求了结束,必须得到一次回应才能认为真的挥手成功了。B请求结束,也必须得到一次A的回应。
而且最后等待2MSL(报文最大生存时间),是为了确保收到B收到了最后一个回应。因为如果B没有收到最后一个回应,会再次发送结束请求,此时还有机会弥补。
TCP状态机
在这个图中,加黑加粗的部分,是上面说到的主要流程,其中阿拉伯数字的序号,是连接过程中的顺序,而大写中文数字的序号,是连接断开过程中的顺序。加粗的实线是客户端 A 的状态变迁,加粗的虚线是服务端 B 的状态变迁。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2728