# TCP三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;syn(同步序列编号)

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时服务器进入SYN_RECY状态

第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack=k+1),当此包发送完毕后,客户端和服务器进入established状态,完成三次握手

完成三次握手后,客户端与服务端开始传送数据

# TCP四次挥手

第一次挥手:客户端发送一个fin,用来关闭客户端到服务器端的数据传送,客户端进入fin_wait_1状态

第二次挥手:服务器收到fin后,发送一个ack,确认序号为收到的序号+1,和syn一样,一个fin占用一个序号

第三次挥手:服务器关闭与客户端a的连接,发送一个fin给客户端a

第四次挥手:客户端a发回ack报文确认,并将确认序号设置为收到序号+1

# 为什么建立协议是三次握手,关闭连接却是四次握手?

这是因为服务器端的listen状态下的socket当收到syn报文的建连请求后,它可以把ack和syn(ack起应答作用,而syn起同步作用)放在一个报文里来发送,但关闭连接时,当收到对方的fin报文通知时,它仅仅表示对方没有数据发送给你,但未必你所有的数据全部发送给对方了,所以你可以未必会马上关闭socket,也即你可能还需要发送一些数据给对方之后买发送fin报文来表示你同意现在可以关闭连接了,所有他这里的ack报文和fin报文多数情况下都是分开发送的。

#为什么不能用两次握手进行连接?

因为三次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。

有关于TCP三次握手和四次挥手的理解相关推荐

  1. TCP 三次握手和四次挥手个人理解

    首先是三次握手和四次挥手相关术语的基础概念: 概念摘自https://blog.csdn.net/qq_38950316/article/details/81087809 序列号seq:占4个字节,用 ...

  2. 什么是TCP三次握手和四次挥手【重点学习系列---干货十足--一文详解】

    引言 本文将会从一个爱情的故事开始,着力从什么是三次握手.为什么是三次而不是俩次或者四次.TCP关闭的过程.为什么要四次挥手.而不是三次.为什么最后是2MSL.什么是2MSL这些问题展开分析,详解,让 ...

  3. 硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题

    来自:小林coding 每日一句英语学习,每天进步一点点: 前言 不管面试 Java .C/C++.Python 等开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我千百遍,我仍待 T ...

  4. 握手失败_拜托了,看完这篇别再问我什么是TCP三次握手和四次挥手

    TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一.很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答. 三次握手如何建立连接? 三次握手建立链接 从图中可以清楚的看到, ...

  5. TCP 三次握手 和 四次挥手

    概述 我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就不得不提 TCP 的三次握手和四次挥手. 三次握手 下图为三次握手的流程图 下面通过我 ...

  6. 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手

    网络的五层划分是什么? 应用层,常见协议:HTTP.FTP 传输层,常见协议:TCP.UDP 网络层,常见协议:IP 链路层 物理层 TCP 和 UDP 的区别是什么 TCP/UDP 都属于传输层的协 ...

  7. TCP三次握手、四次挥手、socket,tcp,http三者之间的区别和原理

    接着上一篇文章叙述: TCP/IP连接(在互联网的通信中,永远是客户端主动连接到服务端): 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协 ...

  8. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

  9. 计算机网络学习笔记(七)——传输层、TCP三次握手、四次挥手、TCP流量控制、大总结

    文章目录 前言 概念 一.传输层概述 二.传输层问题 三.端到端寻址 四.TCP三次握手和四次挥手 (一)三次握手建立连接 (二)四次挥手拆除连接 五.带拥塞的TCP流量控制 六.传输层实例 计网大总 ...

  10. 图解TCP三次握手和四次挥手!(简单易懂)

    哈喽:亲爱的小伙伴,首先祝大家五一快乐~ 本来打算节日 happy 一下就不发文了,但想到有些小伙伴可能因为疫情的原因没出去玩,或者劳逸结合偶尔刷刷公众号,所以今天就诈尸更新一篇干货,给大家解解闷~ ...

最新文章

  1. 双调整!清华大学迎来新任书记、校长
  2. iOS开发小技巧--利用苹果官方API播放视频(方法已经过时,了解一下)
  3. Access 数据库连接字符串 (有密码)
  4. C# ASP.NET里的@妙用,字符串换行
  5. 将 instance 连接到 vlan100- 每天5分钟玩转 OpenStack(95)
  6. 大促密集,CDN如何保障电商体验如丝般顺滑?
  7. C#LeetCode刷题-深度优先搜索
  8. matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例
  9. setInterval.js
  10. 用拉格朗日插值法,牛顿插值和分段线性插值计算近似值
  11. Office - 0x4004F00C解决方法
  12. 错误: -source 1.6 中不支持 diamond 运算符的解决办法
  13. 字幕/打轴/压制小tip——Aegisub MeGUI 极简操作指南
  14. http url转义字符,特殊字符
  15. Beyond Compare4试用过期解决方法
  16. 四阶龙格库塔算法用MATLAB写
  17. 原生js 获取页面宽度
  18. Ubuntu 下pdf文件,编辑软件 Master pdf editor
  19. 被迫使用深圳电信宽带,费用极贵,移动免费的300M宽带无法进驻小区,只能花冤枉钱喽!
  20. Android复杂界面布局解决方案

热门文章

  1. 爬虫英雄联盟官网的全英雄介绍和技能介绍
  2. 多商户商城系统功能拆解27讲-平台端分销结算设置
  3. 过QQ游戏大厅的SX保护
  4. azkaban 与 java任务_任务调度工具oozie和azkaban的对比
  5. Zero-Shot Deep Domain Adaptation[reading notes]
  6. Learning Transferable Features with Deep Adaptation Networks
  7. 新浪微博SSO登陆机制
  8. 进阶级 - Git Hub 常用指南
  9. Uniapp实现加入购物车抛物线效果
  10. WebLogic 性能监控