问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么tcp连接的时候是三次握手,关闭的时候是四次握手

发布网友 发布时间:2022-04-23 05:48

我来回答

1个回答

热心网友 时间:2022-04-20 13:33

TCP的三次握手和四次断开
TCP是一个面向连接的服务,面向连接的服务是电话系统服务模式的抽象,每一次完整的数据传输都必须经过建
立连接,数据传输和终止连接3个过程,TCP建立连接的过程称为三次握手,下面看一下三次握手的具本过程
TCP三次握手过程
1 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,
主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.
2 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:
我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我
3 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了

这样3次握手就完成了,主机A和主机B 就可以传输数据了.
3次握手的特点
没有应用层的数据
SYN这个标志位只有在TCP建产连接时才会被置1
握手完成后SYN标志位被置0
4次断开
1 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
2 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
3 由B 端再提出反方向的关闭请求,将FIN置1
4 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.
由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端
和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础
名词解释
ACK TCP报头的控制位之一,对数据进行确认.确认由目的端发出,用它来告诉发送端这个序列号之前的数据段
都收到了.比如,确认号为X,则表示前X-1个数据段都收到了,只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,这时会要求重传数据,保证数据的完整性.
SYN 同步序列号,TCP建立连接时将这个位置1
FIN 发送端完成发送任务位,当TCP完成数据传输需要断开时,提出断开连接的一方将这位置1

解释原因:
TCP建立连接要进行3次握手,而断开连接要进行4次,这是由于TCP的半关闭造成的,因为TCP连接是全双工的(
即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭,这个单方向的关闭就叫半关闭.
关闭的方法是一方完成它的数据传输后,就发送一个FIN来向另一方通告将要终止这个方向的连接.当一端收到一个FIN,它必须
通知应用层TCP连接已终止了这个方向的数据传送,发送FIN通常是应用层进行关闭的结果.
另一种解释:
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

为什么不能两次握手能进行连接?
我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 蒜蓉小龙虾最正宗的做法? 雅天俪清畅酵素能减肥吗?吃多少瓶才能有效果 http和tcp是不是都是三次握手四次挥手啊 蒜香小龙虾怎么炒好吃? 小金刚菩提子怎么盘玩? 怎么用彩泥做蛋糕 柳美果蔬清畅酵素这个产品能减肥吗? 用彩泥如何做蛋糕? 为什么建立连接是三次握手,而关闭连接却是四次挥手 乳糖益菌粉,柠檬大白芸豆蔬果含片,果蔬清畅酵素,蛋白型固体饮料,益生菌发酵果蔬酵素有什么副作用? 简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 short如何用彩泥做蛋糕 澳力美果蔬清畅酵素 金刚怎么盘?是用手汗还是什么? 每次http 都需要三次握手吗 求助:TCP三次握手 四次挥手全过程? 清畅酵素原液老人可以喝吗? 小金刚菩提手串怎么盘? 三次握手及四次挥手在TCP/ip模型的哪一层进行的?最好有理由~ 上善达生清畅酵素 我是小时用一晚上的,能利饮,蔬果饮,是否有冲突 怎样使word中的艺术字可以随意调整位置? 蒜蓉小龙虾怎么做不苦? 谁能用通俗的话来 解释下 关于用 tcp/ip 协议 传输数据时的 3次握手 4次挥手 举个例子更好! 酵满满清畅酵饮的食用方法? 金刚菩提子怎么盘玩? 龙虾怎么抄的好吃!!! tcp在建立连接时为什么需要3次握手,而断开连接是需要4次握手 澳力美果蔬清畅酵素这个多少钱一盒 求助:蒜香小龙虾的正宗做法 哪位知道小金刚菩提子手串怎么盘?有什么技巧吗? 关与三次握手,四次挥手。用ftp访问,抓的包如图,请问哪个是三次握手,哪个是四次挥手?求大神指导 美日见酵+台湾清畅酵素粉价格 水果酵素还是汤臣倍健清畅胶囊好 三次握手,为什么断开TCP连接需要四次握手 刚刚买回来的小金刚菩提子怎么盘活 小龙虾马上就要上市了,怎么做最好吃? 尼泊尔金刚菩提子佛珠手串手链怎么盘玩? 龙虾有多少种做法 TCP三次握手机制中的seq和ack的值到底是什么意思? 如何在PPT中的插入图片上添加文字?