一--导读

前不久中国和外国RPEC协议的签订,标志着东亚自贸区的建立成功。现在韩国和日本要做贸易。日本一直监听着韩国总统的一举一动,但他又不会主动。(服务器的监听状态)只是被动的等着韩国总统先开口。首先韩国总统发送信息给日本。信息内容为“安倍兄,我想和你做点小生意,我发500台三星手机给你”。安倍收到之后回复:“我是安倍小文啊,收到你的消息了,我要500+1台三星,并且我以50辆汽车作为对等交换”。韩国总统收到安倍会话,并回复:“安倍兄,你的消息我已收到,我给你发500+1台手机,但你也得给我发50+1辆汽车”。由于韩国小,船也小,只能分批次去运这些手机,并且安排相应的人员去管理当前发送两个国家都有自己的接收人员和发送人员去管理这些货物 。并且如果这些手机在路上不小心被抢了或者丢了。韩国都得重新让专门的人去发送手机台数和接收汽车辆数。

TCP服务器的传输控制块:

指向发送和接收缓存的指针(管发和收的人)
指向重传队列的指针(重新发送的人)
当前的发送和接收序号(管现在发多少和收多少的人)

二---TCP连接要解决的三个问题

TCP的连接建立主要解决以下三个问题:
1--使TCP双方能够知道对方的存在
2--使TCP双方能够协商一些参数(如最大窗口值,是否使用窗口扩大选项和时间戳选项以及服务质量)
3--使TCP双方能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。

三---图解TCP三次握手

图中

SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号
同步位SYN=1,表明这是一个TCP连接请求报文段(相当于导读中的“安倍”)。

seq=x(相当于导读中的“500台三星”),作为TCP客户进程选择的初始字号,(

注意:TCP规定的SYN被设置为1的报文段不能携带数据,但要消耗一个序号)。(也就是韩国总统没有说到500,但是他说了一句话)

第一个ACK=1(相当于导读中的“小文啊,收到你的消息了”)。

seq=y (相当于导读中的50辆汽车)

ack=x+1(相当于导读中的500+1)。

第二个ACK=1(相当于导读中的“安倍兄,你的消息我已收到”)

seq=x+1(我给你发500+1台三星

ack=y+1(但你得给我发50+1台汽车

四--能否只有两次握手?

答案肯定是不能。看下图

红线部分为一个迟到的连接请求,并且重传计时器结束了他还没有到达,于是发生重传(黑线)。

若只有两次握手,当迟到的到达后,接收方收到了,然后就按规矩建立连接,安排专人(资源)去等待发送方发送数据。但是发送方已经重传过了,他并不知道这个迟到的请求到达了(他也以为重传过了就不会再有重复请求到达),于是接收方就这样傻傻的等待。

三次握手能防止已失效的连接请求报文段突然又传到TCP服务器,导致错误,浪费资源。

TCP三次握手(通俗易懂)的更多相关文章

  1. TCP‘三次握手’和‘四次挥手’(通俗易懂)

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

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

    .引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答. 本篇文章尝试使用动画图片的方 ...

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

    脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手   http://www.52im.net/thread-1729-1-1.html     1.引言 网络编程中TCP协议的三次握手和 ...

  4. TCP三次握手/四次挥手详解

    一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...

  5. wireshark抓包工具简介以及tcp三次握手的一些含义

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...

  6. TCP三次握手四次挥手

    看到一篇总结很好的TCP三次握手,学习一下,原文链接. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,S ...

  7. TCP ,UDP概念和TCP三次握手连接 的知识点总结

    OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务. TCP 中常说的握手指的是:连接的定义和连接的建立 ...

  8. Wireshark基本介绍和学习TCP三次握手

    wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...

  9. TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释

    一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...

随机推荐

  1. Day7 【Scrum 冲刺博客】

    每日会议总结 昨天已完成的工作 方晓莹(PIPIYIng) 对接车位管理接口 处理对接接口遇到的bug和错误 方子茵(Laa-L) 暂无 黄芯悦(Sheaxx) 完成住户车位查询页面 完成住户物业报修 ...

  2. 优化 Webpack 的构建速度

    1.使用高版本的 Webpack 和 Node.js 2.多进程/多实例构建:HappyPack(不维护了).thread-loader 3.压缩代码 webpack-paralle-uglify-p ...

  3. 大白话详解大数据hive知识点,老刘真的很用心(1)

    前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的知识点详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 01 hive知识点(1) 第1点:数据仓库的概念 由于hive它是基于had ...

  4. 【学习笔记】浅析平衡树套线段树 & 带插入区间K小值

    常见的树套树 一般来说,在嵌套数据结构中,线段树多被作为外层结构使用. 但线段树毕竟是 静态 的结构,导致了一些不便. 下面是一个难以维护的例子: 带插入区间 \(k\) 小值问题 来源:Luogu ...

  5. 【Codeforces 715C】Digit Tree(点分治)

    Description 程序员 ZS 有一棵树,它可以表示为 \(n\) 个顶点的无向连通图,顶点编号从 \(0\) 到 \(n-1\),它们之间有 \(n-1\) 条边.每条边上都有一个非零的数字. ...

  6. echarts饼图默认状态高亮显示

    需求:饼状图默认状态下高亮显示指定内容. 最常见的两种: 一.饼图中间始终默认展示数据总数和统计事项的名字(如下图),这种实现方式比较简单,就不多介绍 二.饼图中间默认展示某一图例的具体数据,鼠标放在 ...

  7. css 03-CSS样式表和选择器

    03-CSS样式表和选择器 #本文主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS几 ...

  8. css进阶 06-CSS开发积累

    06-CSS开发积累 #让flex盒子中的子元素们,居中 flex布局常用的三行代码: display: flex; justify-content: center; // 子元素在横轴的对齐方式 ( ...

  9. Unity 打包Shader优化

    我们一直以来的项目Shader基本都会打包到一个package里面,游戏启动时会进行预加载这个Package,且预加载其中一些常用的Shader,最近新发现一个坑点,那就是shader依赖了特效的一些 ...

  10. 彻底理解Hive中的锁

    前面遇到过一次因为Hive中表被锁住了,导致定时任务一直失败.这两天又出现了表被锁,原因是连接hiveserver2过于频繁,mysql连接被打满,引发的连锁反应,导致我们的小时任务一直失败,下午重点 ...