TCP为什么是四次挥手
TCP 3次握手
客户端向服务器发送一个SYN(包含了SYN,SEQ)。
当服务器接收到客户端发过来的SYN时,会向客户端发送一个SYN+ACK的数据包,其实ACK的ack等于上一次发送SYN数据包的(SYN+SEQ)。
当客户端接收到服务器发送过来的SYN+ACK数据包时,当接收到后向服务器发送ACK的数据包,此时ACK数据包中的ack值等于上一次SYN中的seq+syn。
当服务器收到了客户端的发送过来的ACK数据包时,确认无误后,向客户端发送数据。
为什么要3次握手
防止已过期的连接请求报文突然又传送到服务器,因而产生错误。
Client发生一个请求连接报文可能因为网络延迟等原因,没有送达到server中。但是当这个client的请求报文送达到server时,如果没有三次握手的话,server就会直接发数据可client,这样会导致server资源的浪费。
解决“网络中存在延迟的重复分组”的问题
在不可靠信道上可靠地传输信息
因为TCP是一个可靠的协议,但是IP是一个不可靠的协议,利用TCP使IP传输过程变得可靠。这样的话,如果发生丢包,传输顺序出错等问题,TCP协议都可以解决。为了满足不可靠信息在可靠的传输信息。
那就是可以这样说,确认c/s是不是相应的服务都准备好了,只有通过了3次握手才能直接传输数据并且满足了数据可靠性的传输。
http://www.cnblogs.com/xpress/
TCP 4次挥手
先由客户端向服务器端发送一个FIN,请求关闭数据传输。
当服务器接收到客户端的FIN时,向客户端发送一个ACK,其中ack的值等于FIN+SEQ
然后服务器向客户端发送一个FIN,告诉客户端应用程序关闭。
当客户端收到服务器端的FIN是,回复一个ACK给服务器端。其中ack的值等于FIN+SEQ
为什么要4次挥手?
确保数据能够完成传输。
但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。
TCP为什么是四次挥手相关推荐
- TCP连接的四次挥手全过程
TCP通过四次挥手来释放连接 四次挥手的过程如下: 第一次挥手: 客户端向服务器发送一个 FIN 数据包(FIN = 1,seq = u)主动断开连接,报文中会指定一个序列号. 告诉服务器:我要跟你断 ...
- TCP 三次握手、四手挥手,这样说你能明白吧!
TCP协议全称为:Transmission Control Protocol,是一种面向链接.保证数据传输安全.可靠的数据传输协议.为了确保数据的可靠传输,不仅需要对发出的每个字节进行编号确认,还需要 ...
- 互联网协议 — TCP — (面向面向连接的)三次握手、四次挥手
目录 文章目录 目录 TCP 的长连接与短连接 长连接的优势 抓包分析 建立 TCP 连接的三次握手 为什么要使用三次握手来保证数据传输的可靠性? 数据传输 断开 TCP 连接的四次挥手 为什么需要四 ...
- 第五章 运输层(UDP和TCP三次握手,四次挥手分析)
序言 通过这章,可以知道其实三次握手和四次挥手其实真的好简单,通过这章的学习,我相信你也会同样的认为,以后在也不需要听到别人问三次握手的过程而自己一脸懵逼了,觉得人家好屌,其实也就是他懂你不懂,仅 ...
- 三次握手和四次挥手图解_详解 TCP 连接的“三次握手”与“四次挥手”
作者 | AhuntSun 责编 | Elle TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西: 由于TCP不存在连接的概念 ...
- Wireshark验证TCP三次握手四次挥手
本文介绍如何通过Wireshark抓包工具验证TCP的三次握手四次挥手过程. 首先本地起了一个tomcat服务器,跑了一个简单的基于SpringMVC的rest服务. 打开Wireshark,捕获指定 ...
- 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
作者 | AhuntSun 责编 | Elle TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西: 由于TCP不存在连接的概 ...
- TCP三次握手与四次挥手的过程及原因
一.TCP的连接建立--三次握手 1.最初两端的TCP进程都处于CLOSED(关闭)状态.A主动打开连接,B被动打开连接 2.B的TCP**服务器进程创建传输控制块TCB(Transmission C ...
- 单片机tcp异常处理_TCP三次握手、四次挥手出现意外情况时,为保证稳定,是如何处理的...
一. 序 当我们聊到 TCP 协议的时候,聊的最多的就是三次握手与四次挥手.但是大部分资料和文章,写的都是正常的情况下的流程.但是你有没有想过,三次握手或者四次挥手时,如果发生异常了,是如何处理的?又 ...
最新文章
- 计算机网络的硬件连接图,路由器设置图和网络电缆连接图_计算机硬件和网络_IT /计算机_数据...
- Ubuntu Android Studio/IntelliJ IDEA 支持文件中文命名
- SAP Spartacus 代码提交的git message规范
- SpringCloudGateway静态路由配置
- 什么是大数据,怎么理解和应对大数据时代
- LiveCoding
- 谁给讲讲语音识别中的CTC方法的基本原理?
- PHP全文索引 讯搜xunsearch
- 485通讯接口与232接口的区别
- 微信小程序测试点分类和总结
- PDF格式怎么修改内容,怎么给PDF加页码
- robo3T-操作MongoDB数据库常用命令
- VTK 实现MinIP Activiz
- 大漠多账号循环登录任务自动切换模板大漠绑定后台绑定游戏
- 高数 极限存在、连续、有界、可积、可导/可微之间的关系
- 螣龙安科:迷宫勒索病毒——勒索受害者一年并且人数仍在增长
- 我是怎么看friends练口语的(转贴)
- 汽车金融的上半年:易鑫巨亏超10亿 灿谷逾期率同比大幅飙升
- linux kaiser补丁下载,kaiser凯撒
- 夫妻的缘分真的是命中注定的吗?
热门文章
- 搜索文献_如何有效地搜索及阅读文献
- c 程序中的注释相当于空白字符_Python专题 | (三)注释、变量与输出
- 302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)
- python对比两个文件找出不同并显示_python difflib模块实现两个文件差异对比,并输出html格式。...
- 女生做产品经理好吗_女生天生就是产品经理,不服来战!
- 大顶堆删除最大值_C++|使用STL算法创建、调整、输出最大堆、最小堆
- python excel操作库,可能是全网最完整的 Python 操作 Excel库总结!
- HTML与cgi post传递与接收,CGI实例--表单GET与POST示例
- oracle百分之0.01就成了.01,遭遇ORA-01200错误的原因及解决方法
- kubernetes怎么读_每个 Kubernetes 应聘者应该知道的 5 个面试题 | Linux 中国