TCP三次握手(通俗易懂)
一--导读
前不久中国和外国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三次握手(通俗易懂)的更多相关文章
- TCP‘三次握手’和‘四次挥手’(通俗易懂)
概述 我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就不得不提 TCP 的三次握手和四次挥手. 三次握手 下图为三次握手的流程图 下面通 ...
- 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答. 本篇文章尝试使用动画图片的方 ...
- [转帖]脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手 http://www.52im.net/thread-1729-1-1.html 1.引言 网络编程中TCP协议的三次握手和 ...
- TCP三次握手/四次挥手详解
一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...
- wireshark抓包工具简介以及tcp三次握手的一些含义
wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...
- TCP三次握手四次挥手
看到一篇总结很好的TCP三次握手,学习一下,原文链接. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,S ...
- TCP ,UDP概念和TCP三次握手连接 的知识点总结
OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务. TCP 中常说的握手指的是:连接的定义和连接的建立 ...
- Wireshark基本介绍和学习TCP三次握手
wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...
- TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释
一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...
随机推荐
- PHP代码审计分段讲解(2)
03 多重加密 源代码为: <?php include 'common.php'; $requset = array_merge($_GET, $_POST, $_SESSION, $_COOK ...
- 哀悼疫情,全站灰色如何实现,CSS滤镜一行代码实现
庚子清明,以国家之名哀悼,以国家之名哀悼在新冠肺炎疫情中牺牲的烈士和逝世的同胞! 向抗疫英雄致敬! 今日打开各样的app,各大电商,爱奇艺都是灰色的 这里我也一直很好奇该功能,前端如何实现,了解过后发 ...
- 关于EF框架EntityState的几种状态
在使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加.修改还是删除呢?答案是通过EntityState的枚举值来判断 ...
- LeetCode初级算法之数组:217 存在重复元素
存在重复元素 题目地址:https://leetcode-cn.com/problems/contains-duplicate/ 给定一个整数数组,判断是否存在重复元素.如果任意一值在数组中出现至少两 ...
- hugegraph 数据存取数据解析
hugegraph 是百度开源的图数据库,支持hbase,mysql,rocksdb等作为存储后端.本文以EDGE 存储,hbase为存储后端,来探索是如何hugegraph是如何存取数据的. 存数据 ...
- Scrum 冲刺第一天
一.团队信息 1.团队名称 挑战极限队 2.团队成员 张博愉(3118005074) 张润柏(3118005075) 郑堉涵(3118005077) 周伟建(3118005079) 林梓琦(31180 ...
- 题解-ARC058D Iroha Loves Strings
题面 ARC058D Iroha Loves Strings 给定 \(n\) 个字符串,从中选出若干个按给出顺序连接起来,总长等于 \(m\),求字典序最小的,保证有解. 数据范围:\(1\le n ...
- NameSilo的DDNS动态域名解析
用Java写的,一个实时检测IP变化并更新DNS状态的工具,适用于在NameSilo购买的域名,如果你的域名是在其他商家购买的,修改为你自己的api就行.代码我放github了,地址: https:/ ...
- geoserver的demo使用过程
先贴一个效果图,使用的geoserver版本2.18.0,需要对应版本插件netcdf插件[Extensions>Coverage Formats>NetCDF],使用tomcat8进行发 ...
- proxySQL with MGR
环境信息 hostname IP port role comm ms81 192.168.188.81 3399 master ms82 192.168.188.82 3399 slave ms83 ...