三次握手
三次握手,建立连接:
你:今天周五 ,下班去XXX嗨皮下?
他:好呀
你:好的,到时候见
end...
正常通信:
你:喂,到了吗
他:嗯,到了
通过以上形象的对话,你已经初步认识了三次握手。
你:客户端
他:服务端
让我们用专业的话术再来描述一下第一段对话:
你:今天周五 ,下班去XXX嗨皮下?客户端把第一个 SYN 报文发送给服务端,向服务器发起连接
他:好 服务器端响应,并将之前的报文加上ACK标识传送回客户端
你:好的,到时候见 客户端收到报文,修改报文信息并与服务器端达成约定
上图绿色部分:TCP三次握手
也许你会奇怪(必须得奇怪👻),为什么一定要三次握手之后才能正常通信呢?因为如果采用比三次还少的次数连接可能会遇见以下异常情况:
一次握手,建立连接:
你:今天周五 ,下班去XXX嗨皮下?
end...
他:。。。。。(此时他正在开会)对应网络传输数据丢失
你:喂???喂???
他没回答你,你去还是不去呢?😥
二次握手,建立连接:
你:今天周五 ,下班去XXX嗨皮下?
他:好
end...
你:。。。。。(此时你接到一个临时会议要参加,放下电话就去了) 对应网络传输数据丢失
然后会议不小心开到了晚上12点,餐厅都关门了,而他还在傻傻等待😫。。。。。。
等待你的,只能是他对你的失望,哈哈,做个人吧!
显然,三次握手将双方的状态确认之后再进行通信更能确保通信正常。(即确保他有空,他也确保你有空)
看了三次握手,也学会了如何约会才能获得对方的信任,真是很有趣呢😛
四次挥手
接下来,约会结束后,为了能给对方留下好的印象,我们需要好好的道别(图中红色部分)。
为了能给对方留下好的印象: 将服务端和客户端的连接断开,以免占用过多资源
他:这次吃的还可以呢,时间也不早了,回家吧?
你:好的呢(说完,就去结账了)
你:结完账了,我们走吧?
他:好的
这里需要结账(服务端需要结束自己正在进行的相关任务),所以比三次握手多了一次交互。