加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

有没想过TCP为什么要先握手再发送数据

发布时间:2018-11-15 16:14:11 所属栏目:教程 来源:慕名linux嵌入式
导读:再看计较机收集的时辰,始终有一个题目老是弄不大白,那就是TCP为什么要先三次握手,然后再是发送数据,最后在断开。留意这里的题目是为什么要先,再次夸大的是先三次握手在发数据的疑问,而不是把TCP为什么要先三次握手放在百度上百度后呈现的TCP为什么不

再看计较机收集的时辰,始终有一个题目老是弄不大白,那就是TCP为什么要先三次握手,然后再是发送数据,最后在断开。留意这里的题目是为什么要先,再次夸大的是先三次握手在发数据的疑问,而不是把“TCP为什么要先三次握手”放在百度上百度后呈现的“TCP为什么不是2可能4次握手的题目”,偶然辰还真的是不得不吐槽百度的算法还真不如google,下图为证:

有没想过TCP为什么要先握手再发送数据

额。。。至于google的搜刮因为要用到翻墙的软件,影响欠好就不贴图了。。。继承我们得话题,答复一下这个题目吧,虽然这是我的感悟,照旧那句话“如果有题目,照旧请到评述区写出本身的看法,以免误人后辈哈”。

要答复这个题目起首得知道TCP报文段的布局,如下图:

有没想过TCP为什么要先握手再发送数据

要说的就是TCP报文段中的窗口这16位字段部门,这里窗口的浸染就是为了实现流量的节制,为什么会有流量的节制的引入???它是这样来的:如果发送方发送数据的速率大于了吸取方应用措施取数据的速率(假设数据传输进程不拥塞)那么,吸取方就会呈现失贞的征象,也就是把数据包围了,以是数据的发送就要获得节制,就引入了窗口这16位。怎么引入的??

是这样的:发送方和吸取方都有一个缓存区(用来吸取从收集传来的数据,并提交给应用措施),对付吸取方来说,它要维护两个变量值,一个是应用措施从缓存读出去的数据(out来暗示);另一个是从收集吸取的数据(in来暗示),,那么在吸取方一个缓存内里剩余的空间就是Buffer-(in - out) = window(假设Buffer暗示缓存的数目个数,in - out 暗示应用措施没读的个数,也就是缓存被占用的个数,总的减去占用的就是可以操作的空间的个数用window来暗示),那么这个window就是窗口所要写入的值,接管方会把这个值转达给发送方暗示我尚有几多空间可以操作。

同样发送方也会有一个缓存,同样要维持两个变量值:一个是已经发送的数据个数(send);另一个是已经获得确认的数据个数(acked),那么send - acked就暗示已经发送出去了,可是还没有获得确认的数据的个数,换句话就是正在传输的数据(这样领略好点,可是有点差池),那么要让吸取方缓存数据不被包围,那么正在发送的数据要小于吸取方的窗口(send - acked < window)。

写以上这些是为了深入领略窗口的观念!!!!仅此罢了为领略TCP为什么要握手做筹备!!!

在简朴说一下三次握手的进程:

  • 第一次,客户机发送TCP短报文。
  • 第二次,处事器发送应答,并成立缓存和变量。
  • 第三次,客户机发送应答,并成立缓存和变量。

留意也就是在三次握手时就成立了缓存,那么也就是说,A与B要通讯,两者之间必需先约定好一些参数,好比这里的缓存,那么依据上面的理论来说,成立缓存的目标就是为了停止不行靠的传输数据(也就是为了停止数据被包围),以是在传输数据之前,两者之间先做一些约定,换句话就是在经贸易务时先谈好所在和时刻,在经贸易务。

那么,总的来说,所谓的链接就是为了分派内存等资源,然后停止不行靠的传输,以免污了TCP靠得住传输的名头!!!

【编辑保举】

  1. 血淋淋的究竟汇报你:你为什么不该该在JS文件中生涯敏感信息 - 收集·安详技能周刊第364期
  2. 浅析区块链隐私掩护技能之门罗币 - 收集·安详技能周刊第365期
  3. 21个惊心动魄收集犯法统计数据 - 收集·安详技能周刊第366期
  4. 微信自动抢红包,原本是这样实现的 - 收集·安详技能周刊第367期
  5. 通过Shopify平台案例探讨微处事安详 - 收集·安详技能周刊第368期
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读