三次握手和四次挥手

假装没事ソ 提交于 2019-12-01 18:43:09

  TCP三通握手就像是两个人在50米对面看到对面的街道,但由于烟雾等原因无法100%确认,所以请求相互认识的方式相互认识。
  张三首先向李思挥手致意。当李思看到张三向自己挥手时,他向对方点点头,微笑着(ack)。在看到李思的笑容之后,张三确认李思成功地认定了自己(进入了沦陷状态)。
  然而,李思仍然有一些可疑的想法。他环顾四周,看看张三是否在看别人。他还需要确认一下。因此,李思也从张三招募了张。张三看到李思自言自语,知道对方正在寻求自己的确认。所以他点点头,挤了一下他的笑容(确认)。李思看到对方的笑容后,张三被证实是在招呼自己(进入既定状态)。
  所以两个人加快了速度,相互拥抱并相互拥抱。
  我们在这个过程中总共看到了四个动作,张三招手 - 李思点点头微笑 - 李思举手 - 张点点头微笑。其中,李斯连续两次行动,首先点头微笑(偿还另一方),然后再次招手(寻求确认)。事实上,你可以结合这两个动作,并在招手时点头和微笑(syn + ack)。然后四个动作被简化为三个动作,张三招手 - 李思点点头微笑着挥手 - 张点点头微笑。这是三次握手的本质。中间动作是两个动作的组合。
  我们看到有两个中间状态,syn_sent和syn_rcvd。这两个州被称为“半开放”状态,即向对方挥手,但没有时间看到对方的点头微笑。 Syn_sent是活动开放侧的“半开”状态,而syn_rcvd是被动开放侧的“半开”状态。客户端主动打开,服务器被动打开。
  Syn_sent:已发送syn包
  Syn_rcvd:已收到syn包
  TCP数据传输
  TCP数据传输是两个人之间的对话,这有点差,所以对方需要确认和听到自己的话。
  张三喊道(数据)。在李思听到之后,他不得不回复张三并听到了(ack)。
  如果张三大声喊叫,并且听不到李思回复很长时间,张三认为他的话被风吹走了。李思没有听到,所以他需要重新打电话,这是tcp重传。李思也有可能听到张三的话,但李思对张三的回答被风吹走了,所以张三听不到李思的回答。张三无法判断自己的言语是否被风吹走,或者李思的回答已被风吹走了。张三没有必要照顾它。
  由于它将被重新传播,李思可能两次听到同样的句子。这“很重”。我们已经处理了“重传”和“重复数据删除”工作操作系统的网络内核模块,用户层并不关心。
  张三可以和李思说话,李思也可以打电话给张三,因为tcp链接是“双工”,双方都可以发起数据传输。但是,无论哪一方正在呼叫,您都需要收到另一方的确认,认为对方已收到您自己的电话。
  张三可能是一支高射炮。当他说他甚至说了八句话时,李思一次不能回答一句话,但是在连续听完这八句后,他回答对方并说你在我面前说了八句话。我听说这是批量的回答。但是,张三不能马上说太多。李斯的大脑可能无法在短时间内消化太多。两者需要具有适当的传输和接受率。这是“TCP窗口大小”。
  网络环境与人类对话之间的数据交互更加复杂,并且存在无序分组的现象。从同一源发送的不同分组可以通过因特网路由上的不同路径,并且当它们到达相同位置时,顺序是不同的。操作系统的网络内核模块负责对数据包进行排序,并且对用户层的顺序完全相同。
  TCP挥了四次
  TCP断开的过程类似于建立链接的过程,除了中间两个并不总是合成一步,因此它分为四个动作,张三挥手(fin)——李思悲伤地微笑(Ack)——李思挥手(鳍)——张三笑了笑(确认)。
  中间两个动作未合并的原因是因为tcp具有“半闭”状态,即单向关闭。张三已经挥了挥手,但这个人还没有走,但他不再说话,但耳朵还能继续听,李思继续尖叫。等待李思累了,不再说话,张超挥了挥手,张三有点伤心地笑了笑,完全结束了。
  有一个非常特殊的状态time_wait,这是一个长期状态,主动关闭的一方在回复另一方的波后进入。该州标准的持续时间为4分钟。 4分钟后,它将进入关闭状态。连接资源。但是,这个时间可以在具体实施中进行调整。这就像是主动分手的责任,是你想要分手的人,你必须付出代价。结果是time_wait状态持续4分钟。无法释放套接字资源(端口)。这就像一个丧偶时期。在此期间,套接字资源(端口)无法回收。
  它的作用是重新传输最后的确认消息,以确保对方可以接收它。因为如果另一方没有收到确认,它将重新发送fin消息,并且time_wait状态的套接字将立即将ack消息重新发送给另一方。
  同时,在此期间,链路在会话期间在因特网路由上生成残留消息(因为路径太粗糙,数据消息花费太长时间,接收到重传的消息,并且原始消息仍然是道路通过,它将被立即丢弃。四分钟就足以使这些残留消息消失。否则,当重新使用新端口时,这些残留消息可能会干扰新链路。
  4分钟是2个MSL,每个MSL是2分钟。 MSL是max imium段寿命——的最大数据包生存期。此时间由官方RFC协议规定。至于为什么它是2 MSL而不是1 MSL,我没有看到一个非常令人满意的解释。
  四个摇摆器并不总是挥动四次。中间的两个动作有时可以合并在一起。这时,它变成三个摇摆。主动关闭方将直接从fin_wait_1状态进入time_wait状态,跳过。 fin_wait_2状态。
  总结一下
  TCP状态转换是一个非常复杂的过程。本文仅对一些简单的基本知识点进行了类比。有关TCP的更多知识也要求读者搜索相关的技术文章以供进一步研究。如果读者能够扎实掌握TCP的基础知识,那么高级知识就不会太难理解。

此文章为史海拾萃(入驻一点号的媒体名称)原创,特此声明!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!