为什么TCP建立连接需要三次握手


很简单,因为TCP的目的是相对高效地建立可靠的连接。

虽然说2次握手,请求方就已经能够确认双方路径已经没有问题了。但是接受方这边接收到的信息却仅仅是,你发起了建立连接的请求。OK,我给你回复了,没有问题,我已经给你创建好了连接。

但是我怎么知道我返回给你的信息你能收到?如果你能收到,那当然是最好。
既然我需要建立相对可靠的连接,那当然是建立在相对恶劣的假设之下了,如果我的回复你没有收到。然后过一会,你重新请求连接,那么我是不是要再给你创建一个新的连接呢?

所以,为了避免这样的尴尬,需要请求方收到回复后给出回答,这样服务器就可以确定请求方接收到了我的回复,就可以开始建立连接来和请求方进行TCP通信了。

至于为什么不更多的握手,这个也很简单,因为完全没有必要。三次已经能确保来回的传输是可行的了,虽然再多可以进一步的确保。但是这个效益实在是太低了,有种捡了芝麻,丢了西瓜的感觉。

为什么TCP建立连接需要三次握手相关推荐

  1. startupinfo为什么需要初始化_为什么 TCP 建立连接要三次握手

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

  2. mobaxterm为什么无法连接_为什么 TCP 建立连接需要三次握手

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

  3. TCP建立连接的三次握手

    TCP建立连接的三次握手 TCP头的构成 TCP建立连接的过程就是三次握手,三次握手成功完成,TCP连接就建立了.在三次握手之前先看一下TCP报文中的TCP头由哪些部分组成. 上图中有几个字段需要重点 ...

  4. TCP建立连接『三次握手』

    三次握手 TCP建立连接 TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手而进行的. 面试回答: TCP/IP协议是传输层一个面向的连接的安全的协议,三次握手的协 ...

  5. TCP建立链接的三次握手

    TCP建立链接的三次握手   TCP是面向链接的协议,该协议主要是为应用层服务的,比如说FTP,HTTP等. 而TCP建立链接使用了三次握手. TCP报文段的头部格式如下: www.2cto.com ...

  6. TCP建立连接三次握手及其断开过程

    TCP是一个面向连接的服务,也就是在数据通信之前,发送端需要建立连接.等数据发送之后,就要断开连接. 1. TCP建立连接 TCP建立连接需要三次握手.建立的过程如下: 2. TCP断开连接 转载于: ...

  7. TCP连接,三次握手问题

    参考引用 Waking-up--github 面向信仰编程 一.为什么TCP建立连接需要三次握手 什么是连接:用于保证可靠性和流控制机制的数据,包括 Socket.序列号以及窗口大小. 首要原因:为了 ...

  8. 唤醒手腕 TCP/IP 协议进行三次握手、四次挥手建立连接详细介绍

    访问域名的 IP 地址,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的 WEB 程序(常用的有 Apache(httpd), ngi ...

  9. TCP的连接和释放连接(三次握手和四次挥手的过程)

    参考文章: javascript - 看图理解TCP的三次握手和四次挥手_个人文章 - SegmentFault 思否 TCP'三次握手'和'四次挥手'(通俗易懂)_大黄的Java笔记的博客-CSDN ...

最新文章

  1. java面向对象示例_JAVA面向对象基础示例
  2. boost::irange相关的测试程序
  3. Xshell连接阿里云服务器ECS
  4. mmo游戏开发应在profile下运行,才能保证正式运行不卡
  5. 我理解的17种C#写的Hello World程序
  6. 判断两个时间段是否有交集_判断两个人是否处于暧昧关系,就看四点,特明显...
  7. [openssl]centos version ‘libcrypto.so.10‘ not found
  8. tp ajax 多图上传,TP5 Ajax上传图片
  9. OpenGL 编程指南 ( 原书第 9 版 ) --- 第二章
  10. Java 文件操作#常用io流方法解读
  11. 迷失逃脱小程序_恐怖游戏大全:奇幻夜之迷失!密室逃脱解谜恐怖小程序
  12. windows10桌面_变身iOS?让Windows 10的桌面和苹果一样美
  13. 二进制炸弹——拆弹实验
  14. VC版学生成绩管理系统
  15. 无法执行磁盘检查,因为windows无法访问该磁盘的一种解决思路
  16. chrome或其它浏览器无法拖拽文件(不仅仅是crx文件)的问题解决
  17. Facebook仍将在2020年启动天秤座
  18. 《A fast and elitist multiobjective genetic algorithm: NSGA-II》阅读笔记
  19. android博学谷布局,《Android项目实战-博学谷》设置部分
  20. [main] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件

热门文章

  1. js滚动条下拉一定值_JS逆向 | *APD模拟登录(AES)
  2. Java中Comparable和Comparator的区别
  3. 二叉树c语言程序插入某个成员,关于C ++:二叉树:插入节点算法
  4. java文件分割合并_java实现文件分割与合并 类示例源码
  5. java多线程 模型_一篇文章读懂Java多线程模型
  6. python3.7 的pygame安装方法_Python中pygame安装方法图文详解
  7. java 数据库操作代码_JAVA:对数据库的一系列操作代码
  8. 伪语言PHP,PHP语言之伪静态几种做法
  9. java线程状态有哪几种,顺利拿到offer
  10. 【编译原理】关于文法形式化定义的探索