码迷,mamicode.com
首页 > 其他好文 > 详细

TCP连接

时间:2017-09-13 15:17:17      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:没有   是什么   tcp连接   传输   time_wait   sam   控制   就会   等等   

来源:TCP的三次握手和四次挥手 和 TIME_WAIT是什么

三次握手

SYN_SENT

  我们能成为朋友吗?【发送SYN】,不知道他会怎么回复我呢?【我进入SYN_SENT状态,等待对方确认】

SYN_RECV

  什么?【收到请求,进入SYN_RECV】,当然可以啦【回复一个ACK确认】

ESTABLISHED

  收到回复【收到对方的ACK】,太好了,以后可以常联系了【主动方进入ESTABLISH状态】,你有事没事也记得可以联系我【发送ACK】,ok【被动方进入ESTABLISH状态】

 

三次握手失败:他问能不能成为朋友,我说当然可以,然后他居然不回我了(最后的ACK丢失),才刚成为朋友就这么摆架子?那我也不想理他了(关闭连接),跟他说绝交(向对方发送RTS报文)】

 

数据传输

你觉得这本书x怎么样?【发送ACK,seq=x】

我觉得x不好【回复ACK x+1】

.....

超时重传 :假如等了一段时间后,对方没有回复对应的话题,我就再问一次】

快速重传:我问他x这本书怎么样,他居然连续回复我三次x这本书不好,而没有回复我x1这本书怎么样,看来他当时没听到,那我就不等了,赶紧再问一次,x1这本书怎么样】

流量控制:怕对方问我问题问太快了,我反应不过来,就跟他说你问慢一点吧,要不然我就无视你这些问题了】

四次挥手

FIN_WAIT_1

  A不想和B聊天了【主动方希望关闭连接】,但A希望B知道这件事【向被动方发送FIN】,接下来A只能和B说关于绝交的事【只能发送关于挥手断开连接的数据包】,B也可以跟A说说B最近过得这么样【被动方可以向我发送普通数据】,但A对此不会有任何评论【主动关闭方再也不会发送普通数据了】,A希望得到B的回复看看B是怎么想的【我进入FIN_WAIT_1状态等待对方确认】

CLOSE_WAIT

  B知道A的想法了【收到主动方的FIN】,对于绝交的事情虽然希望不大,但B还想考虑一下【被动方进入CLOSE_WAIT状态】,就通知A我收到你消息了,要不再等等?【向主动方发送一个ACK】

FIN_WAIT_2

  A说好吧【接收到ACK】,B你就考虑一下吧,我等你回复【主动方进入FIN_WAIT_2】

LAST_ACK

  B想通了,还是绝交吧【向主动方发送FIN】,等A回复B,B就知道A看到这条消息了【现在进入LAST_ACK,等待对方最后一次确认】,那B就撤了【关闭连接】

TIME_WAIT

  B考虑完终于回复A了【收到对方的FIN】,B怎么可能这么轻易就答应了?真的假的?A不信【进入TIME_WAIT】,A得再问问B看是不是真的【发送最后的ACK】,等1~4分钟【等待2MLS】B还不回A的话,那就真的是绝交了,那A也走人【关闭连接】

 

问题:不要TIME_WAIT行不行?

答:等待的时间主要确保主动关闭方(A)最后的ACK能到达被关闭方(B),如果没如果没到达,B就会认为A没有收到我的最终决定,B就会重发一次,为了能收到B重发的消息,A必须要等

 

TCP连接

标签:没有   是什么   tcp连接   传输   time_wait   sam   控制   就会   等等   

原文地址:http://www.cnblogs.com/hellohello/p/7514660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!