tcp/ip 三次握手

TCP/IP三次握手,四次挥手详解 第二次握手:服务端收到客户端建立连接的请求,发送自己的SYN报文作为应答,生成自己的序列号seq= y,把客户端的序列号加1作为自己ack的值,ack=x+1,此时服务端进入SYN-RCVD(接收到客户端的请求,.并响应客户端的请求,等待被确认)第三次握手:客户端收到同意的报文后,向服务端发送了一个确认报文,表示已经收到服务器端的同意连接的报文,把服务端的序列号加1作为ack 的值,发送完客户端进入ESTAB-LISHED状态。​ 这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。 阅读详情

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。

(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

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

(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

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

                               图1 TCP三次握手建立连接

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。

TCP采用四次挥手关闭连接如图2所示。

                               图2  TCP四次挥手关闭连接

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

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

2.为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?

这是因为虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文。

 

 

​TCP/IP协议三次握手和四次挥手 TCP/IP简介:TCP/IP 是不同的通信协议的大集合。是指能够在多个不同网络间实现信息传输的协议族。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议族, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。TCP/IP协议参考ISO,OSI模型共有七层,但在TCP/IP协议中,它们被简化为了四个层次。如图:三次握手建立连接三次握手(Three-way Handshake)其实就是指建立一个TCP连接 阅读详情

相关推荐

TCP/IP三次握手四次挥手

由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

qq_34341338的博客 2152

TCP三次握手四次挥手详解

转自:http://molewan.blog.51cto.com/287340/114592 1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。 (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行

dreamylive的专栏 516

TCP/IP三次握手详解

      参考博客:https://blog.youkuaiyun.com/metasearch/article/details/2147213                      https://blog.youkuaiyun.com/sssnmnmjmf/article/details/68486261                            TCP握手协议  在TCP/IP协议中,TCP协议提...

ghj751105352的专栏 2983

TCP状态转换图

注:主动、被动 与 服务器、客户端没有明确的对应关系。 这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。 1、建立连接

春秋繁露 1617

【面试题】面试官:简述TCP/IP三次握手?

文章目录前言三次握手流程1. 标准版2. 简单版为什么是四次挥手?四次挥手过程原理图关于TCP/IP的面试补充1. 三次握手中第一次可以携带数据吗?2. 为什么必须要三次握手,两次可以吗?3. 三次握手的作用4. 在第一次握手中指定客户端的初始序列号,这个序列号是固定的吗?5. TCP的作用总结 前言 三次握手,四次挥手是面试中经常问到的问题,被提及的概率达到了80%,这个也是很多小伙伴的弱点,很多人在面试的时候无法正确的描述,只知道意思,所以你会听到不同版本的tcp/ip协议,有用男女朋友打电话来解释

互联网老辛 6347

技术解析:PETR如何通过3D位置编码革新多视角3D目标检测

本文深入解析了PETR模型如何通过创新的3D位置编码技术革新多视角3D目标检测。它摒弃了DETR3D复杂的投影采样机制,通过3D坐标生成器和编码器,将3D几何信息直接注入2D图像特征,构建出3D感知特征。该方法简化了流程,提升了模型对空间关系的理解能力与训练稳定性,为自动驾驶等领域的精准感知提供了新思路。

weixin_29079743的博客 212

【转载】TCP状态转换图详解

在前面,已经介绍了TCP协议的三路握手和四次挥手。如下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手)、数据传输、断开TCP连接通道(四次挥手)。                      ...

Lionel的专栏 3874

R语言,charls数据库清洗、基线特征描述、logistics回归、rcs模型、森林图

【代码】R语言,charls数据库清洗、基线特征描述、logistics回归、rcs模型、森林图。

2402_87751128的博客 2512

TCP连接的状态转换图深度剖析

 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。(3

深度Java 5283

手把手教你用 Docker 构建自己的 CentOS 基础镜像

目录一、准备CentOS基础镜像二、撰写Dockerfile三、构建Docker镜像四、生成Docker容器 相信码农们经常会听说:虚拟机将成为历史,Docker才是未来 !!! 事实如此,现在大部分公司都在用 Docker 技术,想拥有自己的 Docker 专属镜像,那么 Dockerfile 就是入门,现在让我们一起来看一下 ------ 构建 Docker 镜像的全过程。 好文章 记得收藏...

Nick.Peng's Blogs 1万+

EtherCAT从站协议栈---- sampleappl.c 文件解析

这个源文件实际上包含该项目的入口函数main函数。 那么如何找到入口函数呢? 可以进入debug的simulator模式,选中run to main(), 当执行完启动文件startup_cm3.s后就进入了main函数(注意在main函数之前还进入了SystemInit函数), 如下图所示: 这个main函数主要架构如下: int main(void) { HW_Init(); /*PDI(过程数据接口)初始化,这里用的是MCI接.

Jiawei_Z的博客 3068

TCP/IP 三次握手

TCP/IP 三次握手

喵酱 1万+

一生一芯——用RTL实现最简单的处理器NPC(南大数逻计组RV32ICPU) 代码及思考参考

本文介绍自己前期用Verilog编写的基于RV32I指令集的CPU,个人认为是最简单最易懂的版本(即没做什么优化,即代码很水,没有考虑一些奇怪的情况,只适用简单指令序列,即题目所示最简单的处理器),适合新手练手Verilog以及了解简单CPU的运行过程。本文基于一生一芯,利用Verilator进行仿真,并用gtkwave查看波形,不了解verilator和gtkwave的可以看前几篇文章。

long0_o的博客 3309

TCP/IP协议三次握手流程解析

每次找工作面试都要复习一遍TCP三次握手,是我记忆力太差?是我没有理解原理?还是我没好好做笔记? 但是为了找工作时不让面试官鄙视,我还是老老实实做个笔记。 TCP/IP 的三次握手有什么用? 三次握手是TCP/IP网络中用于在client和server之间创建连接的方法。这是一个三步法,要求客户端和服务器在实际数据通信开始之前交换SYN和ACK数据包。 如果理解着比较抽象我来举个例子: 比如说你要...

liu_rockefeller的博客 4311

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2924

BES2810_best1702_best1702_ibrt_三者关系深度解析

一颗芯片的三个名字:BES2810、best1702 与 best1702_ibrt 关系深度解析

weixin_42162924的博客 349

TCP/IP的三次握手和四次挥手

什么是TCP/IP 首先来说,TCP/IP协议是浏览器与服务器链接因特网的协议。浏览器使用TCP/IP协议进入服务器,服务器使用TCP/IP协议来发送HTML文件到浏览器。 TCP/IP的作用 TCP/IP(Transmission Control Protocol / Internet Protocol)是一个让已连接因特网的计算机进行互相通信的协议。这个协议控制的不仅仅是计算机接入因特网,也有其他电子设备,以及他们之间如何传输数据。 TCP/IP的三次握手 目的: 为了对每次发送的数据量进行跟踪与协.

githubcurry,985cs博士在读 3360

03 Token、Embedding、上下文窗口:开发者必须懂的三个基本概念

Token、Embedding 和上下文窗口是大模型应用开发的三个基础概念。本文从成本、速度、检索和上下文设计四个角度讲清它们的工程意义,帮助开发者理解为什么同一段内容会超限、变贵,为什么 RAG 能做语义检索。

老于的笔记的专栏 407

深入理解TCP/IP协议中的三次握手

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是互联网最基本的通信协议。它定义了计算机如何通过网络进行数据交换,并确保数据能够准确可靠地传输。三次握手(Three-Way Handshake)是TCP协议中建立连接的过程。它由客户端和服务器之间的三次消息交换组成,确保双方已经准备好进行通信,并确认彼此的接收能力和初始序列号。通过本文的详细介绍,我们深入了解了TCP/IP协议中的三次握手过程及其工作原理。

洛秋的博客 1241

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

TCP/IP三次握手的过程,为什么要3次?

客户端发送一个带有SYN标志的TCP报文段给服务器,设置SYN=1,并携带初始序列号Seq=x(随机值),进入SYN_SENT状态。等待服务器相应。

lxy2977262881的博客 2271

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

从TCP/IP到TCP连接过程(详解三次握手

OSI七层模型是一个概念(标准),TCP/IP是一种更加简化和实用的模型TCP/IP四层模型各层作用四层模型功能协议应用层负责处理用户和应用程序之间的通信。例如数据交换的格式和规则,以便不同的应用程序能够相互通信。HTTP:超文本传输协议,用于Web页面的传输。DNS:域名系统,用于将域名解析为IP地址。传输层负责提供端到端的通信服务,确保数据在源和目的地之间可靠地传输。TCP:传输控制协议,提供可靠的、面向连接的数据传输服务。UDP:用户数据报协议,提供无连接的数据传输服务。

m0_66252560的博客 2732

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

TCP/IP的三次握手

TCP/IP的三次握手

qq_63706130的博客 916

什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?

这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【 什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?】 大家好,我是IT修真院XX分院第X期的学员赵立鼐,一枚正直纯洁善良的java程序员,今天给大家分享...

IT修真院:初学者转行到互联网的聚集地 745
上一篇: http协议详解
下一篇: tomcat 安全性
easyjsf
博客等级 码龄17年 19粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值