一.总体说明

由于客户端和服务端都需要各自可收发,因此需要三次握手。

从上图可知三次握手可以简化理解为:客户端发起请求连接服务端请求确认,服务端也发起请求连接客户端确认[1]。

客户端与服务端建立TCP连接时,首先客户端向服务端发出SYN(同步请求),然后服务端向客户端回复SYN+ACK(同步请求应答),最后客户端回复ACK确认,以此建立TCP的一次连接,即TCP的三次握手过程。

二.设置原因

为什么tcp要经过如此复杂的过程进行连接呢?所谓的三次握手,其实是为了对每次发送的数据量进行跟踪与协商以确保数据段的发送与接收同步,根据所接收到的数据量确认数据发送,设置接收完毕后何时撤消联系,并建立虚拟连接[2]。

三.过程详解[3]

第一次握手

建立连接时,客户端向服务端发送syn同步包,并进入SYN_SENT阶段等待服务器确认

第二次握手

服务端收到syn包,确认后自己也发一个syn包,发送SYN+ACK包后服务器进入SYN_RECV状态

第三次握手

客户端收到服务端的SYN+ACK包后向服务器发送确认包,此包发送完毕后客户端与服务端都进入了ESTABLISHED(TCP连接成功)状态,并完成了三次握手。

参考

[1]tcp握手,一句话概括 https://blog.csdn.net/qq_44196374/article/details/103731097

[2]温子祺等编著.51单片机C语言创新教程:北京航空航天大学出版社,2011.04:第328页

[3]庞淑英主编.网络信息安全技术基础与应用:冶金工业出版社,2009.03:第128页

tcp 三次握手,一句话概括相关推荐

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

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

  2. 跟着动画学习 TCP 三次握手和四次挥手

    TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一.很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答. 本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地 ...

  3. 三次握手的本质_关于TCP三次握手,这是我见过最好的解读了,通俗易懂

    文|洪生鹏 关于TCP协议三次握手的问题,在面试中是最为常见的知识点之一,得到了很多面试官的青睐,如果这个知识点没有掌握好,面试官要是问得深入一点,求职者往往会不知所措. 为什么建立连接需要三次握手? ...

  4. TCP三次握手和四次挥手学习

    TCP三次握手和四次挥手学习 前言 近期对TCP协议进行复习,发现很多地方在上学的时候理解不是很深刻,所以再次学习和总结一下. 1.三次握手 三次握手(Three-way Handshake)其实就是 ...

  5. 【转】跟着动画来学习TCP三次握手和四次挥手

    最近看到一篇很通俗易懂的描述TCP三次握手和四次挥手概念的文章,觉得特别好,怕以后找不到了,特意转载在这里学习一下. 原文地址:跟着动画来学习TCP三次握手和四次挥手 作者:老錢 链接:https:/ ...

  6. TCP三次握手和四次挥手的解释

    基础知识 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN ...

  7. mysql三次握手_一文彻底搞懂 TCP三次握手、四次挥手过程及原理

    原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! TCP 协议简述 TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接. 无论 ...

  8. 三次握手和四次挥手图解_图解 TCP 三次握手和四次挥手

    人到中年,难免长胖发福. 大家好,我是你们有点严肃的胖福(hu), 这里我们聊学习和工作. - 内容提要 - TCP 有 6 种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) ...

  9. 淘宝二面,面试官居然把TCP三次握手问的这么详细

    TCP 的三次握手和四次挥手,可以说是老生常谈的经典问题了,通常也作为各大公司常见的面试考题,具有一定的水平区分度.看似是简单的面试问题,如果你的回答不符合面试官期待的水准,有可能就直接凉凉了. 本文 ...

  10. TCP 三次握手、四手挥手,这样说你能明白吧!

    TCP协议全称为:Transmission Control Protocol,是一种面向链接.保证数据传输安全.可靠的数据传输协议.为了确保数据的可靠传输,不仅需要对发出的每个字节进行编号确认,还需要 ...

最新文章

  1. 和12岁小同志搞创客开发:如何驱动LED点阵模块?
  2. c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...
  3. day19 生成器函数
  4. 学习区块链,绕不过去的“拜占庭将军问题”!!这里正好有通俗易懂的解释
  5. 现在做Android开发有前途吗?附面试题答案
  6. su生成面域插件_插件玩的溜,SU不用愁
  7. 求101-200以内的素数
  8. 吴裕雄--天生自然 物理学习与探索笔记:磁场、磁感线以及电磁感应、回旋加速器...
  9. CentOS 7部署 Ceph分布式存储架构
  10. scrum开发中测试人员如何工作?
  11. Julia对矩阵进行预先赋值
  12. java从入门到精通6
  13. Twitter是什么软件?哪个国家的?怎么使用?免费吗?
  14. Android桌面插件系列
  15. 软件界面原型设计工具(Web):Axure RP
  16. avahi服务的使用
  17. vue2.0 在华为手机等手机自带浏览器打开白屏的问题
  18. 解决Windows 由于路径过长而无法删除文件的问题
  19. 2018拼多多校招【大整数相乘】Python解法
  20. 实现正负值及多条Y轴 Echarts柱状图

热门文章

  1. R语言学习笔记6_非参数的假设检验
  2. Mac系统创建/home目录提示Read-Only filesystem的完美解决方案
  3. System.UnauthorizedAccessException: 对路径“.......”的访问被拒绝的解决办法
  4. 怎么放大图片不改变清晰度?分享大家一个高清图片放大的技巧
  5. Loadrunner 详细实例教程
  6. .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  7. 家族信托是什么东东?为何受到富豪们的大力吹捧?
  8. 解决TableLayoutPanel控件闪烁
  9. Arduino 上拉下拉电阻 内置上拉电阻
  10. 【深入理解JVM】JVM5