基础知识--------TCP的三次握手与四次挥手(又名:我与漂亮小姨子的聊天记录)

一、关于TCP

TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换

二、三次握手

今天回家坐在电脑前面写博客,想起了TCP三次握手、四次挥手

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

TCP三次握手的过程如下:

  1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。

  2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。

  3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

想到这里,忽然想起一件开心的事,想着分享给我那漂亮的额小姨子,于是迫不及待的打开微信給漂亮小姨子发了一条消息:

Baldwin:姐们儿在么?能收到我的消息么?我是Baldwin[SEQ=x](我不知道她是否能收到我的消息,我也不知道我这2m的移动光纤是否能把这条消息发出去,怀着忐忑的心情,我进入到了SYN_SEND状态)

扫描二维码关注公众号,回复: 9986235 查看本文章

小姨子:在啊!能收到你的消息,一号[ACK=x+1]你能收到我的消息么?我是你的小姨子[SEQ=y](已收到她的消息,我悬着的心就放下了一半,因为此时我已经确定我能够正常的发送消息,也能正常的接收到她的消息,我知道她在此刻也进入到了SYN_RECV状态,正等着我的回复)

Baldwin:姐们儿姐们儿ACK=y+1],我能收到你的消息(她收到我的消息之后,她也明白了她现在能够正常的收发消息,于是我俩就进入了Established状态,可以开心地聊天了)

Baldwin:我给你说,我今天遇到了一件特别有意思的事儿。。。(于是我俩就开始了愉快的聊天)

三、四次挥手

我们聊人生、聊理想、聊未来,越聊越开心,我寻思着 不能再聊了啊!我女朋友还在卧室等我呢!于是我要结束这次聊天(调用close,我要执行“主动关闭”)

Baldwin:这次聊天该结束了,你姐还在等我呢!晚安[发送一个FIN分节](发完之后,我等着她的回复,此时我进入了FIN_WAIT_1状态)

小姨子:那行吧(小姨子执行“被动关闭”,此时小姨子进入了CLOSE_WAIT状态)

我收到了小姨子的信息,但是我没有回复她,我现在想说的已经说完了,就等着她说晚安[FIN]了(此时我进入到了FIN_WAIT_2状态)

小姨子:晚安[FIN](LAST_ASK)(这次她是已经看完了我之前给她发的所有消息,也都理解完成了,这次聊天确实可以结束了,发完这条消息,她就准备[close()]了)

Baldwin:行,我收到你的晚安了,晚安(我发完之后就进入了TIME_WAIT状态,我在等一段时间,说不定她还要给我发消息呢)

小姨子收到消息直接就关机睡觉了,我等了2MSL(指一个片段在网络中最大的存活时间)后,没有收到他的消息,我这边也就直接关机回卧室了

回卧室一看,我操!我女朋友呢?这一吓不要紧,直接把我吓醒了!这才想到,我哪有啥小姨子,我连女朋友都没有

大半夜难过得睡不着觉的我回忆起了以前看到过的TCP四次挥手的内容

1.客户端设置seq和 ACK ,向服务器发送一个 FIN=1报文段。此时,(第一次挥手,FIN=1,seq=u)客户端进入 FIN_WAIT 状态,表示客户端没有数据要发送给服务端了。

2.服务端收到了客户端发送的 FIN 报文段,向客户端回了一个 ACK 报文段。

3.服务端向客户端发送FIN 报文段,请求关闭连接,同时服务端进入 LAST_ACK 状态。

4.客户端收到服务端发送的 FIN 报文段后,向服务端发送 ACK 报文段,然后客户端进入 TIME_WAIT 状态。服务端收到客户端的 ACK 报文段以后,就关闭连接。此时,客户端等待 2MSL(指一个片段在网络中最大的存活时间)后依然没有收到回复,则说明服务端已经正常关闭,这样客户端就可以关闭连接了。

 五、总结

1.本文章中除我没有女朋友及TCP相关内容外皆为杜撰,如有雷同,算你倒霉

2.文章中若有理解不到位的地方,欢迎指点

发布了45 篇原创文章 · 获赞 113 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/shouchenchuan5253/article/details/104909818
今日推荐