当前位置:网站首页>TCP三次握手、四次断开
TCP三次握手、四次断开
2022-08-08 23:43:00 【仲夏夜之梦~*ω*】
TCP三次握手、四次断开
三次握手:双方在确认对方的序列号, ack序列号+1表明已经确认
(1)首先客户端向服务器端发送一段TCP报文,表示“请求建立新连接”。
(2)服务器端接收到来自客户端的TCP报文,并同意创建新连接”(即告诉客户端,服务器收到了他的数据)。
(3)客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的。
“第三次握手”是客户端向服务器端发送数据,这个数据就是要告诉服务器,客户端有没有收到服务器“第二次握手”时传过去的数据。若发送的这个数据是“收到了”的信息,接收后服务器就正常建立TCP连接,否则建立TCP连接失败,服务器关闭连接端口。由此减少服务器开销和接收到失效请求发生的错误。
1、为什么需要三次握手?
相当于需要双向确认
client 发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达 server。本来这是一个早已失效的报文段。但 server 收到此失效的连接请求报文段后,就误认为是 client 再次发出的一个新的连接请求。于是就向 client 发出确认报文段,同意建立连接。假设不采用 “三次握手”,那么只要 server 发出确认,新的连接就建立了。由于现在 client 并没有发出建立连接的请求,因此不会理睬 server 的确认,也不会向 server 发送数据。但 server 却以为新的运输连接已经建立,并一直等待 client 发来数据。这样,server 的很多资源就白白浪费掉了。采用 “三次握手” 的办法可以防止上述现象发生。如刚才那种情况,client 不会向 server 的确认发出确认。server 由于收不到确认,就知道 client 并没有要求建立连接。”
四次断开(标准断开)
1、当主机A确认发送完数据且知道B已经接受完了,想要关闭发送数据口,就会发FIN给主机B。
2、主机B收到A发送的FIN,表示收到了,就会发送ACK回复。
3、但这时B可能还在发送数据,没有想要关闭数据口的意思,所以FIN与ACK不是同时发送的,而是等到B数据发送完了,才会发送FIN给主机A。
4、A收到B发来的FIN,知道B的数据也发送完了,回复ACK, A等待之后,没有收到B传来的任何消息,知道B已经收到自己的ACK了,A就关闭链接,B也关闭链接了。
有三次断开
可以三次 把fin ack一次发送
也可以两次断开 一般是服务为了节约资源
2.为什么需要四次断开?
断开的决定权不在四层(TCP), 需要请求应用程序指示
这是由于TCP的半关闭造成的,因为TCP连接是全双工的( 即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭,这个单方向的关闭就叫半关闭. 关闭的方法是一方完成它的数据传输后,就发送一个FIN来向另一方通告将要终止这个方向的连接.当一端收到一个FIN,它必须通知应用层TCP连接已终止了这个方向的数据传送,发送FIN通常是应用层进行关闭的结果.
边栏推荐
- WeChat applet develops some function usage methods
- 并发编程第9篇,Condition
- 【深度学习】TensorFlow学习之路三:梯度消失\爆炸及解决办法
- STM8L LCD digital tube driver, thermometer LCD display
- Get the start time and end time of the current month half a year ago
- 12 Spark on RDD 分区器
- 并发编程第二篇,线程之间的通讯
- Introduction to basic grammar and the foundation of freemarker
- 并发编程第10篇,CountDownLatch(计数器)和Semaphore(信号量)
- (2022杭电多校四)1011-Link is as bear(思维+线性基)
猜你喜欢
(codeforce547)C-Mike and Foam(质因子+容斥原理)
实用小技能:一键获取Harbor中镜像信息,快捷查询镜像
2022杭电多校五 C - Slipper (dijkstra+虚拟结点)
(2022牛客多校四)A-Task Computing (排序+动态规划)
并发编程第8篇,AQS源码解读
牛客多校2 G League of Legends
(2022杭电多校三)1002-Boss Rush(状压DP+二分)
(2022杭电多校三)1011.Taxi(曼哈顿最值+二分)
【深度学习】TensorFlow学习之路一:TensorFlow简介及线性回归、逻辑回归实现
并发专题第一篇,多线程快速入门和简单介绍
随机推荐
【深度学习】TensorFlow学习之路一:TensorFlow简介及线性回归、逻辑回归实现
According to the address returned by Baidu Map, intercept the province, city, district
关于notepad++的js,xml插件安装
STM8L LCD digital tube driver, thermometer LCD display
[QNX Hypervisor 2.2用户手册]10.12 ser8250vdev ser8250 options
跨域请求浏览器无法显示set-cookie,坑了我一晚上
【LaTex异常与错误】 - 公式编号的参考引用命令\eqref发生错误Undefined control sequence——可能是因为没加载宏包amsmath
机器学习建模高级用法!构建企业级AI建模流水线
MySQL 原理与优化,Group By 优化 技巧
office:如何查看并下载office账户的订阅软件
Casbin 进行权限控制验证
Risk Control Modeling II: Modeling Scheme formulation
Get the time n-1 a week ago including the current day 7 days a week 7-1
【瑞吉外卖】day04:员工分页查询、启用/禁用员工账号、编辑员工信息
并发编程第10篇,CountDownLatch(计数器)和Semaphore(信号量)
11 Spark on RDD CheckPoint
北斗网络同步时钟与GPS卫星时钟同步设备的区别
moved异常,ask重定向
[QNX Hypervisor 2.2用户手册]10.13 shmem - 更新中
Excel 2013 下拉为“快速分拆”调整为“填充序号”