TCP/IP的“三次握手”与“四次挥手”详解:
TCP/IP协议:全称Transmission Control Protocol/Internet Protocol,传输控制协议/网间网协议,是目前世界上应用最为广泛的协议,其作用域包括网络层、传输层、应用层、物理层和数据链路层,TCP/IP协议是Internet最基本的协议,也是我们接触最多的协议之一。
需要注意的是TCP/IP是由很多协议组成的协议簇,并非一个单一协议,其中包括了TCP协议、IP协议、UDP协议、FTP协议、DNS协议等,其中TCP协议与IP协议最为重要,所以用其名命名。
TCP协议,是面向连接的协议,顾名思义就是在数据发送前和对方建立有效的连接。一个TCP连接必须要经过三次“对话”才能建立起来,我们称之为建立连接的“三次握手”:
大致就是A发送了一个http请求到B,那么A会主动结束closed状态,打开一个连接,B被动结束closed状态,进入LISTEN阶段,随后开始三次握手,首先A向B发送一段TCP报文,表示“请求建立连接”,此时报文中标记位SYN置为1,序号为Seq=x(由A生成,一般为1),随后A进入SYN-SENT阶段;
B在接收到A的报文之后,结束LISTEN阶段,然后返回给A一段报文,其中标记位为SYN和ACK,表示“B已收到A的连接请求,当前连接正常,允许建立连接”,序号为Seq=y(由B生成,为几未知),确认号为Ack=x+1,随后B进入SYN-RCVD阶段;
A在接收到B返回的报文之后,明确了B允许建立连接的答复,结束SYN-SENT阶段,再发送一段报文给B,其中标志位为ACK,表示“确认收到同意建立连接信号”,序号为Seq=x+1(表示接收到B确认号),确认号为Ack=y+1(表示接收到B序号),随后进入ESTABLISHED状态;
B收到A的报文之后,明确了A已进入确认连接状态,结束SYN-RCVD阶段,也进入ESTABLISHED状态;
随后A与B可以进行正常的数据传输,这就是“三次握手”的过程,其中A与B双方的确认号Ack和序号Seq都在对方的基础上进行计算,这样保证了TCP报文传输的连贯性,一旦出现序号不连贯,则代表某一方发出的TCP报文丢失,需要重新发起连接,其中需要注意的是,在“三次握手”过程中,并没有应用层的数据,SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0;
通过“三次握手”的这个机制,通过确认号和序号,我们有效的规避了有时服务器会开启一些无用的连接导致浪费资源和一些无效的连接请求报文突然又传送到了服务器从而产生错误的情况。
既然有建立连接,那么也必然会有释放连接,释放连接的过程就叫“四次挥手”:
连接的释放也是由一方自动发起,当A传输完数据后,发出停止TCP连接的请求,同时将控制位FIN置为1,序号Seq=U,随后A进入FIN-WAIT-1阶段,代表半关闭状态,在这个状态下,A不能再向B发送数据,但是B还能再向A发送数据;
B在收到A的请求之后,确认了A想要断开连接的信号,随后结束ESTABLISHED状态,进入CLOSE-WAIT状态,然后返回一段报文,其中标记位为ACK,序号Seq=V,确认号Ack=U+1,随后B准备断开与A的连接;
A收到B发送的报文后,确认了B已经收到先前断开连接的信号,于是结束FIN-WAIT-1阶段,进入FIN-WAIT-2阶段;
B在准备好断开与A的连接之后,会再向A发送一段报文,其中标记位为FIN,ACK,序号为Seq=W,确认号为Ack=U+1,表示是在收到A报文的基础上,将其序号Seq值加1作为本段报文确认号Ack的值,随后B结束CLOSE-WAIT阶段,进入LAST-ACK阶段,这个状态下B不会再向A发送数据,但允许接受A的数据;
A在收到B的报文之后,结束FIN-WAIT-2阶段,进入TIME-WAIT状态,向B发送一段报文,其中标记位为ACK,序号为Seq=U+1,确认号为Ack=W+1,随后A在TIME-WAIT状态等待2MSL(即两个报文最大生存时间);
B在接收到A的报文之后,结束LAST-ACK阶段,进入CLOSED阶段,正式关闭A与B的通道。
A在等待完2MSL之后,结束TIME-WAIT状态,进入CLOSED状态;
以上就是“四次挥手”的过程;

2020-10-14相关推荐

  1. trans【Total3DUnderstanding】论文翻译+解读学习 2020.10.14

    Total3D Understanding 摘要 1 Introduction 2 related work 3 Method 3.1 3D目标检测和布局估计 3.2. Mesh Generation ...

  2. 微生物组-宏基因组分析第9期(报名直播课免费参加线下2020.10本年最后一期)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  3. 宏基因组分析第9期(报名直播课免费参加线下2020.10本年最后一期)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  4. 广东省计算机行业发展程度,广东省统计局-2020年1-4月广东规模以上工业生产运行简况...

    2020年1-4月,全省规模以上工业企业累计实现增加值8658.97亿元,同比下降10.1%,降幅比一季度收窄5.0个百分点:其中,4月当月增长3.6%,增幅比3月回升8.3个百分点,实现由负转正. ...

  5. 【DockerCE】Docker-CE 20.10.14正式版发布

    官方下载地址(For RHEL/CentOS 7): https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 先从官网下载 ...

  6. 测试开发工作者日记:2020.10.21

    最近忙着搬家,西北旺那边村委会和某开发商 联合下达了腾退指令,所有人一周内滚蛋.作为每次抵挡的靠山-房东 也终于妥协了.周围很大一片区域的几乎半个海淀和半个昌平的公寓和房东们,都一瞬间知道了这个大新闻 ...

  7. 【不忘初心】Win10_20H2_2009_19042.572_X64_六合一_[纯净精简版](2020.10.29)

    母版来自MSDN  WIN10_20H2.19042.508,集成补到19041.572,20H2相比1909 2004版本要稳定很多,精简起来也比较顺手,相对来说体积比之前的要小一些,精简方法基本上 ...

  8. VMware Workstation 15 pro 安装macOS 10.13,macOS 10.14教程(仅供个人兴趣学习使用)

    VMware Workstation 15 pro 安装macOS 10.13/10.14教程 (P.S. 本文仅提供安装方法,不再提供破解/激活) 2020.06.21更: unlocker 3.0 ...

  9. 2020.1.14课程摘要(逻辑教育-王劲胜)

    2020.1.14课程摘要 13期基础班-王劲胜 计算机要点知识 13期基础班-王劲胜 计算机要点知识 1.计算机基本概念 (1)计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机 ...

  10. lol7月9日服务器维护,《英雄联盟》7月9日更新维护了什么内容 10.14版本维护时间介绍...

    导 读 英雄联盟7月9日更新维护到几点结束?lol在7月9日迎来版本更新,这次的更新内容是10.14版本,这次的版本更新相信大家也是很关心的.在这次的版本更新内容里,有大量新皮肤上线和多英雄改动,那么 ...

最新文章

  1. 深入浅出任务队列机制,非常浅
  2. 大三实验室 经验总结
  3. Educational Codeforces Round 111 (Rated for Div. 2) E. Stringforces 二分 + 状压dp
  4. java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
  5. python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
  6. 算力至上?AI芯片大对决
  7. css3——新盒子定义box-sizing
  8. JavaScript文档对象模型概述(1)
  9. AD画电路的踩坑点——继电器线圈的正负性以G6K-2F-Y为例
  10. JAVA-初步认识-第十章-多态-类型判断-instanceof
  11. 百度云OCR身份证识别
  12. 关于另类BT下载的想法
  13. cad灯具图标_CAD图纸灯具图例
  14. 计算机网络技能大赛感受,技能大赛心得体会
  15. 网友心中的高分电影合集,大家一起来拯救剧荒!欢迎补充!!!
  16. 十一、Spring Boot整合Redis(一)
  17. 软件定义网络 Software Defined Network (一)概述
  18. Mathematics Subject Classification (MSC)
  19. 北大青鸟毕业的程序员该何去何从
  20. O2O优惠券数据分析(一)

热门文章

  1. 【2019-07-23】]python3 把日语翻译为中文 调用百度翻译API接口及API申请使用教程
  2. .resource文件如何打开
  3. ASP.NET MVC3 AjaxPro2_se7en3_新浪博客
  4. Java 结构化数据处理开源库SPL,再也不用苦哈哈写SQL了
  5. uni-app使用canvas生成图片并保存到相册
  6. JAVA基础知识-集合
  7. Flutter实战项目-第八篇 监听键盘弹起
  8. 计算机excel隆华书店销量,计算机二级excel主要函式的用法
  9. 推荐十三本书,附豆瓣评分
  10. 第十五期】Monica:单身滴美女程序员 多图!